Запуск тестов DevFund с помощью командной строки

Обзор

Существует несколько способов запуска тестов DevFund и SysFund с помощью командной строки. Инструкции на этой странице предназначены для запуска тестов с помощью командной строки в Visual Studio и комплекте драйверов Windows (WDK), но без подготовки тестовой системы через Visual Studio.

Ниже перечислены другие методы выполнения тестов DevFund и SysFund.

Установка

Обратите внимание, что следующие команды должны выполняться из командной строки с повышенными привилегиями или администратора, так как при установке WDTF устанавливаются драйверы в системе. В приведенных ниже инструкциях предполагается, что архитектура системы — x64. Следующие шаги может потребоваться скорректировать для других архитектур.

Шаг 1 . Установка Visual Studio и комплекта драйверов Windows (WDK)

Шаг 2 . Тесты используют службу TAEF .

Чтобы установить службу TAEF (Te.service), перейдите к %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\TAEF\x64 и выполните следующие команды, чтобы начать работу службы:

  1. wex.services.exe /install:te.service (Убедитесь, что служба te.service успешно установлена)

  2. sc start te.service (Убедитесь, что "STATE" имеет значение "START_PENDING")

  3. sc query te.service (Убедитесь, что "STATE" имеет значение "ВЫПОЛНЯЕТСЯ")

  4. 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