当我将它加载到Jenkins时,我首先注意到这个项目的问题。更令人费解的是,我已经能够重现如下:
在项目的原始版本中,以下命令按预期运行测试:
.venv/bin/python setup.py nosetests
然后我执行以下操作:
.venv
如果我在此版本上运行.venv/bin/python setup.py nosetests
,我会得到以下结果:
setup.py: error: Invalid command nosetests
setup.py
包含以下设置:
setup_requires=[
'nose>=1.0', 'nosexcover', 'coverage', 'selenium', 'fixture'
],
test_suite='nose.collector',
我特别感到困惑,因为每个版本中的setup.py
和setup.cfg
文件都是相同的,并且据我所知,环境是相同的。
我注意到侧边栏中的this Stack Overflow question看起来很紧密,但是我提供的解决方案都没有。
答案 0 :(得分:2)
我遇到了同样的问题并设法通过添加
来修复它setup_requires=['nose>=1.0']
进入我的setup.py
文件。之后,我可以使用Python setup.py nosetests
选项。
一些有用的链接:
答案 1 :(得分:1)
我从来没有完全弄清楚潜在的问题。但我确实找到了一个允许我让我的构建运行的解决方法。这是我在Jenkins的Virtualenv Builder中使用的命令:
# require nosetests be installed
# (old method using setup.py nosetests command does not work)
$VIRTUAL_ENV/bin/pip install nose
# install remain pip requirements
$VIRTUAL_ENV/bin/pip install -r requirements.pip
# must run this prior to running tests to install other nosetest dependencies
$VIRTUAL_ENV/bin/python setup.py install
# now we can run nosetests
# this does not work: $VIRTUAL_ENV/bin/python setup.py nosetests
$VIRTUAL_ENV/bin/nosetests -c setup.cfg
我怀疑根本问题与我的新virtualenv中的虚拟环境状态和Distutils与Nose之间的某种版本不兼容有关。旧的似乎随着时间的推移已经达到某种不稳定的配置,单独的克隆和pip无法再创造。