我有一个Python项目和一个tests
任务,设置为从项目的工作目录运行pytest
。
从Run
菜单执行Run 'tests' with coverage
可成功运行测试,并且控制台结果显示已测量覆盖率-例如,mws.py
的覆盖率为53%。
对于所有文件,自动应用的覆盖率(如右图所示)为0%,我不知道为什么。我使用的是IntelliJ 2017.2.2 EAP。
注:有一个相关的五年前的问题here,但评分最高的解决方案并不适用。在这种情况下,结果控制台中没有错误消息。
我有一个Python项目和一个tests
任务,设置为从项目的工作目录运行pytest
。
从Run
菜单执行Run 'tests' with coverage
可成功运行测试,并且控制台结果显示已测量覆盖率-例如,mws.py
的覆盖率为53%。
对于所有文件,自动应用的覆盖率(如右图所示)为0%,我不知道为什么。我使用的是IntelliJ 2017.2.2 EAP。
注:有一个相关的五年前的问题here,但评分最高的解决方案并不适用。在这种情况下,结果控制台中没有错误消息。
3条答案
按热度按时间hfyxw5xn1#
我认为问题在于您使用了
pytest-cov
,因此Pycharm无法解析由pytest-cov
生成的53%
之类的文本中显示的结果;因此,当您想要使用Pycharm内置覆盖工具时,请将
pytest.ini
中的选项更改为addopts = -s -v
。在此命令中,
-v
代表详细程度,-s
代表禁用所有输出。9nvpjoqh2#
我也有类似的问题,但这里公认的解决方案并没有解决它。
我让
pytest
在它的配置文件中自动运行覆盖率,在PyCharm中,我添加了一个运行配置来运行我对pytest
的所有测试,它看起来工作正常,我看到所有测试都在运行,并且在PyCharm的运行窗口中显示了它们的结果。但很快我注意到有两个问题:
1.当我选择“带覆盖率运行”时,我得到了一个类似“未找到覆盖率结果”的错误,所有文件都显示0%的覆盖率。
1.在调试模式下运行测试时,未命中测试中断点
当我将
--no-cov
添加到传递给pytest
的“Additional Arguments”中时,这两个问题都消失了(此选项位于Run Configuration中)。所以看起来修复是告诉
pytest
在PyCharm中运行时不要运行覆盖率。“带覆盖率运行”选项和测试中的断点现在都可以工作了。dgenwo3n3#
看看我对同一问题的其他问题的回答:https://stackoverflow.com/a/45729723/1229510
基本上,如果你使用符号链接-覆盖率显示不会工作。