Моя команда использует внутреннюю среду тестирования e2e для проверки того, что все, от http-запроса до http-ответа, работает должным образом.
Принцип работы этих тестов очень сложный и нестабильный из-за характера распределенного архитектура в нескольких географических регионах в AWS.
Большая проблема, с которой мы сталкиваемся, заключается в том, что когда мы объединяем функциональный PR в одну из наших многочисленных микроуслуг / лямбд, которые влияют на реакцию / поведение конечной точки, наш e2e тесты не пройдены.
Как мы справляемся с этим, принимая, что задание e2e Jenkins будет временно красным, пока кто-то не объединит e2e PR с обновлением / добавлением теста / с.
Из-за Принятие задания e2e красным цветом «временно» приводит к другим изменениям, которые могут содержать или не содержать проскальзывания ошибок.
Другая проблема заключается в том, что мы не разрешаем объединять PR при сборке не удается (и это здорово), но если тесты e2e не пройдены из-за изменения в другом сервисе, человек, исправляющий тесты e2e для функции, над которой они работают, нужно будет исправить другие сбои в том же PR.
Итак, мой вопрос: что может сделать моя команда, чтобы решить эту проблему?
Я хочу, чтобы мы сохраните тесты e2e, поскольку они очень полезны, но ими можно пренебречь по указанным выше причинам.
Можем ли мы каким-то образом t ie сделать репозиторий e2e для каждой ветви функций, чтобы, когда кто-то отправляет код для ветви, ветвь функций с тем же именем в нашей сервисной службе e2e запускается против нее и блокирует PR до тех пор, пока они не обновят тесты e2e?
- Для этого нужно как-то связать тестовое репо e2e так что изменения кода появляются в функции PR для соответствующего сервиса / лямбды. Не уверен, если это возможно.
Буду очень признателен за любые советы / примеры о том, как проводить e2e-тестирование с использованием рабочего процесса github для распределенной архитектуры микроуслуг / лямбда в AWS.
Кроме того, мне было бы трудно поверить, что моя команда единственная с этой проблемой. Так что, возможно, это поможет другим.