2010-12-15 10 views
0

私は、ノーズを使用して呼び出される一連のApp Engineテストを用意しています。ターミナルからそれらを実行すると、すべてのテストが正常に完了し、カバレッジのようなすべてのレポートが生成されます。私はハドソンから同じコマンドを呼び出そうとハドソンでGAEテストを実行できますか?

しかし、私は報道から、次の失敗を取得:

nose.failure.Failure.runTest (from Failure) 

Parent module 'coverage' not loaded 
-------------------- >> begin captured logging << -------------------- 
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/NoseGAE-0.1.7-py2.5.egg', '') 
root: WARNING: Could not read datastore data from /tmp/nosegae.datastore 
root: WARNING: Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named Image 
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/gaetestbed-0.12dev_r30-py2.5.egg', '') 
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/WebTest-1.2.1-py2.5.egg', '') 
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '') 
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/WebOb-0.9.8-py2.5.egg', '') 
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/PyYAML-3.09-py2.5-linux-x86_64.egg', '') 
root: DEBUG: Could not import "strop": Disallowed C-extension or built-in module 
--------------------- >> end captured logging << --------------------- 

をしかし、私はカバレッジへの呼び出しを削除した場合、私のテストはまだ失敗します。

私は、成功裏にハドソンでPythonプロジェクトを実行しました。 GAEのニュアンスが私を踏みにじっていますか?

答えて

1

hudsonを使用して手動で実行するときの環境を比較します。

私は初期化が.profileファイル内で起こると思われます。ハドソンがシェルを生成するときに呼び出されることはありません。したがって、この初期設定を環境の初期設定に入れても、影響を受けるビルド・ステップ内で手動で.profileファイルを呼び出すこともできます。

+0

私は.profileファイルを持っていません。ちょうど.bashrcの変数はちょうどいいです。代わりに.profileを使うべきですか?これは/ etc /に格納されるはずのシステム全体のファイルですか? –

+0

私はHudsonの各ステップで明示的なパスを設定すると、私が持っている問題は解決することが分かりました。たとえば、PYTHONPATH =。:$ HOME/dev/modules/contrib:$ HOME/dev/sdks/google_appengineです。ちょっと面倒ですが、うまくいきます。正しい方向に私を指してくれてありがとう。 –

+0

すべてのビルドステップで環境変数を設定することを避けることができます。主なハドソン構成で環境変数を定義することができます。この環境変数は、すべてのジョブに対して設定されます。これはノードレベルでも行うことができます(私はこのアプローチを使用します)。また、プラグインがあり、これにより、ジョブレベルで変数を設定することができます。すべてのステップでそれを置くよりも少し簡単になります。 :) –

関連する問題