如何通过命令行运行 DevFund 测试

概述

可通过多种方法通过命令行运行 DevFund 和 SysFund 测试。 此页上的说明介绍如何使用 Visual Studio 和 Windows 驱动程序工具包 (WDK) 通过命令行运行测试,但不通过 Visual Studio 预配测试系统。

运行 DevFund 和 SysFund 测试的其他方法包括:

安装

请注意,必须从提升权限/管理员命令提示符处执行以下命令,因为 WDTF 安装会在系统上安装驱动程序。 以下说明假定系统体系结构为 x64。 可能需要针对其他体系结构调整以下步骤。

步骤 1 (WDK) 安装 Visual Studio 和 Windows 驱动程序工具包

步骤 2 :测试使用 TAEF 服务。

若要 (Te.service) 安装 TAEF 服务,请转到 %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 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

其中 <,测试用例名称> 是测试二进制文件中测试的名称。

/ 名称 开关是可选的。 由于某些测试二进制文件包含多个测试,因此/ 名称 开关指定应运行哪些测试。 如果未指定,则按顺序执行测试二进制文件中包含的所有测试。 可以通过运行以下命令来获取测试二进制文件中的测试列表:

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