dwa*_*son 11 python nose travis-ci
我正在尝试将TravisCI集成到我的工作流程中,并且意识到我有一些依赖项,因为我的旧目录结构(没有自包含的,virtualenv可用的git repos).
当我尝试在nosetests本地运行时,它运行测试就好了; 当TravisCI尝试运行它们时,它会失败并出现import错误.具体来说,我有,作为我的测试脚本中的一行:
from myproject import something
Run Code Online (Sandbox Code Playgroud)
我的目录结构在我的git repo里面myproject是这样的:
.travis.yml
requirements.txt
something.py
tests/
test_something.py
Run Code Online (Sandbox Code Playgroud)
nose到其中的virtualenv,requirements.txt测试总是在本地传递.我觉得我仍然没有理解绝对与相对的进口,我不知道这是否会在这里发挥作用,或者我只是在我的项目中做一些明显和愚蠢的事情.
期望的结果:找出TravisCI失败的原因,并相应地修复我的回购,这样我就可以在本地和TravisCI上提交并正确构建.如果这需要更大幅度的改变,比如"你应该setup.py对环境有所作为"或类似的话 - 请告诉我.我是Python的新方面的新手,并且发现当前的文档非常不清楚.
作为一个仅供参考,我发现这个问题并且添加--exe没有帮助,或者似乎是同一个问题.
我看到没有答案,我遇到了同样的问题,所以我发帖在这里希望能帮到某人:
速战速决对我来说是添加此行导出PYTHONPATH=$PYTHONPATH:$(pwd)的.travis.yml:
before_install:
- "pip install -U pip"
- "export PYTHONPATH=$PYTHONPATH:$(pwd)"
Run Code Online (Sandbox Code Playgroud)
有一个setup.py应该是默认选项,因为它是最优雅的,配置如下:
from setuptools import setup, find_packages
setup(name='MyPythonProject',
version='0.0.1',
description='What it does',
author='',
author_email='',
url='',
packages=find_packages(),
)
Run Code Online (Sandbox Code Playgroud)
然后添加此行 .travis.yml
before_install:
- "pip install -U pip"
- "python setup.py install"
Run Code Online (Sandbox Code Playgroud)
更改项目的布局以使应用程序下的测试文件夹(具有核心python代码的文件夹)如下:
.travis.yml
requirements.txt
app
|_ tests
| |_ test_application.py
|_ application.py
Run Code Online (Sandbox Code Playgroud)
并在travis中运行测试,覆盖率和鼻子测试如下:
script:
- "nosetests --with-coverage --cover-package app"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1363 次 |
| 最近记录: |