次の方法で共有


コマンド ラインから 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 をインストールします。 インストール ログ ファイルの場所と名前を指定します。この例 では、\Desktop\WDTFInstall.log を%USERPROFILE% します。

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 は、この例では 64 ビット WDTF MSI が使用されているため、WDTF を %PROGRAMFILES%\Windows Kits\10\Testing\Runtimes\WDTF にインストールします。これは、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

ここで <テスト ケース名> テスト バイナリ内のテストの名前です。

/ 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

このテスト バイナリから 1 つのテストを実行するコマンドは、次のようになります。

c:\temp\Te.exe Devfund_PnPDTest_WLK_Functional.dll /name:PNPDTest::PNPSurpriseRemoveAndRestartDevice* /p:"DQ=DeviceID='my\device\id'" /RebootStateFile:state.xml