如何使覆盖范围包括未测试的文件?

2024-05-23 13:50:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始为一个使用unittestcoverage的python项目编写一些单元测试。我目前只测试了一小部分,但我正在尝试计算代码覆盖率

我运行我的测试并使用下面的代码获得覆盖率

python -m unittest discover -s tests/
coverage run -m unittest discover -s tests/
coverage report -m

我遇到的问题是coverage告诉我有44%的代码覆盖率,并且只计算以下文件:

  1. 在单元测试中测试过(即,所有未测试的文件都丢失,不在整个覆盖范围内)

  2. 在虚拟环境中的库和实际测试的代码覆盖率。当然不应该在结果中包含实际的测试吗?

此外,它还指出,在这些单元测试中实际测试的文件只测试了前几行(在大多数情况下是import语句)

我该如何获得更真实的代码覆盖率,还是应该这样做?


Tags: 文件项目run代码importreport虚拟环境coverage
2条回答

如果使用nose作为测试运行程序,则它的覆盖率插件提供

  --cover-inclusive     Include all python files under working directory in
                        coverage report.  Useful for discovering holes in test
                        coverage if not all files are imported by the test
                        suite. [NOSE_COVER_INCLUSIVE]

  --cover-tests         Include test modules in coverage report
                        [NOSE_COVER_TESTS]

--source=.添加到coverage运行行。它既将焦点限制在当前目录,又将搜索根本未运行的.py文件。

相关问题 更多 >