Токс 0% покрытия - PullRequest
       36

Токс 0% покрытия

0 голосов
/ 04 ноября 2019

У меня есть проект на Python, где я использую:

  • pipenv
  • tox
  • pytest

и многие другие.

По сути, я хочу добавить tox к моим конвейерам gitlab. И почти все, кажется, работает, вызов mypy, flake8 или black с токсиком работает нормально. Но когда я звоню tox -e py37 (поэтому я хочу запустить тесты) с включенным покрытием, тесты запускаются, я вижу их результаты, но покрытие составляет 0% (100% только для пустых __init__ файлов и т. Д. .) и я получаю предупреждение: Coverage.py warning: No data was collected. (no-data-collected).

Это моя часть, относящаяся к pytest: tox.ini:

[tox]
envlist = flake8,mypy,black,py37

[testenv]
extras = tests
commands=
    pytest --cov -ra --tb=short {posargs}

А это моя .coveragerc:

[run]
branch = True
source =
    foo

omit = 
    foo/__init__.py
    foo/__main__.py
    foo/bar/__init__.py
    foo/baz/__init__.py

[report]
exclude_lines =
    pragma: no cover
    if __name__ == .__main__.
show_missing = True

У меня есть рабочий setup.py, который включает в себя все необходимые пакеты: pytest, pytest-cov и многие другие для стиля и т. Д. (Который работает). У меня также есть __init__.py в моей папке tests.

Забавно, если я вызываю ту же команду, что и в tox.ini, из моей командной строки (в pipenv): pytest --cov -ra --tb=short,Я получаю те же результаты, но с нормальным покрытием (в моем случае это 100%).

Есть ли способ это исправить? Я не хочу, чтобы мои конвейеры показывали неправильное покрытие + даже если они каким-то волшебным образом действительно получат правильное покрытие, я все равно хотел бы увидеть его локально.

PS Когда я пытался решить проблему, я позвонилтоксик с tox --sitepackages -e py37 и я получил некоторые ошибки, такие как test command found but not in testenv. И кроме этих ошибок, мое освещение было хорошо тогда. Но затем я удалил tox, pytest и pytest-cov из своего глобального регистра пипсов, и теперь с или без флага --sitepackages я все еще получаю 0% покрытие

...