Python 覆盖范围:不包括文件

Python coverage: excluding files

我在虚拟环境中使用 unittest2coverage,该虚拟环境也包含我的项目。

当我 运行 coverage report -m 时,报告显示来自 lib/python3.5/site-packages/.[= 的其他几个文件19=]

因为有几个文件要排除,所以每次我想 运行 测试并查看覆盖率报告时都尝试从命令行中排除它们是很乏味的。这就是我选择依赖配置文件的原因。

documentation says I should do so in the .coveragerc file. However I can not see it. When I run pip show coverage and then ls -a path_to_coverage_directory I see config.py file instead. So excluded one file from testing and reporting from it by looking where is the option --omit and changed it 来自:

self._omit = None 

至:

self._omit = ['/home/begueradj/development/app/lib/python3.5/site-packages/unittest2/case.py']

我保存了配置文件和运行再次测试和覆盖率报告:我看到这个文件没有被排除。

我错过了什么?你如何解决这个问题?

.coveragerc 是项目本地目录中的一个文件,指示覆盖应如何处理该特定代码集。你应该有如下内容:

myproject/
 - mycodefile1.py
 - mycodefile2.py
 - ...
 - .coveragerc

其中 .coveragerc 位于您执行 coverageunittest 的目录中。它包含以下内容:

[run]
omit = 
    case.py
    

或者类似的东西:

[run]
source = mycodefile*.py

您可以组合使用 sourceomit 以包含整个代码目录,同时排除这些目录中的特定文件。一切都取决于您的代码布局到底是什么样子。 how you can specify code files.

见此处