Автоматизированные тесты ДОЛЖНЫ быть быстрыми, чтобы отражать состояние проекта в реальном времени. Идея в том, что:
- после выполнения автоматической фиксации в репозитории (настолько быстро, насколько это возможно).
- если сборка прошла успешно, запускаются автоматические тесты. ДОЛЖЕН быть быстрым.
Это лучший способ узнать, не нарушают ли ваши изменения что-либо.
Сначала казалось, что быстрое построение сложно, но нам удалось сохранить его примерно на 100 секунд. для решения 105 (!) проектов (MSVS 2008 C #).
Тесты оказались не такими простыми (мы используем NUnit FW). Модульное тестирование не является большой проблемой. Это интеграционные тесты, которые убивают нас. И не факт, что они медленнее (любые идеи о том, как сделать их быстрее, высоко ценится), а не факт, что должна быть настроена среда, которая НАМНОГО медленнее (атм ~ 1000 сек)!
В наших интеграционных тестах используются службы web / win (на данный момент 19), которые необходимо перераспределить для отражения последних изменений. Это включает в себя перезапуск служб и большое количество операций с жесткими дисками.
Может ли кто-нибудь поделиться опытом о том, как / можно организовать / оптимизировать среду и рабочий процесс для ускорения фазы автоматизированного тестирования. Каковы узкие места и обходные пути «низкого уровня».
P.S. книги и широкие статьи приветствуются, но реальные рабочие решения гораздо ценнее.