【问题标题】:Python coverage: excluding filesPython 覆盖范围:不包括文件
【发布时间】:2018-09-09 18:18:49
【问题描述】:

我在一个也包含我的项目的虚拟环境中使用 unittest2coverage

当我运行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']

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

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

【问题讨论】:

    标签: python unit-testing config code-coverage


    【解决方案1】:

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

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

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

    [run]
    omit = 
        case.py
        
    

    或者可能是这样的:

    [run]
    source = mycodefile*.py
    

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

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 2019-11-11
      相关资源
      最近更新 更多