代码覆盖率不适用于 PyDev

Code Coverage not working with PyDev

首先,抱歉再次提问。我找到了一些关于这个主题的帖子,但是 none 的建议对我有用。结果众所周知:PyDev 总是报告 "File has no statistics".

在以前的安装(Linux 和 Windows)中,我看到它按照 PyDev homepage 中的描述工作。

这是我的安装:

在 Eclipse/PyDev 中显示 Coverage 视图,选择基本程序文件夹并选中 "enable code coverage for new launches"。任何时候我 运行 代码(无论是单元测试还是正常 运行)覆盖范围 window 都会显示空 table 或者,如果选择了文件,则会显示上述消息。

路径(从/home/username...开始)不包含任何空格。

我尝试将 PyUnit 的详细级别设置为 9。虽然控制台有更多输出,但覆盖率统计信息仍然为空。

还有人知道吗?在这种情况下我错过了什么吗?

感谢您的帮助。

克里斯

编辑: .coverage 文件的路径由详细的 PyUnit 控制台输出报告。这个文件是存在的,它看起来像这样(我只是把这里的路径去掉了,但是是正确的):

!coverage.py: 这是私有格式,不要直接看!{"lines": {"/home/.../....py": [5 , 7, 8, 9, 12, 14, 15, 16, 17, 18, 19, 21, 22, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 39, 40, 42 , 43], "/home/.../....py": [5, 38, 7, 29, 9, 42, 11, 12, 13, 15, 17, 44, 19, 40, 21, 23, 25, 27, 10, 31], "/home/.../....py": [32, 33, 34, 35, 36, 5, 7, 8, 9, 39, 12, 15 , 23, 26, 27, 37, 30, 31]}}

问题出在 coverage 的版本上,应该低于 v4。作为用户 saaj wrote in his answer to this question,安装完成

sudo pip install "coverage < 4.0.0"

已解决问题。所以这是我的安装:

  • Python 3.4
  • PyDev 4.4
  • 覆盖率 3.7.1

而且这个组合效果很好。

更新:我现在(2019 年 1 月)再次检查并确认,当前版本的工具可以很好地协同工作:

  • Python 3.5
  • PyDev 7.0.3
  • 覆盖率 4.5.2

因此不再需要调用特定版本的覆盖率,如上所示。