Запуск тестов DevFund с помощью командной строки
Обзор
Существует несколько способов запуска тестов DevFund и SysFund с помощью командной строки. Инструкции на этой странице предназначены для запуска тестов с помощью командной строки в Visual Studio и комплекте драйверов Windows (WDK), но без подготовки тестовой системы через Visual Studio.
Ниже перечислены другие методы выполнения тестов DevFund и SysFund.
Hardware Lab Kit (HLK). Тесты можно выполнять из командной строки на тестовом компьютере клиента HLK.
Тестовый компьютер, подготовленный с помощью Visual Studio: запуск теста с помощью командной строки
Корпоративный пакет драйверов Windows (EWDK — не требует Visual Studio). Если Visual Studio не установлен и не будет использоваться, используйте EWDK для выполнения тестов в командной строке.
Установка
Обратите внимание, что следующие команды должны выполняться из командной строки с повышенными привилегиями или администратора, так как при установке WDTF устанавливаются драйверы в системе. В приведенных ниже инструкциях предполагается, что архитектура системы — x64. Следующие шаги может потребоваться скорректировать для других архитектур.
Шаг 1 . Установка Visual Studio и комплекта драйверов Windows (WDK)
Шаг 2 . Тесты используют службу TAEF .
Чтобы установить службу TAEF (Te.service), перейдите к %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\TAEF\x64
и выполните следующие команды, чтобы начать работу службы:
wex.services.exe /install:te.service
(Убедитесь, что служба te.service успешно установлена)sc start te.service
(Убедитесь, что "STATE" имеет значение "START_PENDING")sc query te.service
(Убедитесь, что "STATE" имеет значение "ВЫПОЛНЯЕТСЯ")sc qc te.service
(Убедитесь, что "START_TYPE" имеет значение "AUTO_START")
Добавьте этот каталог в системную переменную среды PATH и перезапустите командную строку с повышенными привилегиями.
Шаг 3 . Установите WDTF , перейдя к расположению MSI WDTF (%PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\
) и установив пакет для требуемой архитектуры. Укажите расположение и имя файла журнала установки % USERPROFILE%\Desktop\WDTFInstall.log в этом примере:
cd %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\
msiexec /i "Windows Driver Testing Framework (WDTF) Runtime Libraries-x64\_en-us.msi" /l\* "%USERPROFILE%\Desktop\WDTFInstall.log"
MSI WDTF устанавливает WDTF в папку %PROGRAMFILES%\Windows Kits\10\Testing\Runtimes\WDTF , так как в этом примере используется 64-разрядная msi WDTF MSI, даже если msi WDTF находилась в папке %PROGRAMFILES(X86)%
Шаг 4 . Настройка компьютера для тестирования:
Настройте компьютер для сбора полных дампов или подключите отладчик ядра.
Так как тесты могут потенциально перезагрузить компьютер и управлять циклами спящего режима, настройте компьютер так, чтобы он никогда не переходил в спящий режим, никогда не выключал отображение и автоматически входить в тестовую учетную запись (netplwiz.exe). Обратите внимание, что автоматический журнал следует использовать с осторожностью.
Шаг 5 . Запустите тест. Тесты DevFund находятся в папке %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Tests\Additional Tests\x64\DevFund.
Базовая команда для запуска теста DevFund имеет следующий вид:
Te.exe Devfund_<testname>.dll /name:"<test case name>" /p:"DQ=DeviceID='<Device Instance Path of device under test from Device Manager>'" /RebootStateFile:state.xml
Где < имя >тестового случая — это имя теста в тестовом двоичном файле.
Параметр / name является необязательным. Так как некоторые двоичные файлы тестов содержат несколько тестов, параметр / name указывает, какие тесты следует выполнять. Если это не указано, все тесты, содержащиеся в тестовом двоичном файле, выполняются последовательно. Список тестов в тестовом двоичном файле можно получить, выполнив следующую команду:
Te.exe Devfund\<testname>.dll /list
Например, Devfund_PnPDTest.dll содержит большинство тестов, связанных с PnP:
Te.exe Devfund_PnPDTest_WLK_Functional.dll /list
Test Authoring and Execution Framework v10.21 for x64
Devfund_PnPDTest_WLK_Functional.dll
PNPDTest
PNPDTest::PNPDisableAndEnableDevice
PNPDTest::PNPRemoveAndRestartDevice
PNPDTest::PNPCancelRemoveDevice
PNPDTest::PNPCancelStopDevice
PNPDTest::PNPTryStopAndRestartDevice
PNPDTest::PNPTryStopDeviceRequestNewResourcesAndRestartDevice
PNPDTest::PNPTryStopDeviceAndFailRestart
PNPDTest::PNPSurpriseRemoveAndRestartDevice
PNPDTest::PNPDIFRemoveAndRescanParentDevice
PNPDTest::DisableEnhancedDeviceTestingSupport
Команда для запуска одного теста из этого тестового двоичного файла может выглядеть следующим образом:
c:\temp\Te.exe Devfund_PnPDTest_WLK_Functional.dll /name:PNPDTest::PNPSurpriseRemoveAndRestartDevice* /p:"DQ=DeviceID='my\device\id'" /RebootStateFile:state.xml