我已经基于切饼器模板创建了全新的Python repository。一切看起来都还不错,所以我现在尝试使用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
我有似乎travis触发的codecov没有通过测试。此外,在travis上,它说Error: No coverage report found
?我想知道我做错了什么吗?
答案 0 :(得分:2)
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 :(得分:1)
好像您在安装中缺少coverage
。您已经在脚本上安装了它,但是它可能没有运行。尝试在您的travis.yml文件中添加pip install coverage
。也可以尝试一下:codecov