我有一套使用 nose 调用的App Engine测试。当我从终端运行它们时,每个测试都会成功完成,并生成所有报告,例如 coverage 。
但是,如果我尝试从Hudson调用相同的命令,我会从覆盖范围中获得以下失败:
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 << ---------------------
但是,如果我删除对 coverage 的调用,我的测试仍会失败。
我用 Hudson 成功运行了Python项目。 GAE的细微差别让我沮丧吗?
答案 0 :(得分:1)
将手动运行时的环境与使用hudson运行时的环境进行比较。
我怀疑初始化发生在.profile文件中。当Hudson产生一个shell时,就不会调用它。因此,要么将此初始化置于环境初始化中,要么在受影响的构建步骤中手动调用.profile文件。