Share via


如何透過命令行執行DevFund測試

概觀

有數種方式可以透過命令行執行DevFund和SysFund測試。 此頁面上的指示是透過命令行搭配 Visual Studio 和 Windows Driver Kit (WDK) 來執行測試,但不需要透過 Visual Studio 布建測試系統。

執行 DevFund 和 SysFund 測試的其他方法包括:

設定

請注意,下列命令必須從提升許可權的/系統管理員命令提示字元執行,因為 WDTF 安裝會在系統上安裝驅動程式。 下列指示假設系統架構為 x64。 下列步驟可能需要針對其他架構進行調整。

步驟 1安裝 Visual Studio 和 Windows 驅動程式套件 (WDK)

步驟 2 :測試會使用 TAEF 服務。

若要安裝 TAEF 服務 (Te.service) ,請移至 %PROGRAMFILES(X86)%\Windows Kits\10\Testing\Runtimes\TAEF\x64 並執行下列命令以啟動服務:

  1. wex.services.exe /install:te.service (確認已成功安裝 te.service)

  2. sc start te.service (確認 『STATE』 為 『START_PENDING』)

  3. sc query te.service (確認 『STATE』 為 『RUNNING』)

  4. 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