我在包含我的项目的虚拟环境中使用 unittest2 和 coverage 。
当我运行coverage report -m
时,报告会显示 lib / python3.5 / site-packages / 中的其他几个文件。
由于要排除多个文件,因此每次要运行测试并查看覆盖率报告时,尝试从命令行中排除它们都很繁琐。这就是我选择依赖配置文件的原因。
documentation说我应该在 .coveragerc 文件中执行此操作。但是我看不到它。当我运行pip show coverage
然后ls -a path_to_coverage_directory
时,我会看到config.py
文件。因此,通过查看来自--omit
和changed it的选项,将测试和报告中的一个文件排除在外:
self._omit = None
为:
self._omit = ['/home/begueradj/development/app/lib/python3.5/site-packages/unittest2/case.py']
我保存了配置文件并再次运行测试和覆盖率报告:我看到这个文件没有被排除。
我错过了什么?你怎么解决这个问题?
答案 0 :(得分:3)
.coveragerc
是项目本地目录中的一个文件,用于指示coverage应如何处理该特定代码集。您应该具有以下内容:
myproject/
- mycodefile1.py
- mycodefile2.py
- ...
- .coveragerc
.coveragerc
位于您执行coverage
和unittest
的目录中的位置。它包含以下内容:
[run]
omit =
case.py
或者类似的东西:
[run]
source = mycodefile*.py
您可以合并source
和omit
以包含整个代码目录,同时排除这些目录中的特定文件。全部取决于您的代码布局究竟是什么样的。请参阅此处how you can specify code files。