即使生成了覆盖范围,Pycharm / IntelliJ也显示0%的pytest覆盖率

时间:2017-08-09 17:42:11

标签: python intellij-idea pycharm pytest coverage.py

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

enter image description here

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

enter image description here

所有文件的自动应用覆盖率(如右图所示)为0%,我不知道为什么。我正在使用IntelliJ 2017.2.2 EAP。

注意:有一个相关的五年前问题here,但最高评价的解决方案不适用。在这种情况下,结果控制台中没有错误消息。

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,但是这里公认的解决方案无法解决问题。

我让pytest在其配置文件中自动运行了coverage。 在PyCharm中,我添加了一个运行配置以使用pytest运行我的所有测试。 它似乎可以正常运行,我看到所有测试都在运行,并且将其结果显示在PyCharm的运行窗口中。

但是不久我发现有两个问题:

  1. 当我选择“以coverage运行”时,出现诸如“找不到覆盖结果”之类的错误,并且所有文件的覆盖率均为0%。
  2. 在“调试”模式下运行测试时,未达到测试的断点。

当我将--no-cov添加到传递给pytest的“其他参数”中时,两个问题都消失了(此选项在“运行配置”中)。

因此看来,解决方法是告诉pytest从PyCharm运行时运行承保范围。 “覆盖运行”选项和测试中的断点现在都可以使用。

答案 1 :(得分:0)

请查看我对同一问题的其他问题的回答:https://stackoverflow.com/a/45729723/1229510

基本上,如果您使用符号链接 - 覆盖显示无法正常工作。