【问题标题】:coverage.py doesn't work with relative imports?coverage.py 不适用于相对导入?
【发布时间】:2014-07-15 12:50:57
【问题描述】:

我正在为我的 django 应用收集代码覆盖率,如果模块是相对导入的,看起来 coverage.py 不会收集统计信息。

更详细:

目录结构如下:

project
    __init__.py
    apps
        __init__.py
        my_app
            __init__.py
            my_module.py
            tests.py

所以如果我在tests.py 中执行from .my_module import * - 那么coverage.py 将不会收集my_module.py 的统计信息。但是,如果我输入from apps.my_app.my_module import *,则统计信息就在那里。

我正在使用 django-nosecoverage 插件,并在运行测试时使用 --cover-package=apps.my_app 标志。

有没有人偶然发现过这种情况?我真的不想总是拥有完整的导入路径,除非我真的必须这样做,所以任何想法都值得赞赏。

【问题讨论】:

    标签: python django coverage.py django-nose


    【解决方案1】:

    我不熟悉 django-nose,但是为了解决没有 Django 的类似问题,我安装了 pytest 和 pytest-cov 包并做了类似的事情:

    py.test --cov app
    

    报告了覆盖率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-30
      • 2011-06-08
      • 2018-01-23
      • 2011-02-07
      • 2010-10-01
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多