我创建了一个基于cookie-cutter模板的全新Python仓库,其存储在Github上。现在我正在尝试使用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
文件中:[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
我发现codecov在travis中似乎没有通过测试。此外,在travis上,它显示出Error: No coverage report found
。我想知道我做错了什么?
pytest
无法正确定位您的测试文件;默认情况下,它需要具有形式test_*.py
或*_test.py
,如果我没有弄错的话。 - Anne