Come eseguire i test Dev Fund tramite la riga di comando

Panoramica

Esistono diversi modi per eseguire i test Dev Fund e Sys Fund tramite la riga di comando. Le istruzioni in questa pagina sono per l'esecuzione dei test tramite la riga di comando con Visual Studio e Windows Driver Kit (WDK), ma senza effettuare il provisioning del sistema di test tramite Visual Studio.

Altri metodi per l'esecuzione dei test Dev Fund e SysFund includono:

Configurazione

Si noti che i comandi seguenti devono essere eseguiti da un prompt dei comandi con privilegi elevati/amministratore perché l'installazione di WDTF installa i driver nel sistema. Le istruzioni seguenti presuppongono che l'architettura di sistema sia x64. Potrebbe essere necessario modificare i passaggi seguenti per altre architetture.

Passaggio 1 : Installare Visual Studio e Windows Driver Kit (WDK)

Passaggio 2 : I test usano il servizio TAEF .

Per installare il servizio TAEF (Te.service), passare a %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\TAEF\x64 ed eseguire i comandi seguenti per iniziare il servizio:

  1. wex.services.exe /install:te.service (Verificare che te.service sia stato installato correttamente)

  2. sc start te.service (Verificare che 'STATE' sia 'START_PENDING')

  3. sc query te.service (Verificare che 'STATE' sia 'RUNNING')

  4. sc qc te.service (Verificare che "START_TYPE" sia "AUTO_START")

Aggiungere questa directory alla variabile di ambiente PATH di sistema e riavviare il prompt dei comandi con privilegi elevati.

Passaggio 3 : Installare WDTF passando al percorso dell'identità del servizio gestito WDTF (%PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\) e installando il pacchetto per l'architettura desiderata. Specificare un percorso e un nome per il file di log di installazione, %USERPROFILE%\Desktop\WDTFInstall.log in questo esempio:

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"

L'identità del servizio gestito WDTF installa WDTF in %PROGRAMFILES%\Windows Kits\10\Testing\Runtimes\WDTF poiché questo esempio usa l'identità del servizio gestito WDTF a 64 bit anche se l'identità del servizio gestito WDTF era in %PROGRAMFILES(X86)%

Passaggio 4 : Configurare il computer per il test:

  • Configurare il computer per raccogliere dump completi o collegare un debugger del kernel.

  • Poiché i test possono potenzialmente riavviare il computer e devono controllare i cicli di sospensione, configurare il computer per non dormire mai, non disattivare mai la visualizzazione e l'accesso automatico a un account di test (netplwiz.exe). Si noti che l'accesso automatico deve essere usato con cautela.

Passaggio 5 : Eseguire il test. I test DevFund si trovano in %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Tests\Additional Tests\x64\Dev Fund.

Il comando di base per l'esecuzione di un test Dev Fund è nel formato seguente:

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

Dove <il nome> del test case è il nome del test nel file binario di test.

L'opzione / name è facoltativa. Poiché alcuni file binari di test contengono più test, l'opzione / name specifica quali test devono essere eseguiti. Se non specificato, tutti i test contenuti nel file binario di test vengono eseguiti in sequenza. È possibile ottenere l'elenco dei test in un file binario di test eseguendo il comando seguente:

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

Ad esempio, il Devfund_PnPDTest.dll contiene la maggior parte dei test correlati al 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

Il comando per eseguire un singolo test da questo file binario di test potrebbe essere simile al seguente:

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