pytest и codecov: отчет о покрытии не найден - PullRequest
1 голос
/ 31 октября 2019

Я создал новый Python-репозиторий на основе шаблона печенья. Все выглядит хорошо, поэтому я сейчас пытаюсь установить тестирование и тестирование покрытия с использованием travis и codecov. Я новичок в Pytest, но я пытаюсь сделать все правильно. Посмотрев в интернете, я закончил с такой настройкой:

В .travis.yml, я добавил следующее:

install: 
  - pip install -U tox-travis
  - pip install coverage
  - pip install codecov

script:
    - python setup.py install
    - tox
    - coverage run tests/test_foo.py

В моем tox.ini file:

[testenv]
passenv = CI TRAVIS TRAVIS_*
setenv =
    PYTHONPATH = {toxinidir}
    PIPENV_IGNORE_VIRTUALENVS=1
deps =
    pipenv
    codecov
    pytest
    {py27}: pathlib2
commands_pre = 
    pipenv install --dev --skip-lock
    codecov

Я создал минимальный файл tests/test_foo.py со следующим (foo() - единственная функция, присутствующая в данный момент в пакете).

import pytest
import doctest
import neurokit2 as nk

if __name__ == '__main__':
    doctest.testmod()
    pytest.main()

def test_foo():
    assert nk.foo() == 4

У меня Кажется, что кодеки, запущенные Трэвисом, не проходят тест. Более того, на Трэвисе написано Error: No coverage report found ? Интересно, что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 31 октября 2019

1) создайте файл pytest.ini в каталоге вашего проекта и добавьте следующие строки

[pytest]
testpaths = tests
python_files = *.py
python_functions = test_*

2) создайте файл .coveragerc в каталоге проекта и добавьте следующие строки

[report]
fail_under = 90
show_missing = True

3) pytest для покрытия кода

pytest --verbose --color=yes --cov=Name of directory for which you need code coverage --assert=plain

Примечание. Имя каталога, для которого требуется покрытие кода, должно находиться внутри каталога проекта

1 голос
/ 31 октября 2019

Похоже, вам не хватает coverage в ваших установках. У вас есть это в сценариях, но он может не работать. Попробуйте добавить pip install coverage в ваш файл travis.yml. Попробуйте это тоже: кодеков

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...