防止 vscode Python 单元测试在测试失败时打开最终的 sys.exit()

问题描述

pytest 下使用 vscode 运行 python3.8 单元测试 - 当测试失败时,pytest 存在并带有 sys.exit(1)。这本身是可以的 - 但是 VSCode 坚持在发生这种情况时打开 pytest.py 行,这很不方便,因为:

  1. 调试器在调用 pytest.py 时弹出打开 sys.exit(...),将 UI 焦点从我正在处理的任何文件上移开,要求我返回。
  2. 文件浏览器中,树展开以显示 pytest.py - 这意味着整个 venv 包树展开,迫使我进行大量滚动以重新隐藏它。

如何让 vscode 不打开 pytest.py? cmd窗口中的测试失败输出是必要的,也是充分的。如果解决方案可以防止 any sys.exit() 导致隐式断点,我会没事的。


这里可能很重要的一个细节是我们将这些作为 "type":"python","request":"launch"launch.json not "type":"python","request":"unittest" 中运行 - 原因是这允许单元测试以与 CI 跑步者的工作方式相同的方式运行。但是,这个launch.json 条目确实"justMyCode":true,而pytest.py 是外部代码——所以它仍然不应该破坏该外部代码中的任何内容(?)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)