Автоматическое тестирование модуля Silverlight с помощью CruiseControl.NET
В настоящее время это лучшее решение для автоматизации запуска модульных тестов с приложениями Silverlight в CruiseControl.NET?
Желательно, чтобы я запускал модульные тесты MSTest, поскольку они официально не поддерживаются для silverlight, но я открыт для предложений, которые используют другие рамки тестирования.
Ответы
Ответ 1
Ноябрьская версия Silverlight Toolkit содержит не только платформу тестирования Silverlight Unit, но также и задачу MSBuild, чтобы позволить структуре запускается из командной строки. См. сообщение Джеффа Уилкокса для подробностей, но вы, в основном, делаете это:
msbuild /t:test /p:browser=firefox
Поскольку CC.Net может запускать MSBuild, вы должны иметь возможность хотя бы вызывать тесты. Выходной сигнал находится в формате TRX.
Я использовал эту инфраструктуру с некоторым успехом, хотя и не интегрирован в CC.Net, она отлично работает, но тесты, запущенные в браузере, немного медленны. Преимущество работы в браузере заключается в том, что вы можете делать больше приемочных тестов, запуская элементы управления для отображения. В рамки также включены методы, позволяющие справиться с асинхронной природой Silverlight.
Ответ 2
У меня была эта проблема, и в настоящий момент официально не поддерживаются способы проведения этих модульных тестов. Основная проблема заключается в том, что платформа тестирования Silverlight Unit не поддерживает подключение к MSTest и поэтому не может быть действительно интегрирована в какой-либо CI. Однако есть способ взломать это с помощью Powerhell - см. здесь.
Я лично вижу, что это довольно хлопотно, чтобы эти тесты были подключены к CI и в настоящее время запускают их только на моей локальной машине.
Обновление: как написал jbloomer, есть доступное пошаговое руководство в блоге Джеффа Уилкокса о том, как настроить задачу MSBuild для модуля Silverlight Тестирование. Я бы рекомендовал выбрать этот путь: как только MSBuild настроен, у вас не должно возникнуть проблемы с подключением его к CruiseControl.NET.
Ответ 3
Для запуска тестов Silverlight Unit из командной строки в CCNet или TeamCity вы можете использовать Lighthouse Silverlight Unit Test Runner:
http://lighthouse.codeplex.com/
Он работает с любым сервером сборки, потому что он запускает модульные тесты и создает файл результатов xml, совместимый с NUnit, поэтому вы запускаете его так же, как и бегун из NUnit Console.
Ответ 4
Не могли бы вы использовать стороннюю структуру тестирования, например NUnit или XUnit.net? Затем вы можете вызвать исполняемый файл из CC.net. На самом деле CCNet имеет задачу NUnit.
Ответ 5
Наряду с LightHouse есть еще один инструмент автоматизации тестирования - StatLight.