如何通过命令行运行 DevFund 测试
概述
可通过多种方法通过命令行运行 DevFund 和 SysFund 测试。 此页上的说明介绍如何使用 Visual Studio 和 Windows 驱动程序工具包 (WDK) 通过命令行运行测试,但不通过 Visual Studio 预配测试系统。
运行 DevFund 和 SysFund 测试的其他方法包括:
硬件实验室工具包 (HLK) :可以从 HLK 客户端测试计算机上的命令行运行测试
通过 Visual Studio“预配”的测试计算机: 通过命令行运行测试
企业 Windows 驱动程序工具包 (EWDK - 不需要 Visual Studio) :如果 Visual Studio 未安装且不会使用, 请使用 EWDK 在命令行上运行测试
安装
请注意,必须从提升权限/管理员命令提示符处执行以下命令,因为 WDTF 安装会在系统上安装驱动程序。 以下说明假定系统体系结构为 x64。 可能需要针对其他体系结构调整以下步骤。
步骤 1 : (WDK) 安装 Visual Studio 和 Windows 驱动程序工具包
步骤 2 :测试使用 TAEF 服务。
若要 (Te.service) 安装 TAEF 服务,请转到 %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
其中 <,测试用例名称> 是测试二进制文件中测试的名称。
/ 名称 开关是可选的。 由于某些测试二进制文件包含多个测试,因此/ 名称 开关指定应运行哪些测试。 如果未指定,则按顺序执行测试二进制文件中包含的所有测试。 可以通过运行以下命令来获取测试二进制文件中的测试列表:
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