Подтвердить что ты не робот

Выполнение универсальных тестов устройств Windows из командной строки

Как вы запускаете проекты Universal wows (UWP) unit test из командной строки?

Я использую MSTestFramework.

4b9b3361

Ответ 1

Короткий ответ:

vstest.console.exe /Platform:x64 AppPackages\UnitTestProject1_1.0.0.0_x64_Debug_Test\UnitTestProject1_1.0.0.0_x64_Debug.appx

Длинный ответ:

  • Создайте проект, выбрав шаблон Universal/ Unit Test App (Universal Windows):

    введите описание изображения здесь

  • Создайте его с помощью командной строки, используя в папке, где файл решения

    msbuild /p:Platform=x64;Configuration=Debug

  • Попробуйте выполнить команду vstest.console.exe выше, в коротком ответе. Он не сработает, и появится следующее сообщение об ошибке:

    error 0x800B0109: The root certificate of the signature in the app package or bundle must be trusted..
    For more details look into Event Viewer under Applications and Services Logs -> Microsoft -> Windows -> AppXDeployment-Server -> Microsoft-Windows-AppXDeploymentServer/Operational.
    
  • Чтобы иметь возможность запускать тесты из командной строки, вам нужно использовать сертификат с доверенным корнем или сделать сертификат, сгенерированный визуальной студией, надежным. Для последнего дважды щелкните файл UnitTestProject1_TemporaryKey.pfx из проводника Windows и выполните шаги мастера по умолчанию мастера импорта, но измените две вещи:

    • Установить хранилище на локальный компьютер: введите описание изображения здесь
    • Поместите сертификат в хранилище доверенных корневых центров сертификации: введите описание изображения здесь
    • Завершение мастера должно сказать: "Импорт был успешным".
  • Попробуйте запустить vstest.console.exe, используя параметры в коротком ответе, и теперь он должен выполнить все ваши тесты.

Ответ 2

Я последовал за Иваном Мариновым, но мне было нужно чисто командное решение. После того, как вы работаете над проектом UWP Unit Test, и вы готовы к автоматизации, выполните следующие действия:

(Я назвал свое решение Win10Universal и мой проект Unit Test Win10-UnitTests. Вам нужно будет подставить имена в моих примерах своими)

  • Откройте командную строку в качестве администратора и перейдите в тот же каталог, что и ваше решение.

  • Запустите MSBuild.exe в своем решении.

>"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" Win10Universal.sln /p:Platform=x86;Configuration=Release

  1. Процесс сборки создаст каталог, похожий на {SolutionDirectory}/AppPackages/{UnitTestTargetProjectName}/{Something_Test}. Перейдите в этот каталог, и внутри вы увидите сертификат безопасности .cer.

>cd AppPackages/Win10-UnitTests/Win10-UnitTests_1.1.0.0._x86_Test

  1. Запустите CertMgr.exe в этом сгенерированном сертификате. Этот шаг завершится неудачно, если вы не используете Командную строку с правами администратора.

>"C:\Program Files (x86)\Windows Kits\10\bin\x86\certmgr.exe" -add Win10-UnitTests_1.1.0.0_x86_Release.cer -s -r localmachine root

  1. Запустите VSTest.Console.exe в файле .appx в этом каталоге.

>"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" Win10-UnitTests_1.1.0.0_x86_Release.appx /Platform:x86

Вы должны увидеть, что тесты вашего устройства перечислены в окне, если вы все сделали правильно! Надеюсь, это поможет!

Ответ 3

Далее @Marinov, UWP не поддерживает тестирование приложения в настоящее время. Можно проверить только библиотеку.

Итак, если вы хотите сделать unit test в UWP, вы должны вытащить свои логические коды из проекта приложения и вылить их во вновь созданный проект библиотеки. Проект тестирования и оригинальный проект приложения могут быть указаны позже.