微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决防止 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 举报,一经查实,本站将立刻删除。