2009-11-12 5 views
1

Я использую Hudson для непрерывной интеграции в наш проект. Мы используем тесты python, git и носа для модульного тестирования. Мне нужно, чтобы Хадсон выполнял носовые тесты после каждой сборки. Для этого я добавил следующие сценарии оболочки в разделе оболочки выполнения.Настроить сценарии «выполнить оболочку» в Hudson с Python

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

...

Хадсон правильно выполняет эти сценарии. Но проблема в том, что если какой-либо из тестовых сценариев не работает здесь, он не будет запускать другие скрипты рядом с ним. Он останавливается после первой ошибки. Я хочу, чтобы он продолжал выполнять все тестовые примеры. Как я могу это сделать?

+0

Вы имеете в виду «Настроить» выполнение shell-скриптов в 'Hudson' с Python ' – bguiz

+0

Привет, ramesh, где вы находитесь в Индии. Свяжитесь с нами @ http://anirudhagupta.blogspot.com – 2009-11-12 12:07:56

+0

Вы можете написать один сценарий главной оболочки, который игнорирует сбои и продолжения. Он может просто создать журнал, из которого вы можете подобрать то, что пошло не так. –

ответ

0

Для моего собственного проекта я написал файлы 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) 
1

Я бы воспользоваться возможностью носа, чтобы найти тесты и запускать их вместо этого.

переименованиее тестовые файлы на что-то, как к югу/sample1_test.py, суб/sample2_test.py и т.д., а затем просто запустить

nosetests sub/ 

Нос будет искать файлы, заканчивающиеся в _test и запустить их. Очень удобно. См. Документацию по носу на «finding tests».

В случае, если это было не ясно, нос, как только он найдет все тесты, запустит все из них. Это препятствует вам сбой до того, как все тесты будут запущены, но вы потерпите неудачу, если какой-либо из них не пройдет.