概觀
有數種方式可以透過命令行執行DevFund和SysFund測試。 此頁面上的指示是透過命令行搭配 Visual Studio 和 Windows 驅動程式套件 (WDK) 來執行測試,但不需要透過 Visual Studio 佈建測試系統。
執行 DevFund 和 SysFund 測試的其他方法包括:
硬體實驗室套件 (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 Tests\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 開關是選擇性的。 由於某些測試二進位檔包含多個測試,/ 名稱 參數會指定應該執行哪些測試。 如果未指定,測試二進位檔中包含的所有測試都會依序執行。 您可以執行下列命令來取得測試二進位檔中的測試清單:
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