Чаще всего применяемый мною подход заключается в немедленном запуске модульных тестов при регистрации и более длительных интеграционных тестах с фиксированными интервалами (возможно, на другом сервере; это действительно зависит от ваших предпочтений). Я также видел интеграционные тесты, разбитые на «кратковременные» интеграционные тесты и «длительные» интеграционные тесты, которые выполняются с разными интервалами (например, «краткосрочные» тесты запускаются каждый час, а «длинные»). "бегущие" тесты выполняются в одночасье).
Настоящей целью любого автоматизированного тестирования является получение обратной связи с разработчиками настолько быстро, насколько это возможно. Имея это в виду, вы должны запускать интеграционные тесты настолько часто, насколько это возможно. Если длина ваших интеграционных тестов сильно различается, вам следует чаще запускать более быстрые интеграционные тесты и реже медленные интеграционные тесты. Частота выполнения любого набора тестов зависит от того, сколько времени потребуется на выполнение всех тестов, и насколько разрушительными будут тесты для более коротких тестов (включая юнит-тесты).
Я понимаю, что это не отвечает на весь ваш вопрос, но я надеюсь, что это даст вам некоторые идеи по поводу планирования.