2010-12-15 47 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

相关问题