Partilhar via


Como executar os testes do DevFund através da linha de comando

Descrição geral

Há várias maneiras de executar os testes DevFund e SysFund por meio da linha de comando. As instruções nesta página são para executar os testes por meio da linha de comando com o Visual Studio e o Kit de Driver do Windows (WDK), mas sem provisionar o sistema de teste via Visual Studio.

Outros métodos para executar os testes DevFund e SysFund incluem:

Configuração

Note que os comandos a seguir devem ser executados a partir de um prompt de comando elevado/administrador, visto que a instalação do WDTF adiciona controladores ao sistema. As instruções abaixo assumem que a arquitetura do sistema é x64. As etapas a seguir podem precisar ser ajustadas para outras arquiteturas.

Etapa 1 : Instalar o Visual Studio e o Kit de Driver do Windows (WDK)

Passo 2 : Os testes utilizam o serviço TAEF .

Para instalar o serviço TAEF (Te.service), vá para %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\TAEF\x64 e execute os seguintes comandos para iniciar o serviço:

  1. wex.services.exe /install:te.service (Verifique se o te.service foi instalado com êxito)

  2. sc start te.service (Verifique se 'STATE' é 'START_PENDING')

  3. sc query te.service (Verifique se 'STATE' é 'RUNNING')

  4. sc qc te.service (Verifique se 'START_TYPE' é 'AUTO_START')

Adicione este diretório à variável de ambiente PATH do sistema e reinicie o prompt de comando elevado.

Etapa 3 : Instale o WDTF navegando até o local do WDTF MSI (%PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\) e instalando o pacote para a arquitetura desejada. Especifique um local e um nome para o arquivo de log de instalação %USERPROFILE%\Desktop\WDTFInstall.log neste exemplo:

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"

O WDTF MSI instala o WDTF para %PROGRAMFILES%\Windows Kits\10\Testing\Runtimes\WDTF, pois este exemplo está usando o WDTF MSI de 64 bits, mesmo que o WDTF MSI estivesse sob %PROGRAMFILES(X86)%

Etapa 4 : Configurar a máquina para teste:

  • Configure a máquina para coletar dumps completos ou anexar um depurador do kernel.

  • Como os testes podem potencialmente reiniciar a máquina e precisam controlar os ciclos de suspensão, configure a máquina para nunca suspender, nunca desligar o visor, e iniciar sessão automaticamente numa conta de teste (netplwiz.exe). Observe que o logon automático deve ser usado com cuidado.

Passo 5 : Execute o teste. Os testes do DevFund estão localizados em %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Tests\Additional Tests\x64\DevFund.

O comando básico para executar um teste DevFund é do formato:

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

Onde <nome> do caso de teste é o nome do teste no binário de teste.

A opção / name é opcional. Como alguns binários de teste contêm vários testes, a opção / name especifica quais testes devem ser executados. Se não for especificado, todos os testes contidos no binário de teste são executados em sequência. A lista de testes em um binário de teste pode ser obtida executando o seguinte comando:

Te.exe Devfund\<testname>.dll /list

Por exemplo, o Devfund_PnPDTest.dll contém a maioria dos testes relacionados ao 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

O comando para executar um único teste a partir deste binário de teste pode ter esta aparência:

c:\temp\Te.exe Devfund_PnPDTest_WLK_Functional.dll /name:PNPDTest::PNPSurpriseRemoveAndRestartDevice* /p:"DQ=DeviceID='my\device\id'" /RebootStateFile:state.xml