Comment exécuter les tests DevFund via la ligne de commande
Vue d'ensemble
Il existe plusieurs façons d’exécuter les tests DevFund et SysFund via la ligne de commande. Les instructions de cette page concernent l’exécution des tests via la ligne de commande avec Visual Studio et le Kit de pilotes Windows (WDK), mais sans provisionner le système de test via Visual Studio.
Les autres méthodes d’exécution des tests DevFund et SysFund sont les suivantes :
Kit de laboratoire matériel (HLK) : les tests peuvent être exécutés à partir de la ligne de commande sur un ordinateur de test client HLK
Machine de test « provisionnée » via Visual Studio : exécution du test via la ligne de commande
Enterprise Windows Driver Kit (EWDK- ne nécessite pas Visual Studio) : si Visual Studio n’est pas installé et ne sera pas utilisé, utilisez le kit EWDK pour exécuter des tests sur la ligne de commande
Paramétrage
Notez que les commandes suivantes doivent être exécutées à partir d’une invite de commandes avec élévation de privilèges/administrateur, car l’installation de WDTF installe les pilotes sur le système. Les instructions ci-dessous supposent que l’architecture système est x64. Les étapes suivantes peuvent devoir être ajustées pour d’autres architectures.
Étape 1 : Installer Visual Studio et le Kit de pilotes Windows (WDK)
Étape 2 : Les tests utilisent le service TAEF .
Pour installer le service TAEF (Te.service), accédez à %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\TAEF\x64
et exécutez les commandes suivantes pour démarrer le service :
wex.services.exe /install:te.service
(Vérifiez que te.service a été installé correctement)sc start te.service
(Vérifiez que 'STATE' est 'START_PENDING')sc query te.service
(Vérifiez que « STATE » est « EN COURS D’EXÉCUTION »)sc qc te.service
(Vérifiez que « START_TYPE » est « AUTO_START »)
Ajoutez ce répertoire à la variable d’environnement PATH système et redémarrez l’invite de commandes avec élévation de privilèges.
Étape 3 : Installez WDTF en accédant à l’emplacement du MSI WDTF (%PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\
) et en installant le package pour l’architecture souhaitée. Spécifiez un emplacement et un nom pour le fichier journal d’installation , %USERPROFILE%\Desktop\WDTFInstall.log dans cet exemple :
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"
Le MSI WDTF installe WDTF dans %PROGRAMFILES%\Windows Kits\10\Testing\Runtimes\WDTF , car cet exemple utilise le MSI WDTF 64 bits même si le MSI WDTF était sous %PROGRAMFILES(X86)%
Étape 4 : Configurer la machine pour le test :
Configurez la machine pour collecter des vidages complets ou attacher un débogueur de noyau.
Étant donné que les tests peuvent potentiellement redémarrer l’ordinateur et doivent contrôler les cycles de mise en veille, configurez la machine pour qu’elle ne soit jamais mise en veille, ne jamais désactiver l’affichage et se connecter automatiquement à un compte de test (netplwiz.exe). Notez que l’enregistrement automatique doit être utilisé avec précaution.
Étape 5 : Exécuter le test. Les tests DevFund se trouvent dans %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Tests\Additional Tests\x64\DevFund.
La commande de base pour l’exécution d’un test DevFund se présente sous la forme suivante :
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
Où <nom> du cas de test est le nom du test dans le binaire de test.
Le commutateur / name est facultatif. Étant donné que certains fichiers binaires de test contiennent plusieurs tests, le commutateur / name spécifie quels tests doivent être exécutés. S’ils ne sont pas spécifiés, tous les tests contenus dans le binaire de test sont exécutés dans l’ordre. La liste des tests d’un fichier binaire de test peut être obtenue en exécutant la commande suivante :
Te.exe Devfund\<testname>.dll /list
Par exemple, le Devfund_PnPDTest.dll contient la plupart des tests 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
La commande permettant d’exécuter un seul test à partir de ce fichier binaire de test peut ressembler à ceci :
c:\temp\Te.exe Devfund_PnPDTest_WLK_Functional.dll /name:PNPDTest::PNPSurpriseRemoveAndRestartDevice* /p:"DQ=DeviceID='my\device\id'" /RebootStateFile:state.xml