2010-12-15 83 views
0

我有一套App Engine測試,使用鼻子調用。當我從終端運行它們時,每個測試都會成功完成,並生成所有報告,如覆蓋範圍是否可以在Hudson中運行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項目Hudson。 GAE的細微差別讓我感到沮喪嗎?

回答

1

比較手動運行時和使用哈德森運行時的環境。

我懷疑初始化發生在.profile文件中。當哈德森產生一個殼時,這不會被調用。因此,要麼將此初始化放入環境初始化中,要麼在受影響的構建步驟中手動調用.profile文件。

+0

我沒有一個.profile文件,只是.bashrc,它的變量被拾取得很好。我應該使用.profile來代替嗎?這是一個應該存儲在/ etc /中的全系統文件嗎? – 2010-12-22 02:34:25

+0

我發現在每個哈德森步驟中設置顯式路徑可以解決我遇到的任何問題。例如,PYTHONPATH =。:$ HOME/dev/modules/contrib:$ HOME/dev/sdks/google_appengine。這有點麻煩,但它有效。感謝您指點我正確的方向。 – 2011-01-20 03:51:58

+0

您可以避免爲每個構建步驟設置環境變量。您可以在主Hudson配置中定義環境變量。隨後將爲每個作業設置此環境變量。這也可以在節點級別上完成(我使用這種方法)。還有一個插件,可讓您在作業級別上設置變量。使它比每一步都更容易一點。 :) – 2011-01-20 05:39:03

相關問題