Python覆盖率:不包括文件

Bil*_*adj 1 python unit-testing code-coverage config

我使用unittest2覆盖其中还包含我的项目在虚拟环境中。

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

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

文件说我应该在这样做.coveragerc文件。但是我看不到它。当我运行pip show coverage然后ls -a path_to_coverage_directory我看到config.py文件时。因此,通过查看选项在哪里--omit并将其更改为从测试和报告中排除了一个文件:

self._omit = None 
Run Code Online (Sandbox Code Playgroud)

到:

self._omit = ['/home/begueradj/development/app/lib/python3.5/site-packages/unittest2/case.py']
Run Code Online (Sandbox Code Playgroud)

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

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

scn*_*erd 5

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

myproject/
 - mycodefile1.py
 - mycodefile2.py
 - ...
 - .coveragerc
Run Code Online (Sandbox Code Playgroud)

哪里.coveragerc是在你执行的目录coverage,并unittest从。它包含以下内容:

[run]
omit = 
    case.py
Run Code Online (Sandbox Code Playgroud)

或者可能是这样的:

[run]
source = mycodefile*.py
Run Code Online (Sandbox Code Playgroud)

您可以组合sourceomit包含整个代码目录,同时排除这些目录中的特定文件。一切都取决于您的代码布局究竟是什么样子。请参阅此处了解如何指定代码文件