5

このプロジェクトの問題に最初に気付いたのは、Jenkins にロードしたときでした。さらに不可解なことに、次のように再現できました。

プロジェクトの元のバージョンでは、次のコマンドは期待どおりにテストを実行します。

.venv/bin/python setup.py nosetests

次に、次のことを行います。

  1. プロジェクトのクローン: hg clone my-project my-project-clone
  2. .venvクローンにvirtualenvを作成する
  3. 複製された pip のフリーズ ファイルから要件をインストールする

その後.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、私が認識できる限り、環境は同じであるため、特に困惑しています。

補遺

サイドバーにこのスタック オーバーフローの質問が表示されていることに気付きました。これは密接に関連しているように見えますが、私の場合、そこで提供されている解決策はどれも機能していません。

4

2 に答える 2

2

私は同じ問題に遭遇し、置くことでそれを修正することができました

setup_requires=['nose>=1.0']

私のsetup.pyファイルに。その後、Pythonsetup.py nosetestsオプションが利用可能になりました。

役に立ったいくつかのリンク:

于 2013-05-23T01:13:10.727 に答える
1

私は根本的な問題を正確に理解したことはありません。しかし、ビルドを実行できるようにする回避策を見つけました。これは、JenkinsのVirtualenvBuilderで使用したコマンドです。

# 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 に答える