Как правило, вы хотите, чтобы ваши тесты запускались как можно скорее, чтобы разработчики имели максимально быструю обратную связь - иначе они не узнают, что они что-то сломали, намного позже, когда они уже могли перейти к другой кусок кода. Если ваши функциональные тесты пожирают все ваши системные ресурсы в течение пары часов, то я бы рекомендовал выполнять их только в рамках ночных тестов, но в противном случае я бы рекомендовал запускать как функциональные, так и модульные тесты. с каждой сборкой. Оба набора тестов дают ценную обратную связь, и вы действительно не будете знать, стабильна ли ваша система, пока не запустите их оба.
Это не значит, что вам нужно опросить оба проекта. Что мы сделали, так это разбили его на несколько разных заданий Хадсон / Дженкинс:
- Одна работа опрашивает SCM, компилирует и развертывает проект (довольно быстро, ~ несколько минут)
- Когда это задание заканчивается, оно автоматически запускает второе задание, которое запускает большинство функциональных тестов (5-20 минут, в зависимости от проекта)
- Третье задание выполняется каждую ночь, и проводится еще более обширное тестирование с тестами, которые требуют много времени для запуска или связывания большого количества ресурсов (занимает ~ несколько часов)
Это означает, что он может начать сборку второй сборки до того, как будут завершены все тесты для первой, но большая часть тестов все еще выполняется для каждой сборки.