Приветствую хабражителей!
Хочу поделиться своими достижениями в налаживании контроля покрытия кода при модульном тестировании приложений под Windows Phone. Примечательно, что при решении этой задачки пришлось столкнуться с некоторыми аспектами «правильного» проектирования приложений. Поэтому этот пост можно рассматривать как небольшое учебное пособие.
Постановка задачи
Дано:
Начинается разработка небольшого приложения под Windows Phone. Приложение типовое — забирает какие-то данные со своего сервера и в каком-то виде их показывает пользователю. Требуется:
Спроектировать архитектуру приложения так, чтобы при непрерывной интеграции максимум кода приложения, отвечающего за логику работы, был закрыт тестами с возможностью контролировать это покрытие.
Хочу поделиться опытом в настройке системы непрерывной интеграции для проекта Windows Phone 7 в Team City. Надеюсь, сэкономлю тем, кто пойдёт той же тропой, потраченные мной самим время и нервы.
Дано:
Довольно-таки массивное приложение Windows Phone 7 c unit-тестами, реализованными средствами Silverlight Toolkit.
Настроенная сборка приложения в TeamCity без запуска unit-тестов. Агент для сборки — «физическая» (в смысле, не виртуальная) машина.
Необходимо:
Настроить ещё одного build-агента TeamCity на виртуальной машине под VMWare.
Запускать unit-тесты при сборках и сбора результатов их выполнения в статистику TeamCity.