다음을 통해 공유


명령줄을 통해 DevFund 테스트를 실행하는 방법

개요

명령줄을 통해 DevFund 및 SysFund 테스트를 실행하는 방법에는 여러 가지가 있습니다. 이 페이지의 지침은 Visual Studio 및 WDK(Windows 드라이버 키트)를 사용하여 명령줄을 통해 테스트를 실행하지만 Visual Studio를 통해 테스트 시스템을 프로비전하지 않는 것입니다.

DevFund 및 SysFund 테스트를 실행하는 다른 방법은 다음과 같습니다.

설치

WDTF 설치 시 시스템에 드라이버가 설치되므로 관리자 권한/관리자 명령 프롬프트에서 다음 명령을 실행해야 합니다. 아래 지침에서는 시스템 아키텍처가 x64라고 가정합니다. 다른 아키텍처에 대해 다음 단계를 조정해야 할 수 있습니다.

1단계 : Visual Studio 및 WDK(Windows 드라이버 키트) 설치

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가 %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