use*_*621 5 python code-coverage pytest pytest-cov pyproject.toml
Pytest cov 未从 pyproject.toml 文件中读取其设置。我正在使用 nox,因此我使用以下命令运行测试:
python3 -m nox
Run Code Online (Sandbox Code Playgroud)
即使没有 nox,我似乎也有同样的问题。
事实上,在运行之后poetry install:
poetry run pytest --cov=src 通过测试poetry run pytest --cov 没有通过测试特别是,当测试失败时,我有以下输出(输出被剪切到最重要的内容):
WARNING: Failed to generate report: No data to report.
/Users/matteo/Library/Caches/pypoetry/virtualenvs/project-Nz69kfmJ-py3.7/lib/python3.7/site-packages/pytest_cov/plugin.py:271: PytestWarning: Failed to generate report: No data to report.
self.cov_controller.finish()
---------- coverage: platform darwin, python 3.7.7-final-0 -----------
FAIL Required test coverage of 100.0% not reached. Total coverage: 0.00%
Run Code Online (Sandbox Code Playgroud)
此处有可重现错误的代码。要运行它,您需要安装诗歌并安装 nox。
将评论变成答案:
\n检查当前src目录的处理情况。现在,它似乎是一个名称空间包,这不是您想要的。要么切换到src布局:
# pyproject.toml\n\n[tool.poetry]\n...\npackages = [\n { include = 'project', from = 'src' }\n]\n\n[tool.coverage.run]\n...\nsource = ['project']\nRun Code Online (Sandbox Code Playgroud)\n并修复导入test_code.py:
from src.project import code\nRun Code Online (Sandbox Code Playgroud)\n到
\nfrom project import code\nRun Code Online (Sandbox Code Playgroud)\n或删除src目录:
rootdir\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 project\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tests\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test_code.py\nRun Code Online (Sandbox Code Playgroud)\n并修复导入test_code.py。
| 归档时间: |
|
| 查看次数: |
2252 次 |
| 最近记录: |