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:
Hardware Lab Kit (HLK): os testes podem ser executados na linha de comando em um computador de teste do cliente HLK
Computador de teste "provisionado" por meio do Visual Studio: executando o teste por meio da linha de comando
Enterprise Windows Driver Kit (EWDK- não requer o Visual Studio): se o Visual Studio não estiver instalado e não for usado, use o EWDK para executar testes na linha de comando
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:
wex.services.exe /install:te.service
(Verifique se o te.service foi instalado com êxito)sc start te.service
(Verifique se 'STATE' é 'START_PENDING')sc query te.service
(Verifique se 'STATE' é 'RUNNING')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