PyCharm:社区版的覆盖范围?

Posted

技术标签:

【中文标题】PyCharm:社区版的覆盖范围?【英文标题】:PyCharm: Coverage in community edition? 【发布时间】:2020-01-06 02:31:33 【问题描述】:

AFAIK 功能“测试覆盖率”仅在专业版 (code-coverage) 中可用。

如何使用 PyCharm 社区版本查看我的测试的代码覆盖率?

【问题讨论】:

【参考方案1】:

如您所见,测试覆盖率功能仅在专业 PyCharm 版本中可用。

可以做的是使用一个外部 Python 包来执行测试套件的覆盖。这个包被命名为coverage。 您可以使用以下命令轻松安装它:

pip install coverage

然后,您可以直接通过 PyCharm 终端使用它(确保解释器是正确的)。

这里有一个简单的例子: 假设你有一个像这样的项目结构

- project_name
    - src
        - some_code.py
    - unittests
        - test_1.py
        - test_2.py  

为了运行所有 unittests 文件夹,您必须在 PyCharm 终端中输入以下命令:

coverage run --source=./unittests -m unittest discover -s unittests/ && coverage report

请注意,在此示例中,我从 project_name 目录启动命令。

这样,单元测试将运行,并且覆盖率也将显示。

另一个有趣的选项是创建 html 报告。如果您有兴趣这样做,请使用以下命令:

coverage run --source=./unittests -m unittest discover -s unittests/ && coverage html

这样会添加一个新文件夹,其中包含 HTML 报告的所有源代码。

coverage 包有很多选项,并且可以通过不同的方式对其进行自定义,请查看documentation。

【讨论】:

附带说明,unittest discover 是关键字词组,因此您不应更改它。您需要更改以匹配您的测试目录的命令的唯一部分是--source=./unittests-s unittests/ Coverage 文档链接已损坏。文档可以在这里找到:coverage.readthedocs.io/en/6.0 已更新,谢谢!【参考方案2】:

您可以为此使用PyCrunch 插件。

作为奖励,当受影响的文件发生更改时,测试将重新运行。

披露:我是这个插件的作者

【讨论】:

我花了一两个小时的时间试图让 PyC​​runch 正常工作。我怀疑它可能适用于最简单的测试,但当我终于设法让它发现一个测试时我放弃了,但后来我需要的导入再次停止了发现。通过 PyCharm 或控制台运行时,所有测试都运行良好。 config.yaml 的文档也是错误的——连字符前缀和solidus 后缀破坏了一些东西。不是很好的体验。我希望我在正确评估之前没有投票。 哦,看起来 Gleb Sevruk 是 PyCrunch 的作者。如果我知道当我阅读此答案时,我会对此更加谨慎。当他在这里回答关于推荐他的插件的问题时,他真的应该披露这一点。 (github.com/gleb-sevruk/pycrunch-engine) 很抱歉给您带来了麻烦,很难听到您遇到这样的挫败感。一般来说,它适用于我所有的项目(除了 async-io 测试),并且代码需要以更复杂的方式构造以满足该工具的要求。 .Net 替代 Ncrunch 也是如此,我第一次在一个复杂的项目中设置它花了几天时间。而且我认为这不是对非商业产品提供反馈的正确方式,没有具体细节。这对我和其他用户没有帮助。相反,最好在 github 上开票或提交 PR。添加了免责声明。【参考方案3】:

首先你需要安装coverage

pip install coverage

然后运行给定的命令(django 应用程序)

coverage run --source='.' manage.py test --keepdb
coverage report --skip-covered -m

【讨论】:

这看起来像是佐丹奴的回答。为什么要第二个答案?你的答案有什么不同/更好? 命令略有不同,例如 keepdb 不会在每次运行时都创建临时数据库并在终端上显示报告,skip-covered 会跳过代码覆盖率为 100% 的文件

以上是关于PyCharm:社区版的覆盖范围?的主要内容,如果未能解决你的问题,请参考以下文章

pycharm 专业版 和 社区版有啥区别

如何安装PyCharm图文详解

使用pycharm软件配置数据库可视化

教你如何安装Pycharm到熟练使用!Pycharm不愧是编辑器里面的大哥

Pycharm调用NodeJS运行js代码 的 环境配置

pycharm社区版需要激活码吗