【发布时间】:2020-01-06 02:31:33
【问题描述】:
AFAIK 功能“测试覆盖率”仅在专业版 (code-coverage) 中可用。
如何使用 PyCharm 社区版本查看我的测试的代码覆盖率?
【问题讨论】:
标签: pycharm code-coverage coverage.py
AFAIK 功能“测试覆盖率”仅在专业版 (code-coverage) 中可用。
如何使用 PyCharm 社区版本查看我的测试的代码覆盖率?
【问题讨论】:
标签: pycharm code-coverage coverage.py
如您所见,测试覆盖率功能仅在专业 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
pip install coverage
然后运行给定的命令(django 应用程序)
coverage run --source='.' manage.py test --keepdb
coverage report --skip-covered -m
【讨论】: