Каково в настоящее время лучшее решение автоматизировать рабочие модульные тесты против приложений Silverlight в рамках CruiseControl.NET?
Предпочтительно я хотел бы выполнить модульные тесты MSTest однако, поскольку они еще официально не поддерживаются для Silverlight, я открыт для предложений, которые используют другие среды тестирования.
Ноябрьская версия Toolkit Silverlight содержит не только структуру тестирования блок Silverlight, но и задача MSBuild, чтобы позволить структуре запускать из командной строки. См. POST POST для деталей , но вы по сути в конечном итоге делаете это:
msbuild /t:test /p:browser=firefox
как cc.net может запускать msbuild, вы должны быть в состоянии, по крайней мере, вызовуте тесты. Выход в формате TRX.
Я использовал эту структуру с некоторым успехом, хотя и не интегрирован в CC.Net, он отлично работает, но тесты, проходящие в браузере, так что немного медленно. Преимущество работы в браузере вы можете сделать более приемлемые тесты, под управлением элементов управления. Рамки также включают методы, чтобы справиться с асинхронной природой Silverlight.
У меня был этот вопрос, и на данный момент есть , нет официального поддержания способа выполнения этих модульных испытаний. Основная проблема заключается в том, что структура тестирования блока Silverlight не поддерживает подключение к MStest и, следовательно, не может быть интегрирована в любой CI. Однако есть способ взломать это, используя Powerhell - см. здесь .
Я лично вижу, что это довольно хлопот , чтобы эти тесты подключались к подключенным к CI, а пока запускают их только на моей местной машине.
Обновление: Как написал JBloorer, есть доступно в блог на блоге Джеффа Уилкокса о том, как настроить задачу MSBUILD для структуры тестирования блока Silverlight. Я бы порекомендовал выбрать этот путь: после настройки MSBUILD у вас не должно быть проблем с подключением к CruiseControl.net.
Можете ли вы использовать третью стороннюю структуру тестирования, такие как NUNIT или XUNIT.NET? Затем вы можете вызвать исполняемый файл из в CC.Net. На самом деле CCNet имеет NUNIT задачу.