Существует ли стандартный способ тестирования скриптов / исполняемых файлов в Jenkins? - PullRequest
3 голосов
/ 06 марта 2012

У нас есть проект, который содержит библиотеку пакетов Python и Scala, а также исполняемые скрипты Bourne, Python и Perl.Хотя библиотека имеет хорошее покрытие тестами, у нас нет никаких тестов для сценариев.

В текущей среде тестирования используются Jenkins, Python, virtualenv, nose, Scala и sbt.

IsЕсть ли стандартный / распространенный способ включить тестирование сценариев в Jenkins?


Редактировать: Я надеюсь на что-то простое, например юнит-тест Python для сценариев оболочки, например:

assertEquals expected.txt commandline
assertError commandline --bogus
assertStatus 11 commandline baddata.in

Ответы [ 3 ]

4 голосов
/ 08 апреля 2012

Вы смотрели на shunit2: http://code.google.com/p/shunit2/

Это позволяет вам писать тестируемые сценарии оболочки в сценариях Bourne, bash или ksh.

Не уверен, как вы можете интегрировать его в то, что выописываю, но выдает результат, аналогичный другим комплектам модульных тестов.

1 голос
/ 06 марта 2012

Я не знаю, насколько это «стандарт», но если вы действительно практикуете TDD, ваши сценарии также должны разрабатываться с TDD.То, как вы соединяете свои тесты TDD с Jenkins, зависит от используемой вами структуры TDD: например, вы можете создавать отчеты JUnit, которые Jenkins может читать, или ваши тесты могут просто возвращать статус ошибки и т. Д.

0 голосов
/ 07 марта 2012

Если ваш сценарий требует другого проекта, то я склонен сделать новый проект jenkins, скажем 'system-qa'.

Это будет нижестоящий проект проекта python, и он будет зависеть от проекта python и внутреннего проекта.

Если вы использовали технологию разрешения / публикации зависимостей, скажите apache ivy http://ant.apache.org/ivy/, и если эти существующие проекты опубликуют упакованную версию своего кода (например, просто .tar.gz), тогда проект system-qa может объявить зависимости (опять же, используяivy) для пакета python и пакета собственного проекта загрузите его с помощью ivy, извлеките / установите его, запустите тесты и выйдите.

Итак, в итоге, скрипт сборки проекта system-qa отвечает за извлечение зависимостей, запуск тестов на этих зависимостях и затем, возможно, публикацию стандартного формата выходных тестов, например junit xml (но с минимальным возвращением 0 или не-0, чтобы дать понять Дженкинсу, как пошло построение).

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

...