Первая часть решения этой проблемы - запускать только те тесты, которые необходимы для запуска. Между фиксациями в общей ветке запускаются только те тесты, с которыми взаимодействует новая работа; это должно занять все пять секунд. Если кто-то принимает эту модель, становится жизненно важным выполнить весь набор тестов, прежде чем фиксировать общий ресурс.
Проблема запуска полного набора тестов для целей регрессии, разумеется, остается, хотя она уже частично решена путем простого запуска полного набора реже. Чтобы избежать необходимости ждать, пока выполняется это задание, можно перенести задачу тестирования на другую машину. Это быстро превращается в задачу для системы непрерывной интеграции; buildbot кажется вполне подходящим для вашего варианта использования.
Вы также должны иметь возможность распределять тесты по хостам, используя buildbot, запуская два задания с разными точками входа в набор тестов. Но я не уверен, что это принесет вам большую пользу за первые два шага, которые я здесь упомянул; он должен быть зарезервирован для случаев, когда выполнение тестов занимает гораздо больше времени, чем интервал между фиксациями для общих ресурсов.
D'A
[Предостерегающий лектор: На данный момент мое понимание buildbot в значительной степени теоретическое, и, вероятно, оно сложнее, чем кажется.]