我的.travis.yml文件中有以下script
部分:
script:
# run all tests in mymodule/tests and check coverage of the mymodule dir
# don't report on coverage of files in the mymodule/tests dir itself
- coverage run -m --source mymodule --omit mymodule/tests/* py.test mymodule/tests -v
这在我自己的(Windows)计算机上工作正常,但在Travis构建上的Linux和OSX上都会抛出错误。错误是:
不支持按文件名导入。
如果标志的顺序不同,我会看到一个不同的错误(仅在Linux版本上 - OSX测试通过了这个标志的顺序):
-coverage run --source eppy --omit eppy/tests/* -m py.test eppy/tests -v
无法找到&_ 39; __ main __'模块in mymodule / tests / geometry_tests'
我在这里做错了什么?
答案 0 :(得分:0)
通过将coverage
直接更改为使用pytest-cov
来解决。
script:
# run all tests in mymodule/tests and check coverage of the mymodule dir
- py.test -v --cov-config .coveragerc --cov=mymodule mymodule/tests
.coveragerc
文件:
# .coveragerc to control coverage.py
[run]
# don't report on coverage of files in the tests dir itself
omit =
mymodule/tests/*
我不知道为什么这种方法适用于以前的方法,但这至少解决了这个问题。