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.
src
. Значение каталогаsrc
состоит в том, чтобы избежать случайного импорта кода из репозитория, гарантируя, что пакет всегда будет установлен.poetry
поддерживаетsrc
макет; в вашем случае вам нужно будет добавитьpackages = [{ include = 'project', from = 'src' }]
в разделtool.poetry
иsource = ['project']
вtool.coverage.run
. - person hoefling   schedule 10.07.2020src
, если вам не нужен макетsrc
. В любом случае,from src.project import code
должен быть исправлен. Ваш корневой пакетproject
, а неsrc
. - person hoefling   schedule 10.07.2020