Итак, у меня есть приложение, которое я унаследовал, и я хочу создать вокруг него автоматизированный набор тестов. Приложение не было разработано с возможностью проверки, а код - "большой шар грязи". Мой план состоял в том, чтобы использовать платформу тестирования автоматизации пользовательского интерфейса и создать набор тестов на уровне пользовательского интерфейса, пока у меня не будет достаточного охвата, чтобы позволить мне начать рефакторинг с уверенностью и ввести некоторые швы в код, чтобы улучшить тестируемость и дизайн.
Это приложение .Net WinForms, и две структуры, о которых я знаю, следующие:
и
Из того, что я прочитал, оба фреймворка создают проблемы при попытке выполнить как часть автоматической сборки (Continuous Integration) из-за того, что большинство продуктов CI работают как служба Windows, и если пользовательский интерфейс использует модальные диалоги, приложение будет смерть ужасная. Я использую CruiseControl.Net в качестве инструмента CI.
Есть ли у кого-нибудь предложения по решению этой проблемы? Альтернативная схема использования может улучшить ситуацию?
Спасибо,
Дилан