如何覆盖未测试的文件?

新手上路,请多包涵

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

我运行我的测试并使用以下方法获得覆盖

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

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

  1. 在单元测试中进行了测试(即,所有未测试的文件都丢失了,并且不在整体覆盖范围内)

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

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

我如何获得更真实的代码覆盖率,或者这就是它的本意?

原文由 user4591756 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 528
2 个回答

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

原文由 Ned Batchelder 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您使用 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]

原文由 Daenyth 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题