Модульные тесты Windows Phone в Visual Studio 2012 Update 2

Модульное тестирование — важный этап жизненного цикла разработки приложений для любой платформы. Пользователям Visual Studio больше не придется обращаться к — средам модульного тестирования Windows Phone от сторонних разработчиков. В версии CTP2 Visual Studio Update 2 появилась среда модульного тестирования Windows Phone. Она предоставляет единый интерфейс для создания, запуска и отладки тестов для платформы Windows Phone 8. В данной статье описывается процесс модульного тестирования в Windows Phone.

Необходимые требования

  1. Visual Studio 2012
  2. Windows Phone SDK 8.0
  3. Visual Studio 2012 Update 2 (версия CTP 2)

Примечание. Для запуска модульного тестирования в эмуляторе Windows Phone необходима физическая машина с 64-разрядной версией Windows 8 (с поддержкой Hyper-V).

Одна среда — несколько платформ

Теперь можно разрабатывать модульные тесты для Windows Phone на C#, создав новый проект Windows Phone Unit Test App в разделе C#/Windows Phone. Тесты выполняются на конечном устройстве после установки приложения модульного тестирования на телефон.

image

Рис. 1. Новый шаблон Windows Phone Unit Test

Вне зависимости от того, создаются ли классические модульные тесты, модульные тесты для Магазина Windows или модульные тесты Windows Phone, Visual Studio автоматически добавляет все необходимые ссылки, после чего можно приступать к написанию тестов в знакомой среде MS Test. Программистам больше не придется изучать несколько сред, чтобы создавать тесты для различных платформ.

image

Рис. 2. Создание тестов в среде MSTest

Запуск тестов из Visual Studio

Среда модульного тестирования для Windows Phone является адаптером, надстраиваемым — поверх расширяемой платформы модульного тестирования в Visual Studio 2012 (аналогично адаптерам nUnit, xUnit и др.). Это позволило распространить весь опыт разработки, управляемой тестами, в Visual Studio на Windows Phone. В знакомом окне обозревателя тестов показаны все найденные тесты. Непосредственно из интегрированной среды разработки можно группировать и фильтровать тесты по признакам, включать средство непрерывного выполнения тестов для просмотра результатов тестирования после каждой сборки, выполнять отладку или запуск выбранного (непройденного) набора тестов.

clip_image001

Рис. 3. Найденные модульные тесты Windows Phone

clip_image002

Рис. 4. Выбор конечного устройства

Конечное устройство, заданное на палитре запуска Visual Studio, используется для установки приложения модульного теста, запуска тестов и получения результатов. Поддерживаются эмуляторы (доступны только при включении Hyper-V) и устройства под управлением Windows Phone 8, физически подключенные к машине. Разработчики могут создавать, запускать и отлаживать тесты на любом конечном устройстве, не выходя из интегрированной среды разработки. Во время модульного тестирования на устройстве отображается экран Tests Running (Выполняются тесты).

image

Рис. 5. Выполнение модульных тестов на устройстве

Запуск тестов из командной строки

Как уже упоминалось выше, среда модульного тестирования для Windows Phone является адаптером для платформы модульного тестирования; это позволяет использовать приложение vstest.console.exe для запуска модульных тестов из командной строки. Результаты можно легко экспортировать в файл результатов тестирования Visual Studio с помощью команды /Logger:trx.

image

Рис. 6. Запуск тестов из командной строки

image

Рис. 7. Результаты тестирования из файла средства ведения журнала (TRX)

По умолчанию конечным устройством для выполнения тестов является Emulator WVGA 512MB (Эмулятор WVGA 512 МБ). Чтобы изменить конечное устройство, задайте другие параметры запуска (пример параметров запуска приложен).

image

Рис. 8. Параметры запуска для установки конечного устройства

Вопросы и ответы, известные проблемы

  • Модульные тесты для Windows Phone не поддерживают сборщиков данных ни на физических устройствах, ни в эмуляторах.
  • Можно ли написать модульные тесты в собственном коде C++? 
    В версии CTP2 поддерживается только C#. VB# и C++ в настоящее время не поддерживаются.
  • Какие версии Windows Phone поддерживаются? 
    Можно создавать модульные тесты только для приложений Windows Phone 8; платформы Windows Phone 7, 7.5 и 7.8 не поддерживаются.
  • Какие SKU Visual Studio требуются для включения данной функции? 
    Модульные тесты Windows Phone работают во всех выпусках: Express, Test Professional, Professional и Ultimate.
  • После установки всех необходимых приложений шаблон Windows Phone Unit Test не отображается.
    Решение. Установите на системный диск все необходимые приложения в указанном порядке.
  • Устройство было отключено или остановлено во время выполнения модульного тестирования. Что делать? 
    Решение. Если устройство было отключено или остановлено (например, при поступлении вызова или нажатии на кнопку камеры), то выполнение теста прерывается и процесс vstest заканчивается сбоем. Вручную удалите все приложения модульных тестов с устройства, повторно подключите устройство и попробуйте выполнить тестирование еще раз.
  • При отладке модульных тестов выводится сообщение об ошибке. 
    Решение. Вручную остановите сеанс отладки по окончании выполнения тестов и запустите отладку выбранных тестов повторно.
  • Модульные тесты для Windows Phone, имеющие внутренние зависимости, невозможно запустить из командной строки.
  • После завершения тестирования на устройстве иногда остаются установленные приложения модульных тестов. 
    Решение. Вручную удалите все приложения модульных тестов с устройства.
  • Известная проблема. Пользователи, использующие неанглоязычную версию пакета инструментов SDK 8.0 для Windows Phone, не могут создавать новые проекты модульных тестов для Windows Phone.
  • Известная проблема. Для неудачно завершившегося теста в трассировке стека отсутствуют номера строк, где произошел сбой; невозможно использовать данные трассировки для перехода к коду.

phone-tests.runsettings