【问题标题】:django-nose - Exclude directory in coveragedjango-nose - 在覆盖范围内排除目录
【发布时间】:2017-03-16 15:10:11
【问题描述】:

我使用django-nose 来测量我的测试套件的覆盖率。
我按照这个doc 来做这个。

使用标准配置运行良好,我成功覆盖了我的所有应用程序。

我会在不安装新软件包的情况下将views 目录排除在覆盖范围之外,因此我尝试以这种方式使用--ignore-files 参数:

NOSE_ARGS = [
    '--with-coverage',
    '--cover-package=apps.my_app',
    '--ignore-files=^views\\.'
]

我的项目结构是

+- root
|-- src
|--- main
|---- apps
|----- my_app
|------ views
|--- test
|---- main
|----- apps
|------ my_app
|------- views

然后我使用以下命令从项目根目录运行测试套件:

python src\main\manage.py test --noinput main

不幸的是它不能正常工作,我的意思是 django-nose 似乎忽略了这个选项,并且视图目录包含在覆盖范围内。

我错过了什么?

【问题讨论】:

    标签: python django unit-testing django-nose


    【解决方案1】:

    您可以配置 coverage.py 以从分析中排除文件,并从覆盖率报告中排除文件。我已经使用 django-nose 成功完成了这项工作。

    添加一个.coveragerc 文件,在同一目录下coverage.py 正在运行(您从中运行测试),类似于以下内容 ->

    [run]
    omit = 
        my/folder/*
    
    
    [report]
    omit = 
        my/folder/*
    

    【讨论】:

    • +1 这非常有用——我 [run] 设置正确,但 [report] 设置不正确,所以我的输出中仍然有大量噪音!
    • 这行得通,但是我不得不调用配置文件.coveragerc
    • 谢谢,我认为原文有错字,根据您的评论修正。
    猜你喜欢
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 2021-02-13
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多