Поделиться через


Запуск тестов 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"

Добавьте этот каталог в переменную среды SYSTEM 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 WDTF располагался в %PROGRAMFILES(X86)%.

Шаг 4 . Настройка компьютера для тестирования:

  • Настройте компьютер для сбора полных дампов или подключения отладчика ядра.

  • Поскольку тесты могут потенциально перезагрузить компьютер и необходимо контролировать циклы сна, настройте компьютер так, чтобы не входить в спящий режим, никогда не отключая дисплей, и настроить автоматический вход в тестовую учетную запись (netplwiz.exe). Обратите внимание, что автологон следует использовать с осторожностью.

Шаг 5 . Запуск теста. Тесты DevFund находятся в %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Test\Additional Test\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