这是我第一次使用Travis和#34; test"一般来说。 我创建了一些测试,现在我想将它们添加到Travis,但我遇到了PATH问题。
这就是我所拥有的:
sheetmaker/
html_builder.py
constants.py
sheetmaker.py
tests/
test_html_builder.py
data/
test_html_constants.py
我设法运行test_html_builder.py
并且测试正在我的电脑上运行。简而言之,这就是我在 test_html_builder.py
sys.path.insert(0, os.path.abspath('..'))
from sheetmaker import html_builder
from data import test_html_constants
这在当地有效但Travis CI说:
导入东西的正确方法是什么?这是github项目的更多细节:github project!
提前致谢。
答案 0 :(得分:2)
经过大量的研究,我开始打印print(sys.path)
以找出我工作的地点"。从那里我创建了一个异常处理程序
try:
sys.path.insert(0, os.path.abspath('..')) #Works for local
from sheetmaker import html_builder
from data import test_html_constants
except:
sys.path.insert(0, os.path.abspath('.')) #Works for Travis CI
from sheetmaker import html_builder
from data import test_html_constants
这是导入模块的正确方法吗?不知道,但它确实有效。
答案 1 :(得分:1)
@ cosme12我没有尝试你的解决方案,但我能够通过在.travis.yml中明确声明PYTHONPATH来修复路径问题
示例.travis.yml:
sudo: false
language: python
python:
- "3.6"
install:
- export PYTHONPATH=$PYTHONPATH:$(pwd)/src/thermo
- python3 setup.py install
script:
- pytest -s
只需手动将缺少的路径添加到.travis.yml,travis应该可以正常工作。
我喜欢这个解决方案,因为您不需要更改代码,只需要修改travis配置文件。