コマンド ラインからの VSTest.console の使用
発行: 2016年7月
VSTest.Console.exe を使用して、単体テストまたはコード化された UI テストをコマンドラインから実行します。 これは Visual Studio 2012 以降のバージョンに関してパフォーマンスで最適化されており、MSTest.exe の代わりに使用されます。
VSTest.Console.exe コマンド ラインで、任意の順序で複数のオプションを指定できます。 以下の「一般的なコマンド ライン オプション」という表に、こうしたオプションを示します。
vstest.console.exe は、これらのオプションおよび指定された値を解釈するときに大文字と小文字を区別しません。
次の表は、VSTest.Console.exe のすべてのオプションとその簡単な説明の一覧です。 これと同じような概要は、コマンド ラインで「VSTest.Console /?」と入力すると表示できます。 VSTest.Console.exe は、次の場所にあります: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow。
注意
Visual Studio 2012 の MSTest アダプターは、互換性のためにレガシ モード (mstest.exe によるテストの実行と同等) でも動作します。レガシ モードでは、VS11 の新機能である TestCaseFilter を使用することはできません。アダプターをレガシ モードに切り替えることができるのは、.testsettings ファイルが指定されている場合、.runsettings ファイルで forcelegacymode が true に設定されている場合、または HostType などの属性を使用した場合です。
注意
ARM アーキテクチャ ベースのコンピューターで自動テストを実行するには、VSTest.Console.exe を使用する必要があります。
一般的なコマンド ライン オプション
/Settings:[ ファイル名 ] |
データ コレクターなどの追加設定を指定してテストを実行します。 例 : /Settings:Local.RunSettings |
/Tests:[ テスト名 ] |
指定した値に一致する名前のテストを実行します。 複数の値を指定するには、コンマで区切ります。 例 : /Tests:TestMethod1,testMethod2 警告 /Tests コマンド ライン オプションを /TestCaseFilter コマンド ライン オプションと同時に使用することはできません。 |
/Enablecodecoverage |
テストの実行で、データ診断アダプター CodeCoverage を有効にします。 設定ファイルで指定されていない場合は、既定の設定が使用されます。 |
/InIsolation |
分離プロセスでテストを実行します。 これにより、テストでエラーが発生しても vstest.console.exe プロセスが停止することは少なくなりますが、テストの実行速度は低下する可能性があります。 |
/UseVsixExtensions |
テストの実行において、vstest.console.exe プロセスで VSIX 拡張機能 (ある場合) を使用するかスキップするかを指定します。 例 : /UseVsixExtensions:true |
/Platform:[ プラットフォームの種類 ] |
テストの実行対象とするプラットフォーム アーキテクチャです。 有効な値は x86、x64、および ARM です。 |
/Framework: [ フレームワークのバージョン ] |
テストの実行に使用する対象の .NET Framework バージョンを指定します。 有効な値は、Framework35、Framework40、および Framework45 です。 例 : /Framework:framework40 |
/TestCaseFilter:[ 式 ] |
指定した式に一致するテストを実行します。 <Expression> は <property>=<value>[|<Expression>] の形式です。 例 : /TestCaseFilter:"Priority=1" 例 : /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName" 警告 /TestCaseFilter コマンド ライン オプションを /Tests コマンド ライン オプションと同時に使用することはできません。 |
/Logger:[ uri/friendlyname ] |
テスト結果のロガーを指定します。 例: Visual Studio テスト結果ファイル (TRX) に結果のログを書き込むには、/Logger:trx を使用します。 例: Team Foundation Server にテスト結果を発行するには、次のように TfsPublisher を使用します。 /logger:TfsPublisher; Collection=<team project url>; BuildName=<build name>; TeamProject=<team project name>; [;Platform=<Defaults to “Any CPU”>] [;Flavor=<Defaults to “Debug”>] [;RunTitle=<title>] 注意 TfsPublisher ロガーは、[Visual Studio 2012.1] 以降を備えた Visual Studio 2012 が必要です。 |
/ListTests:[ ファイル名 ] |
指定されたテスト コンテナーから探索されたテストを一覧表示します。 |
/ListDiscoverers |
インストール済みのテスト探索プログラムを一覧表示します。 |
/ListExecutors |
インストール済みのテスト実行プログラムを一覧表示します。 |
/ListLoggers |
インストール済みのテスト ロガーを一覧表示します。 |
/ListSettingsProviders |
インストール済みのテスト設定プロバイダーを一覧表示します。 |
テスト ファイルを指定して VSTest.Console.exe を使用する
vstest.console.exe の構文は、次のとおりです。
Vstest.console.exe [TestFileNames] [Options]
コマンド ラインから VSTest.Console.exe を使用する例を次に示します。
Vstest.console.exe myTestProject.dll
コマンド ラインから VSTest.Console.exe を使用し、複数のテスト ファイルを指定する例を次に示します。 複数のファイル名は空白で区切ります。
Vstest.console.exe myTestFile.dll myOtherTestFile.dll
例
ここでは、Vstest.console.exe の実行時にいくつかのオプションを使用する例を示します。 この場合、myTestFile.dll ファイル内のテストが実行され、Local.RunSettings ファイルで指定されたデータが収集されます。テストは分離プロセスで動作します。 さらに、実行するテスト ケースに "Priority 1" でフィルターをかけ、結果のログを .trx ファイルに書き込みます。
vstest.console.exe myTestFile.dll /Settings:Local.RunSettings /InIsolation /TestCaseFilter:"Priority=1" /Logger:trx
参照
コマンド ラインからの自動テストの実行
Compatibility of Test Settings with Visual Studio 2010
Upgrading Tests from Earlier Versions of Visual Studio