我正在使用Hudson在我们的项目中进行持续集成。我们使用python,git和nose测试进行单元测试。我需要的是Hudson应该在每次构建后执行鼻子测试。为此,我在执行shell部分中添加了以下shell脚本。
$ nosetests /sub/test_sample1.py
$ nosetests /sub/test_sample2.py
$ nosetests /sub/test_sample3.py
...
Hudson正确执行这些脚本。但问题是,如果任何测试脚本在这里失败,它将不会运行其旁边的其他脚本。它在第一次错误后停止。我希望它能继续执行所有测试用例。我怎么能这样做?
答案 0 :(得分:1)
我会利用鼻子的能力找到测试并运行它们。
将测试文件重命名为sub / sample1_test.py,sub / sample2_test.py等,然后运行
nosetests sub/
Nose将查找以_test结尾的文件并运行它们。非常便利。请参阅“finding tests”的鼻子文档。
如果不清楚,鼻子会在找到所有测试后运行所有。这样可以防止在所有测试运行之前失败,但如果任何测试都没有通过,则会失败。
答案 1 :(得分:0)
对于我自己的项目,我写了一个fabric python文件来管理所有的单元测试。由于我正在使用django,我的django融入了鼻子和覆盖范围。
以下是我的脚本部分:
local('%(local_virtual_env)s/Scripts/activate.bat'
' & cd %(local_project_path)s/configs/common'
' & python manage.py test test1 '
'--settings=myprofile.configs.local.settings_local '
'--with-coverage --with-xunit --with-xcoverage '
'--cover-tests --cover-erase --cover-inclusive '
'--cover-package=myprofile.apps' % env,
capture=False)