У нас есть "проблема" большого автоматизированного набора интеграционных тестов. Хотя время сборки разумно (< 1 час), тесты обычно занимают более 6 часов.
Несмотря на то, что это большой блок функциональности, протестированный в наших сценариях сборки, является препятствием для реализации CI, который, как мне показалось, очень полезен для сохранения исходных деревьев в состоянии "всегда создаваемого".
Я рассмотрел темы обсуждения, такие как этот, которые подробно описывают различия.
Это приводит меня к нескольким вопросам:
-
Является ли CI диктовать или рекомендовать автоматизацию тестирования подразделения или интеграции? Я слышал Unit-only только в прошлом, но я не нахожу таких утверждений (или обоснований) для этого в ходе быстрого поиска.
-
Какая хорошая "передовая практика" для комбинированной сборки + автоматизированных тестовых времен/коэффициентов для эффективного CI для команды? Моя кишка говорит мне, что это должно быть < 2 часа в худшем случае и, вероятно, 1 час, чтобы быть действительно эффективным. Теоретически, мы могли бы разбить тесты на параллельную работу и, вероятно, заставить их работать менее чем за 2 часа, но это будет продолжаться 3 часа.
-
Каков наилучший путь вперед от долговременных тестов Nightly Builds + Integration Tests к CI? Я думаю о создании CI с несколькими скелетными модульными тестами только в сочетании с ночными сборками, которые продолжаются с интеграционными тестами.
Любые рекомендации по инструментам также приветствуются (Windows-only С#/С++ codebase)