Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Coverage.py警告:未收集任何数据。(未收集数据)_Python_Django_Pytest_Coverage.py_Test Coverage - Fatal编程技术网

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

Python Coverage.py警告:未收集任何数据。(未收集数据),python,django,pytest,coverage.py,test-coverage,Python,Django,Pytest,Coverage.py,Test Coverage,我正在尝试使用覆盖率模块为django项目查找覆盖率,但是得到 Coverage.py warning: No data was collected. (no-data-collected) 我的项目文件夹包含src和tests文件夹 当我跑的时候 coverage run -m pytest && coverage report 它生成一个报告,该报告100%覆盖测试文件夹中的文件列表。 而当我跑的时候 coverage run --source=src -m pytest

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

Coverage.py warning: No data was collected. (no-data-collected)
我的项目文件夹包含src和tests文件夹

当我跑的时候

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文件夹的覆盖范围。
是因为我缺少一些路径设置吗?

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

现在正在运行的功能:

结构

~/Projects/ProjectName
├── manage.py
├── tests
├── src
│   ├── app_one
├── .coveragerc
命令:

~/Projects/ProjectName$ coverage run manage.py test
还有我的保险人C:

[run]
include = */src/*
omit = *migrations*, *tests*
plugins = django_coverage_plugin

如果您需要在
.coveragerc
中使用“source”,可以编写如下代码

[run]
source = src
omit = *migrations*, *tests*
plugins = django_coverage_plugin

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

您可以在
.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>
奖金:

如果要从覆盖范围中删除文件,可以在项目根目录中添加
.coveragerc
文件:

[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>
[run]
omit =
    # omit everything in the folder
    proj-ab/api/confs/
    # omit file
    proj-ab/models/file-not-covered.py
要求: 在这些示例中,我使用的是需求:
pytest==4.6.2
pytest-cov==2.7.1
覆盖率(由
pytest-cov
使用)需要tests文件夹包含
\uuu init\uuuuu.py
才能收集任何数据

我将
\uuuu init\uuuu.py
添加到tests文件夹,然后覆盖率按预期收集数据


参考

我也有同样的问题,上面的答案并没有完全解决。事实证明,您需要将
\uuu init\uuu.py
放在每个有测试的子目录中。

我在tox中遇到了这个错误:

Coverage.py warning: No data was collected. (no-data-collected)

我的配置执行模块的安装,并测试该模块,而不是源代码。但是,test discovery在我的应用程序包中发现了一个我命名为
test.*.py
的模块,导致
PYTHONPATH
混乱,并导致无法收集覆盖详细信息。将模块重命名为不以
test\uu开始解决了问题。

可能您没有从src文件夹运行代码?将--debug=trace添加到覆盖率运行行。它将打印有关执行的每个文件的信息,是否跟踪,如果没有,为什么不打印。尝试用实际路径替换src。它应该指向一个文件夹,而不是一个文件。ProjectName文件夹中的.coveragerc文件在哪里?将更新上面的结构。您现在在哪里运行pytest?我发现这个评论对我很有用,因为我正在寻找解决我的单元测试中pytest cov使用问题的方法。谢谢你!