【发布时间】:2017-06-30 19:54:01
【问题描述】:
这是我第一次使用 Travis 和一般的“测试”。 我创建了一些测试,现在我想将它们添加到 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 说:
- 从制纸机导入 html_builder
- ModuleNotFoundError: 没有名为“sheetmaker”的模块
导入东西的正确方法是什么?这里是 github 项目了解更多详情:github project!
提前致谢。
【问题讨论】:
-
我建议从
test_html_builder.py上面的目录中工作并运行python -m tests.test_html_builder,这将为您提供一个更真实的执行环境,并且可以在本地和 travis-ci 中工作而不会与sys.path。 here's some additional reading about why you should almost always do this -
您的制表机目录中需要一个
__init__.py。 -
@erip 在我的情况下,我的目录中已经有一个 init.py 文件,其中包含我要导入的模块,而 Travis 仍然无法找到它。我会尝试上传一段视频来展示这一点。
-
@erip 看看这个视频s3.amazonaws.com/mababio/travis_python_path.mp4
标签: python python-3.x github travis-ci