명령줄을 통해 DevFund 테스트를 실행하는 방법
개요
명령줄을 통해 DevFund 및 SysFund 테스트를 실행하는 방법에는 여러 가지가 있습니다. 이 페이지의 지침은 Visual Studio 및 WDK(Windows 드라이버 키트)를 사용하여 명령줄을 통해 테스트를 실행하지만 Visual Studio를 통해 테스트 시스템을 프로비전하지 않는 것입니다.
DevFund 및 SysFund 테스트를 실행하는 다른 방법은 다음과 같습니다.
HLK(하드웨어 랩 키트): HLK 클라이언트 테스트 머신의 명령줄에서 테스트를 실행할 수 있습니다.
Visual Studio를 통해 "프로비전된" 테스트 컴퓨터: 명령줄을 통해 테스트 실행
EWDK(Enterprise Windows 드라이버 키트- Visual Studio가 필요하지 않음): Visual Studio가 설치되어 있지 않고 사용되지 않는 경우 EWDK를 사용하여 명령줄에서 테스트를 실행합니다.
설치
WDTF 설치 시 시스템에 드라이버가 설치되므로 관리자 권한/관리자 명령 프롬프트에서 다음 명령을 실행해야 합니다. 아래 지침에서는 시스템 아키텍처가 x64라고 가정합니다. 다른 아키텍처에 대해 다음 단계를 조정해야 할 수 있습니다.
1단계 : Visual Studio 및 WDK(Windows 드라이버 키트) 설치
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가 %PROGRAMFILES(X86)% 아래에 있더라도 64비트 WDTF MSI를 사용하므로 WDTF MSI는 %PROGRAMFILES%\Windows Kits\10\Testing\Runtimes\WDTF에 WDTF를 설치합니다.
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
여기서 <test case 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