【问题标题】:Coverage.py shows coverage of test files instead of Flask application filesCoverage.py 显示测试文件而不是 Flask 应用程序文件的覆盖率
【发布时间】:2020-07-02 10:50:43
【问题描述】:

我提出了这个问题,按照coverage.py 页面中的说明,我最终得到了关于测试文件本身而不是应用程序文件的报告。我指的是一个 Flask 应用程序,它使用 unittest 作为测试框架,使用 coverage.py 作为覆盖率报告。

项目的文件夹树可以表示如下:

+ root
+
++++ Server
   +
   ++++ server.py
   ++++ Models
      +
      ++++ other_files
    +
++++ Tests
   +
   ++++ test_file.py

如果我使用命令:

coverage run -m unittest discover && coverage report

我明白了:

Name                      Stmts   Miss  Cover
---------------------------------------------
Models\__init__.py            0      0   100%
test_1.py                    76     16    79%
test_2.py                    67      3    96%
---------------------------------------------
TOTAL                       143     19    87%

我得到的输出没有引用 ApplicationFile(s).py。

如果我改用:

coverage run --source ./../ApplicationFile.py -m unittest discover && coverage report

我明白了:

Coverage.py warning: Module ./../ApplicationFile.py was never imported. (module-not-imported)
Coverage.py warning: No data was collected. (no-data-collected)
No data to report.

有人知道问题出在哪里吗?

【问题讨论】:

    标签: python flask python-unittest coverage.py


    【解决方案1】:

    我认为--source 期望的是目录而不是文件。改用coverage run --source ./../ -m unittest discover && coverage report

    【讨论】:

    • 您好,通过指向源文件文件夹,我仍然收到“未收集数据”警告,但没有收到“从未导入”消息。
    • 嗨,不知道为什么会这样。我刚刚用一个模拟项目在本地对其进行了测试,似乎可以工作imgur.com/ZyTYZmH
    • 项目结构和我画的一样吗?我又试了一次,还是出现同样的错误
    猜你喜欢
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    相关资源
    最近更新 更多