Я добавляю этот ответ в виде вики сообщества, чтобы другие могли изменить его, чтобы поддерживать его актуальность.
Модульное тестирование
Намерение: работать изолированно (без телефона)функциональность), быстрое выполнение тестов часто как с IDE, так и с сервера Continuous Integration без необходимости эмулятора (например, TDD View Models)
Метод, который я видел рекомендованным в ряде презентаций, включает ссылкиваши исходные файлы в проекте .NET 4 и выполнение тестов по ним (ссылаясь на настольные эквиваленты сборок).Если ваш код не использует API-интерфейсы, которые отличаются от десктопных BCL и , вы можете иметь дело с обновлением ссылочного проекта (новые файлы не добавляются автоматически), чем этого должно быть достаточно.
В противном случае вы можете выполнить следующие шаги для выполнения кода, который ссылается на сборки WP7 в CLR рабочего стола:
- Добавить тестовую библиотеку классов Silverlight 4 (не Silverlight дляWindows Phone проект) к вашему решению
- В библиотеке классов установите
Copy Local
для всех ссылок каркаса , кроме mscorelib (в основном System. * И Microsoft. *), На true
- Добавьте ссылку из этой тестовой библиотеки в
NUnit.Silverlight.Framework.dll
и NUnit.Silverlight.Compatibility.dll
из проекта NUnit-Silverlight - Добавьте ссылку из тестовой библиотеки в свойосновной проект Windows Phone, игнорируя предупреждение о версии.
- Запустите тесты из IDE с помощью ReSharper (проверено) или TestDriven.NET
- Запустите тесты из командной строки, используя стандартный .NET2.0
nunit-console.exe
из последнего выпуска NUnit , передавая /framework=v4.0
.
(Многие из вышеупомянутых обходных путей необходимы, потому что WP7 использует SL3. Как только Mango выпущен сSL4 runtimе, это должна быть более чистая настройка)
Интеграционное тестирование
Намерение: запускать более продолжительные тесты, которые взаимодействуют с внешними по отношению к коду ресурсами (такими как функции телефона и веб-службы)на эмуляторе, как по требованию, так и на сервере CI
ОБНОВЛЕНИЕ Модульное тестирование приложений Windows Phone 8 будет официально поддерживаться в Visual Studio 2012 Update 2 , включая интеграцию VS и поддержку командной строки.Эти тесты выполняются в эмуляторе, поэтому я включил его в раздел «Интеграционные тесты».
В настоящее время он не поддерживается портом WP7 тестовой среды Silverlight (и поставляется только для загрузки из блога).
Тем временем я создал проект codeplex *1059*, который добавляет задачу MSBuild, которая запускает эмулятор и объединяет результаты в файл XML.Самый простой способ установки - добавить пакет wp7-ci
NuGet .
. ПРИМЕЧАНИЕ. Для установки WP7 SDK на Windows Server требуется изменить конфигурацию установщика и он не поддерживается., но работает хорошо.
Прием / системное тестирование
Намерение: запуск сквозных автоматических тестов, которые взаимодействуют с пользовательским интерфейсом телефона на эмуляторе, как по требованию, так и по запросу.сервер CI
Expensify (плохо названный для SEO) Windows Phone Test Framework поддерживает написание тестов автоматизации пользовательского интерфейса с хост-ПК с использованием SpecFlow.