Как запустить python тесты в TeamCity?

Сейчас у нас используется своя система автотестирования, которая выкачивает проект, собирает его и запускает тесты на Python. Недавно познакомился с TeamCity и понял, что это система гораздо лучше нашей системы автотестов и планирую перейти на нее.

Разобрался с выкачиванием и сборкой проекта. Осталось перенести тесты в TeamCity. Что я хочу узнать:
1) Как настроить TeamCity, чтобы он запускал тесты после сборки. У тестов отдельная ветка, где они хранятся. Необходимо автоматически добавлять новые тесты из репозитория в TeamCity.
2) Необходима зависимость тестов друг от друга. Например если тест, который проверяет функциональность какого-нибудь основного модуля провалится, то другие тесты, которые используют этот модуль в тестах не должны быть запущены
3) Должна быть возможность речека(перезапуска) теста

Ну и вопрос, который не совсем соответствует названию темы. Постараюсь описать подробнее. Можно ли в TeamCity создать отдельную ветку для тестирования? Т.е разработчик меняет функционал в проекте, его на данный момент не интересуют все тесты, а только тесты, проверяющие именно тот функционал, который он меняет. Другие тесты его не интересуют. Может ли он себе создать какой-нибудь отдельный "бранч", добавить туда необходимые тесты, посмотреть результаты после коммита, а потом его удалить? Хочется реализовать этот функционал в TeamCity, т.к тестов много, а ждать, пока пройдет именно нужный тест, не хочется.

Буду благодарен за ответы!
  • Вопрос задан
  • 5650 просмотров
Решения вопроса 1
@alinam
Добрый день!

Допустим, у вас есть билд-конфигурация А, которая выполняет сборку проекта и публикует результаты сборки - артефакты.

1. a. Необходимо создать билд-конфигурацию B для тестов. К этой билд-конфигурации прикрепить VCS root и настроить так, чтобы он “слушал” необходимую ветку (как это настроить, зависит от используемого VCS, для Git см. Feature Branches).

b. Настраиваем зависимость B от A. Есть два вида зависимостей: Artifact и Snapshot Dependecny.
Artifact - обеспечивает передачу артефактов от блид-конфигурации А к B, Snapshot Dependency - обеспечивает использование той же ревизии исходников (если репозитории разные, то берется ревизия в соответствующий момент времени). Подробное описание можно найти здесь.

Рекомендуется настроить Artifact (с опцией Build from the same chain)+Snapshot dependency.

c. Настраиваем VCS trigger. Он стратует билд, когда TeamCity обнаруживает изменения в VCS root. Этот триггер необходимо настроить для конфигурации В, с опцией Trigger a build on changes in snapshot dependencies. При этом, если закоммитить код в А, то триггер сработает и добавит в очередь сначала билд А, а потом билд В.

d. Для передачи результатов тестов в TeamCity используйте плагин.

2. Порядок и логику вызова тестов необходимо реализовать в билд скрипте, а не с помощью TeamCity.

3. В данный момент нет возможности рестартовать отдельный тест. Есть реквест на добавление такой функциональности.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы