我正在尝试使用django项目的coverage模块查找覆盖率,但得到了
Coverage.py warning: No data was collected. (no-data-collected)我的项目文件夹有src和test文件夹。
当我跑的时候
coverage run -m pytest && coverage report它会生成一个100%覆盖率的报告,其中包含测试文件夹中的文件列表。但是当我跑的时候
coverage run --source=src -m pytest && coverage report上面写着
Coverage.py warning: No data was collected. (no-data-collected)
No data to report.当我试图在.coveragerc中给出source=src或include=src时,同样的警告也出现了。以上所有情况的测试都通过了。
我想要src文件夹的覆盖范围。是不是因为我缺少一些路径设置?
发布于 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/
发布于 2018-08-28 02:02:04
我也有同样的问题,问题出在我运行测试的路径上。
现在正在运行的:
结构
~/Projects/ProjectName
├── manage.py
├── tests
├── src
│ ├── app_one
├── .coveragerc命令:
~/Projects/ProjectName$ coverage run manage.py test和我的.coveragerc:
[run]
include = */src/*
omit = *migrations*, *tests*
plugins = django_coverage_plugin发布于 2019-07-17 00:35:45
问题是您没有指定从哪个目录获取覆盖范围。
您可以在.coveragerc文件或命令行中指定:
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参数:
[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文件:
[run]
omit =
# omit everything in the folder
proj-ab/api/confs/
# omit file
proj-ab/models/file-not-covered.py在这些示例中,我使用了Requirements::pytest==4.6.2和pytest-cov==2.7.1
https://stackoverflow.com/questions/47287721
复制相似问题