如何进行覆盖包括未测试的文件?

时间:2016-01-11 18:43:06

标签: python unit-testing python-unittest coverage.py

我刚开始为使用unittestcoverage的python项目编写一些单元测试。我目前只测试一小部分,但我正在努力解决代码覆盖问题

我运行测试并使用以下

获取覆盖率
python -m unittest discover -s tests/
coverage run -m unittest discover -s tests/
coverage report -m

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

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

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

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

    如何获得更实际的代码覆盖率,或者它是如何实现的呢?

2 个答案:

答案 0 :(得分:35)

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

答案 1 :(得分:1)

如果你使用nose代替testrunner,它的coverage插件提供

  --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]