如何透過命令行執行DevFund測試
概觀
有數種方式可以透過命令行執行DevFund和SysFund測試。 此頁面上的指示是透過命令行搭配 Visual Studio 和 Windows Driver Kit (WDK) 來執行測試,但不需要透過 Visual Studio 布建測試系統。
執行 DevFund 和 SysFund 測試的其他方法包括:
Hardware Lab Kit (HLK) :您可以從 HLK 客戶端測試電腦上的命令行執行測試
透過 Visual Studio 測試機器「佈建」: 透過命令行執行測試
企業 Windows 驅動程式套件 (EWDK- 不需要 Visual Studio) :如果未安裝 Visual Studio 且不會使用, 請使用 EWDK 在命令行上執行測試
設定
請注意,下列命令必須從提升許可權的/系統管理員命令提示字元執行,因為 WDTF 安裝會在系統上安裝驅動程式。 下列指示假設系統架構為 x64。 下列步驟可能需要針對其他架構進行調整。
步驟 1 : 安裝 Visual Studio 和 Windows 驅動程式套件 (WDK)
步驟 2 :測試會使用 TAEF 服務。
若要安裝 TAEF 服務 (Te.service) ,請移至 %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\TAEF\x64
並執行下列命令以啟動服務:
wex.services.exe /install:te.service
(確認已成功安裝 te.service)sc start te.service
(確認 『STATE』 為 『START_PENDING』)sc query te.service
(確認 『STATE』 為 『RUNNING』)sc qc te.service
(確認 『START_TYPE』 為 『AUTO_START』)
將此目錄新增至系統PATH環境變數,然後重新啟動提升許可權的命令提示字元。
步驟 3 :流覽至 WDTF MSI () %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\
的位置,並安裝所需架構的套件,以安裝 WDTF。 在這裡範例中指定安裝記錄檔的位置和名稱 %USERPROFILE%\Desktop\WDTFInstall.log :
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"
WDTF MSI 會將 WDTF 安裝至 %PROGRAMFILES%\Windows Kits\10\Testing\Runtimes\WDTF ,因為此範例使用 64 位 WDTF MSI,即使 WDTF MSI 位於 %PROGRAMFILES (X86) %
步驟 4 :設定機器以進行測試:
設定計算機以收集完整傾印或附加核心調試程式。
由於測試可能會重新啟動機器,且需要控制睡眠週期,因此請將計算機設定為永不睡眠、永不關閉顯示器,以及自動登入測試帳戶 (netplwiz.exe) 。 請注意,自動記錄應該謹慎使用。
步驟 5 :執行測試。 DevFund 測試位於 %PROGRAMFILES (X86) %\Windows Kits\10\Testing\Tests\Additional Testing\x64\DevFund。
執行 DevFund 測試的基本命令的格式如下:
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
其中 <測試案例名稱> 是測試二進位檔中的測試名稱。
/ name 參數是選擇性的。 由於某些測試二進位檔包含多個測試,所以 / name 參數會指定應該執行哪些測試。 如果未指定,則會依序執行測試二進位檔中包含的所有測試。 執行下列命令即可取得測試二進位檔中的測試清單:
Te.exe Devfund\<testname>.dll /list
例如,Devfund_PnPDTest.dll 包含大部分的 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
從此測試二進位檔執行單一測試的命令可能如下所示:
c:\temp\Te.exe Devfund_PnPDTest_WLK_Functional.dll /name:PNPDTest::PNPSurpriseRemoveAndRestartDevice* /p:"DQ=DeviceID='my\device\id'" /RebootStateFile:state.xml