1

我在我们的项目中使用Hudson进行持续集成。我们使用python、git 和nose 测试进行单元测试。我需要的是 Hudson 应该在每次构建后执行鼻子测试。为此,我在执行 shell 部分添加了以下 shell 脚本。

$ nosetests /sub/test_sample1.py
$ nosetests /sub/test_sample2.py
$ nosetests /sub/test_sample3.py

...

Hudson 正在正确执行这些脚本。但问题是,如果任何测试脚本在这里失败,它就不会在它旁边运行其他脚本。它在第一个错误后停止。我希望它应该继续执行所有测试用例。我怎样才能做到这一点?

4

2 回答 2

1

我会利用鼻子找到测试并运行它们的能力。

将您的测试文件重命名为 sub/sample1_test.py、sub/sample2_test.py 等,然后运行

nosetests sub/

Nose 将查找以 _test 结尾的文件并运行它们。非常便利。请参阅有关“查找测试”的鼻子文档。

如果不清楚,nose 将在找到所有测试后运行所有测试。这可以防止您在所有测试运行之前失败,但如果其中任何一个未通过,您将失败。

于 2013-04-17T20:33:57.720 回答
0

For my own project, I wrote a fabric python files that manage all the unit testing. Since I am using django, I have django incorporate with nose and coverage.

Here are my part of my scripts:

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)
于 2010-08-25T15:07:36.040 回答