У нас есть три набора тестовых наборов:
- "Небольшой" номер люкс, на запуск которого уходит всего пара часов
- «Средний» номер, который занимает несколько часов, обычно запускается каждую ночь (ночью)
- «Большой» набор, который занимает неделю + для запуска
У нас также есть несколько более коротких тестовых наборов, но я не буду на них останавливаться.
Текущая методология - запускать небольшой набор перед каждым коммитом в транк. Затем средний пакет запускается каждую ночь, и если утром выяснилось, что он вышел из строя, мы пытаемся определить, кто из вчерашних коммитов был виноват, откатить этот коммит и повторить тесты. Подобный процесс, только еженедельно вместо ночной частоты, сделан для большого набора.
К сожалению, средний набор действительно терпит неудачу довольно часто. Это означает, что ствол часто нестабилен, что очень раздражает, когда вы хотите внести изменения и протестировать их. Это раздражает, потому что, когда я выписываюсь из багажника, я не могу точно знать, что он стабилен, и если тест не пройден, я не могу знать наверняка, это моя ошибка или нет.
Мой вопрос заключается в том, существует ли какая-то известная методология для обработки подобных ситуаций таким образом, чтобы ствол оставался всегда в отличной форме? например, «зафиксировать в специальной ветке precommit, которая будет периодически обновлять транк каждый раз, когда проходит ночь».
И имеет ли значение, если это централизованная система контроля версий, такая как SVN, или распределенная, как git?
Кстати, я начинающий разработчик с ограниченной способностью что-то менять, я просто пытаюсь понять, есть ли способ справиться с этой болью, которую я испытываю.