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

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

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

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

Буду благодарен за ответы!
  • Вопрос задан
  • 5835 просмотров
Решения вопроса 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. В данный момент нет возможности рестартовать отдельный тест. Есть реквест на добавление такой функциональности.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы