Pytest cov не читает pyproject.toml
Pytest cov не считывает свои настройки из файла pyproject.toml. Я использую nox, поэтому провожу тест с помощью:
python3 -m nox
Кажется, у меня такая же проблема даже без 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%
Здесь код с воспроизводимой ошибкой. Для его запуска вам необходимо установить поэзию и установить nox.
1 ответ
Решение
Превращаем комментарий в ответ:
Проверьте текущее лечение src
каталог. Прямо сейчас это похоже на пакет пространства имен, который не соответствует вашим намерениям. Либо переключитесь наsrc
макет:
# pyproject.toml
[tool.poetry]
...
packages = [
{ include = 'project', from = 'src' }
]
[tool.coverage.run]
...
source = ['project']
и исправим импорт в test_code.py
:
from src.project import code
к
from project import code
или удалите src
реж:
rootdir
├── project
│ └── __init__.py
└── tests
└── test_code.py
и исправим импорт в test_code.py
.