如何覆盖未测试的文件?
How do I make coverage include not tested files?
我刚刚开始为我使用 unittest
和 coverage
的 python 项目编写一些单元测试。我目前只测试了一小部分,但我正在尝试计算代码覆盖率
我 运行 我的测试并使用以下方法获得覆盖率
python -m unittest discover -s tests/
coverage run -m unittest discover -s tests/
coverage report -m
我遇到的问题是 coverage
告诉我有 44% 的代码覆盖率并且只计算以下文件:
在单元测试中进行了测试(即,所有未测试的文件均丢失且不在整体覆盖范围内)
在虚拟环境中的库和实际测试的代码覆盖率中。结果中不应该包括实际测试吗?
此外,它说在这些单元测试中实际测试的文件只测试了前几行(大多数情况下是 import 语句)
如何获得更真实的代码覆盖率,或者这就是它的本意?
如果您使用 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
根本不是 运行 的文件。
我刚刚开始为我使用 unittest
和 coverage
的 python 项目编写一些单元测试。我目前只测试了一小部分,但我正在尝试计算代码覆盖率
我 运行 我的测试并使用以下方法获得覆盖率
python -m unittest discover -s tests/
coverage run -m unittest discover -s tests/
coverage report -m
我遇到的问题是 coverage
告诉我有 44% 的代码覆盖率并且只计算以下文件:
在单元测试中进行了测试(即,所有未测试的文件均丢失且不在整体覆盖范围内)
在虚拟环境中的库和实际测试的代码覆盖率中。结果中不应该包括实际测试吗?
此外,它说在这些单元测试中实际测试的文件只测试了前几行(大多数情况下是 import 语句)
如何获得更真实的代码覆盖率,或者这就是它的本意?
如果您使用 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
根本不是 运行 的文件。