Intellij Idea Pycharm/IntelliJ显示pytest的覆盖率为0%,即使生成了覆盖率

3phpmpom  于 2022-12-17  发布在  PyCharm
关注(0)|答案(3)|浏览(274)

我有一个Python项目和一个tests任务,设置为从项目的工作目录运行pytest

Run菜单执行Run 'tests' with coverage可成功运行测试,并且控制台结果显示已测量覆盖率-例如,mws.py的覆盖率为53%。

对于所有文件,自动应用的覆盖率(如右图所示)为0%,我不知道为什么。我使用的是IntelliJ 2017.2.2 EAP。
注:有一个相关的五年前的问题here,但评分最高的解决方案并不适用。在这种情况下,结果控制台中没有错误消息。

hfyxw5xn

hfyxw5xn1#

我认为问题在于您使用了pytest-cov,因此Pycharm无法解析由pytest-cov生成的53%之类的文本中显示的结果;
因此,当您想要使用Pycharm内置覆盖工具时,请将pytest.ini中的选项更改为addopts = -s -v
在此命令中,-v代表详细程度,-s代表禁用所有输出。

9nvpjoqh

9nvpjoqh2#

我也有类似的问题,但这里公认的解决方案并没有解决它。
我让pytest在它的配置文件中自动运行覆盖率,在PyCharm中,我添加了一个运行配置来运行我对pytest的所有测试,它看起来工作正常,我看到所有测试都在运行,并且在PyCharm的运行窗口中显示了它们的结果。
但很快我注意到有两个问题:
1.当我选择“带覆盖率运行”时,我得到了一个类似“未找到覆盖率结果”的错误,所有文件都显示0%的覆盖率。
1.在调试模式下运行测试时,未命中测试中断点
当我将--no-cov添加到传递给pytest的“Additional Arguments”中时,这两个问题都消失了(此选项位于Run Configuration中)。
所以看起来修复是告诉pytest在PyCharm中运行时不要运行覆盖率。“带覆盖率运行”选项和测试中的断点现在都可以工作了。

dgenwo3n

dgenwo3n3#

看看我对同一问题的其他问题的回答:https://stackoverflow.com/a/45729723/1229510
基本上,如果你使用符号链接-覆盖率显示不会工作。

相关问题