Partilhar via


Como executar os testes do DevFund por meio da linha de comando

Visão geral

Há várias maneiras de executar os testes de 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 WDK (Kit de Driver do Windows), mas sem provisionar o sistema de teste por meio do Visual Studio.

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

Instalação

Observe que os comandos a seguir devem ser executados em um prompt de comando com privilégios elevados/administrador porque a instalação do WDTF instala drivers no sistema. As instruções a seguir pressupõem 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 WDK (Kit de Driver do Windows)

Etapa 2 : os testes usam o serviço TAEF .

Para instalar o serviço TAEF (Te.service), acesse %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 esse diretório à variável de ambiente PATH do sistema e reinicie o prompt de comandos com privilégios elevados.

Etapa 3 : instale o WDTF navegando até o local da MSI do WDTF (%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 MSI do WDTF instala o WDTF em %PROGRAMFILES%\Windows Kits\10\Testing\Runtimes\WDTF , pois este exemplo está usando a MSI WDTF de 64 bits, mesmo que a MSI WDTF estivesse em %PROGRAMFILES(X86)%

Etapa 4 : configurar o computador para teste:

  • Configure o computador para coletar despejos completos ou anexar um depurador de kernel.

  • Como os testes podem potencialmente reinicializar o computador e precisar controlar os ciclos de suspensão, configure o computador para nunca dormir, nunca desative a exibição e faça logon automático em uma conta de teste (netplwiz.exe). Observe que o autologon deve ser usado com cuidado.

Etapa 5 : executar 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 do 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

Em <que 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 serã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 desse 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