Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как настроить авто обновления тестов на Jenkins?

jenkins
Теги: #<Tag:0x00007f7b70a96710>

(Денис Корейба) #1

Цель: настроить автообновление тестового набора, который будет выполняется в Jenkins после билда проекта. То есть, чтобы новые добавленные тесты были автоматически добавлены к тестовому набору для запуска.

Проблема: на данный момент, после сборки проекта, тесты запускаются с .nunit файла с помощью NUnit консоли. Т.е. набор тестов для запуска записан в файл.

Вопрос: как сделать так чтобы мой файл с набором тестов (.nunit) обновлялся самостоятельно после обновления набора тестов (пуша кода в репозиторий).


(Ray Romanov) #2

Тоже задался таким вопросом, решение сделал такое:
Создал скрипт который:

  1. Из SVN берет номер последней ревизии тестов.
  2. Если версии отличаются то выкатывает новые тесты
  3. Сохраняет в файл номер последней выкаченной ревизии
    И все, вызывается он через выполнение shell скрипта в Job перед запуском тестов.
    ЗЫ: есть дополнительная опция к скрипту -force которая не смотрит версию и выкатывает хед тестов принудительно.

По поводу вопроса, можно отдельной джобой, но как это будет выглядеть если в этот момент идет тестирование проекта, а поступили в SVN новые тесты?


(Денис Корейба) #3

Оказалось что .nunit файл привязан к тому файлу с которого его генерировали (у меня это .exe файл). В результате когда источник обновляется, также обновляется и .nunit файл.
Делаю сейчас это все на локальном компьютере, поэтому думаю что для сервера шаги будут следующие:

  1. Настроить билд в Jenkins таким образом чтобы после добавления нового коммита была выполнена сборка проекта (если не ошибаюсь, плагин MS Build). Это позволит создать новую версию файла ресурсов для тестов.
  2. Настроить второй билд, который относится к интересующему нас проекту так, чтобы в .nunit файле ресурсом был тот файл, который собрался после выполнения первого билда.

В результате должны получить постоянно обновляемый набор тестов.