Всем привет.
Продукт, который собираемся покрывать тестами, как водится представлен бэкендом и фронтендом. Каждый в своём репозитории. В будущем бэкенд планируется дробить дальше по микросервисам.
На проекте пытаемся придерживаться BDD подхода и писать сценарии на разрабатываемые фичи. Правильный BDD рекомендует абстрагироваться от конкретной реализации сценариев и декларировать их в общем виде, который а) понятен бизнесу, б) не будет подвержен постоянному изменению по следам интерфейса, через который пользователь будет этим добром пользоваться (Desktop\Web\API\Mobile\etc.)
Возникла такая проблема\задача: как наиболее удобным образом шарить Gherkin(Cucumber) сценарии между разными репозиториями? То есть фичи\сценарии пишутся в одном месте, а их реализация уже идёт в каждом сервисе отдельно. Условно в UI мы проверяем через тыкание кнопок, в API дёргаем методы. Но в обоих вариантах реализуем один и тот же пользовательский сценарий Given-When-Then
На поверхности всплывают две фичи самого GIT, которые я лично раньше активно не трогал:
- Submodules
- Subtrees
Документация, коротенько в блоге
Сегодня поигрался с Submodules. Идея ясна, решает поставленную задачу, но чёт это оказалось совсем не просто и прямолинейно Что я сделал - в сервис с кодом проекта подключал репозиторий со сценариями как Submodule. Код\текст сценариев из подмодуля видно отлично. Но вот с коммитами\бранчами\реквестами начинаются вопросы по удобству.
Основная проблема\претензия, которую пока сейчас готов сформулировать с Submodules - из прошлого опыта могу сказать, что в рамках работы над реализацией шагов сценария там (в сценарии) часто находятся неточности. То опечатка, то состав каких-нть данных уже изменился со времени написания, то ещё что всплывёт. Так вот получается, что когда создаёшь PR по тестам, то изменения в самих сценариях не видны. Они скрыты от ревью и вообще идут немного отдельным процессом, что несколько непривычно как минимум.
Следующим слоем - я начал переживать а какая каша там заварится когда над фича файлом начнут работать в параллель команды фронтенд\бэкенд и что там будет с конфликтами… Как жить с конфликтами в рамках одного репозитория дело привычное - а как быть с ними если проект подключен как подмодуль пока сложно представить.
В планах поиграться с Subtrees с такими же сценариями использования, но пока решил спросить опыт коммьюнити.
У кого-нть была похожая проблема?
Глянул похожие темы на форуме, но ответа для себя не нашёл.