首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Coverage.py警告:未收集任何数据。(未收集数据)

Coverage.py警告:未收集任何数据。(未收集数据)
EN

Stack Overflow用户
提问于 2017-11-14 22:00:39
回答 6查看 31K关注 0票数 44

我正在尝试使用django项目的coverage模块查找覆盖率,但得到了

代码语言:javascript
运行
复制
Coverage.py warning: No data was collected. (no-data-collected)

我的项目文件夹有src和test文件夹。

当我跑的时候

代码语言:javascript
运行
复制
coverage run -m pytest && coverage report

它会生成一个100%覆盖率的报告,其中包含测试文件夹中的文件列表。但是当我跑的时候

代码语言:javascript
运行
复制
coverage run --source=src -m pytest && coverage report

上面写着

代码语言:javascript
运行
复制
Coverage.py warning: No data was collected. (no-data-collected)
No data to report.

当我试图在.coveragerc中给出source=srcinclude=src时,同样的警告也出现了。以上所有情况的测试都通过了。

我想要src文件夹的覆盖范围。是不是因为我缺少一些路径设置?

EN

回答 6

Stack Overflow用户

发布于 2020-03-07 23:28:20

coverage (由pytest-cov使用)需要测试文件夹包含__init__.py,然后才能收集任何数据。

我将__init__.py添加到测试文件夹中,然后coverage按预期收集数据。

请参阅http://thomas-cokelaer.info/blog/2017/01/pytest-cov-collects-no-data-on-travis/

票数 19
EN

Stack Overflow用户

发布于 2018-08-28 02:02:04

我也有同样的问题,问题出在我运行测试的路径上。

现在正在运行的

结构

代码语言:javascript
运行
复制
~/Projects/ProjectName
├── manage.py
├── tests
├── src
│   ├── app_one
├── .coveragerc

命令:

代码语言:javascript
运行
复制
~/Projects/ProjectName$ coverage run manage.py test

和我的.coveragerc:

代码语言:javascript
运行
复制
[run]
include = */src/*
omit = *migrations*, *tests*
plugins = django_coverage_plugin
票数 14
EN

Stack Overflow用户

发布于 2019-07-17 00:35:45

问题是您没有指定从哪个目录获取覆盖范围。

您可以在.coveragerc文件或命令行中指定:

代码语言:javascript
运行
复制
pytest tests -v --cov-report term --cov-report html:htmlcov --cov-report xml --cov-fail-under=90 --cov=<the-dir-to-colect-coverage-from>

如果需要,您只能在项目根目录下的pytest.ini上执行pytest tests并添加pytest参数:

代码语言:javascript
运行
复制
[pytest]
addopts = -v --cov-report term --cov-report html:htmlcov --cov-report xml --cov-fail-under=<coverage-percentage-desired> --cov=<the-dir-to-colect-coverage-from>

奖励:

如果您想从覆盖率中省略文件,您可以在项目根目录中添加一个.coveragerc文件:

代码语言:javascript
运行
复制
[run]
omit =
    # omit everything in the folder
    proj-ab/api/confs/
    # omit file
    proj-ab/models/file-not-covered.py

在这些示例中,我使用了Requirements:pytest==4.6.2pytest-cov==2.7.1

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47287721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档