Python覆盖:排除文件

时间:2018-03-30 17:46:35

标签: python unit-testing config code-coverage

我在包含我的项目的虚拟环境中使用 unittest2 coverage

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

由于要排除多个文件,因此每次要运行测试并查看覆盖率报告时,尝试从命令行中排除它们都很繁琐。这就是我选择依赖配置文件的原因。

documentation说我应该在 .coveragerc 文件中执行此操作。但是我看不到它。当我运行pip show coverage然后ls -a path_to_coverage_directory时,我会看到config.py文件。因此,通过查看来自--omitchanged it的选项,将测试和报告中的一个文件排除在外:

self._omit = None 

为:

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

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

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

1 个答案:

答案 0 :(得分:3)

.coveragerc是项目本地目录中的一个文件,用于指示coverage应如何处理该特定代码集。您应该具有以下内容:

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

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

[run]
omit = 
    case.py

或者类似的东西:

[run]
source = mycodefile*.py

您可以合并sourceomit以包含整个代码目录,同时排除这些目录中的特定文件。全部取决于您的代码布局究竟是什么样的。请参阅此处how you can specify code files