5

当我将这个项目加载到 Jenkins 中时,我首先注意到了这个项目的问题。更令人费解的是,我已经能够如下重现它:

在项目的原始版本中,以下命令按预期运行测试:

.venv/bin/python setup.py nosetests

然后我执行以下操作:

  1. 克隆项目:hg clone my-project my-project-clone
  2. .venv在克隆中创建 virtualenv
  3. 从克隆的 pip freeze 文件安装要求

如果我.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据我所知,环境是相同的。

附录

我在侧边栏中注意到了这个 Stack Overflow 问题,它看起来密切相关,但是那里提供的解决方案都不适用于我的情况。

4

2 回答 2

2

我遇到了同样的问题并设法通过放置来解决它

setup_requires=['nose>=1.0']

进入我的setup.py档案。之后,setup.py nosetests我可以使用 Python 选项。

一些有用的链接:

于 2013-05-23T01:13:10.727 回答
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 无法重建。

于 2013-02-28T15:51:57.367 回答