Pycharm/IntelliJ 显示 pytest 的覆盖率为 0%,即使已生成覆盖率
Pycharm/IntelliJ shows 0% coverage for pytest even though coverage was generated
我有一个 Python 项目和一个 tests
任务,从项目的工作目录设置为 运行 pytest
。
从 Run
菜单中执行 Run 'tests' with coverage
成功地 运行 测试,并且控制台结果显示已测量覆盖率 - 例如mws.py
.
的覆盖率为 53%
所有文件的自动应用覆盖率(如右图)为 0%,我不确定为什么。我正在使用 IntelliJ 2017.2.2 EAP。
注意:有一个相关的五年前的问题 here,但评分最高的解决方案并不适用。在这种情况下,结果控制台中没有错误消息。
我认为问题出在您使用 pytest-cov
,因此 Pycharm 无法解析文本中显示的结果,例如 pytest-cov
生成的 53%
;
因此,当您想使用 Pycharm 内置覆盖工具时,将 pytest.ini
中的选项更改为 addopts = -s -v
。
看看我对同一问题的其他问题的回答:
基本上,如果您使用符号链接 - 覆盖率显示将不起作用。
我遇到了类似的问题,但此处接受的解决方案并未解决。
我在其配置文件中 pytest
自动 运行 覆盖。
在 PyCharm 中,我将 运行 配置添加到 运行 我所有使用 pytest
的测试。
它似乎有效,我看到了所有测试 运行ning 并在 PyCharm 的 运行 window.
中显示了它们的结果
但很快我发现有两个问题:
- 当我选择“运行 with coverage”时,出现“找不到覆盖结果”之类的错误,并且所有文件都显示 0% 的覆盖率。
- 在调试模式下 运行ning 测试时未命中测试中的断点。
当我将 --no-cov
添加到传递给 pytest
的“附加参数”时,这两个问题都消失了(此选项在 运行 配置中)。
所以似乎解决方法是告诉 pytest
不是 运行 当 运行 从 PyCharm 覆盖它时. “运行 with coverage”选项和测试中的断点现在都可以使用。
我有一个 Python 项目和一个 tests
任务,从项目的工作目录设置为 运行 pytest
。
从 Run
菜单中执行 Run 'tests' with coverage
成功地 运行 测试,并且控制台结果显示已测量覆盖率 - 例如mws.py
.
所有文件的自动应用覆盖率(如右图)为 0%,我不确定为什么。我正在使用 IntelliJ 2017.2.2 EAP。
注意:有一个相关的五年前的问题 here,但评分最高的解决方案并不适用。在这种情况下,结果控制台中没有错误消息。
我认为问题出在您使用 pytest-cov
,因此 Pycharm 无法解析文本中显示的结果,例如 pytest-cov
生成的 53%
;
因此,当您想使用 Pycharm 内置覆盖工具时,将 pytest.ini
中的选项更改为 addopts = -s -v
。
看看我对同一问题的其他问题的回答:
基本上,如果您使用符号链接 - 覆盖率显示将不起作用。
我遇到了类似的问题,但此处接受的解决方案并未解决。
我在其配置文件中 pytest
自动 运行 覆盖。
在 PyCharm 中,我将 运行 配置添加到 运行 我所有使用 pytest
的测试。
它似乎有效,我看到了所有测试 运行ning 并在 PyCharm 的 运行 window.
但很快我发现有两个问题:
- 当我选择“运行 with coverage”时,出现“找不到覆盖结果”之类的错误,并且所有文件都显示 0% 的覆盖率。
- 在调试模式下 运行ning 测试时未命中测试中的断点。
当我将 --no-cov
添加到传递给 pytest
的“附加参数”时,这两个问题都消失了(此选项在 运行 配置中)。
所以似乎解决方法是告诉 pytest
不是 运行 当 运行 从 PyCharm 覆盖它时. “运行 with coverage”选项和测试中的断点现在都可以使用。