次の方法で共有


コマンド ライン オプションの VSTest.Console.exe

VSTest.Console.exe は、テストを実行するためのコマンド ライン ツールです。 コマンド ラインでは、任意の順序で複数のオプションを指定できます。 これらのオプションは、一般的なコマンド ライン オプションに記載されています。

手記

Visual Studio の MSTest アダプターは、互換性のためにレガシ モード (mstest.exeを使用したテストの実行と同等) でも動作します。 レガシ モードでは、TestCaseFilter 機能を利用できません。 アダプターは、testsettings ファイルが指定されている場合、forcelegacymoderunsettings ファイルで true を に設定するか、HostTypeなどの属性を使用してレガシ モードに切り替えることができます。

ARM アーキテクチャ ベースのコンピューターで自動テストを実行するには、VSTest.Console.exeを使用する必要があります。

開発者コマンド プロンプト 開いてコマンド ライン ツールを使用するか、%Program Files(x86)%\Microsoft Visual Studio\バージョン\Edition\common7\ide\CommonExtensions\Platform でツールを見つけることができます。 |Microsoft.

一般的なコマンド ライン オプション

次の表に、VSTest.Console.exe のすべてのオプションとその簡単な説明を示します。 コマンド ラインで「VSTest.Console/?」と入力すると、同様の概要を確認できます。

オプション 形容
[テスト ファイル名] 指定したファイルからテストを実行します。 複数のテスト ファイル名をスペースで区切ります。
例: mytestproject.dllmytestproject.dll myothertestproject.exe
/Settings:[ファイル名] データ コレクターなどの追加の設定を使用してテストを実行します。 詳細については、「.runsettings ファイル を使用した単体テストの構成」を参照してください。
例: /Settings:local.runsettings
/Tests:[test name] 指定された値を含む名前でテストを実行します。 このコマンドは、名前空間を含む完全なテスト名と一致します。 複数の値を指定するには、コンマで区切ります。
例: /Tests:TestMethod1,testMethod2
/Tests コマンド ライン オプションは、/TestCaseFilter コマンド ライン オプションでは使用できません。
/Parallel テストを並列で実行することを指定します。 既定では、マシンで使用可能なすべてのコアを使用できます。 設定ファイルで使用するコアの数を構成できます。
/Enablecodecoverage テストの実行でデータ診断アダプター CodeCoverage を有効にします。
既定の設定は、設定ファイルを使用して指定しない場合に使用されます。
/InIsolation 分離されたプロセスでテストを実行します。
この分離により、vstest.console.exe プロセスがテストのエラーで停止される可能性は低くなりますが、テストの実行速度が低下する可能性があります。
/UseVsixExtensions このオプションを使用すると、vstest.console.exe プロセスでテスト実行にインストールされている VSIX 拡張機能 (ある場合) が使用されるか、スキップされます。
このオプションは非推奨です。 Visual Studio の次のメジャー リリース以降、このオプションは削除される可能性があります。 NuGet パッケージとして利用可能になった拡張機能の使用に移動します。
例: /UseVsixExtensions:true
/TestAdapterPath:[path] テストの実行で、指定したパス (存在する場合) からカスタム テスト アダプターを使用するように、vstest.console.exe プロセスに強制します。
例: /TestAdapterPath:[pathToCustomAdapters]
/Platform:[platform type] 現在のランタイムから決定されたプラットフォームではなく、特定のプラットフォームを強制的に使用します。 このオプションでは、Windows では x86 プラットフォームと x64 プラットフォームのみを強制できます。 ARM オプションは壊れているので、ほとんどのシステムでは x64 になります。
ARM64 などの有効な値の一覧にないランタイムで実行するには、このオプションを指定しないでください。
有効な値は x86、x64、ARM です。
/Framework: [フレームワーク バージョン] テストの実行に使用する .NET バージョンをターゲットにします。
値の例は、Framework35Framework40Framework45FrameworkUap10.NETCoreApp,Version=v1.1です。
TargetFrameworkAttribute は、アセンブリからこのオプションを自動的に検出するために使用され、属性が存在しない場合は既定で Framework40 されます。 TargetFrameworkAttribute を .NET Core アセンブリから削除する場合は、このオプションを明示的に指定する必要があります。
ターゲット フレームワークが Framework35として指定されている場合、テストは CLR 4.0 の "互換モード" で実行されます。
例: /Framework:framework40
/TestCaseFilter:[] 指定された式に一致するテストを実行します。
<式> は、[| <<式>]>プロパティ>=<値の形式です。
例: /TestCaseFilter:"Priority=1"
例: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName"
/TestCaseFilter コマンド ライン オプションは、/Tests コマンド ライン オプションでは使用できません。
式の作成と使用の詳細については、「TestCase フィルター参照してください。
/? 使用状況情報を表示します。
/Logger:[uri/friendlyname] テスト結果のロガーを指定します。 複数のロガーを有効にするには、パラメーターを複数回指定します。
例: Visual Studio テスト結果ファイル (TRX) に結果をログに記録するには、
/Logger:trx の
[;LogFileName=<一意のファイル名の既定値>]
/ListTests:[ファイル名] 特定のテスト コンテナーから検出されたテストを一覧表示します。
注: /TestCaseFilters オプションは、テストを一覧表示する場合は無効です。どのテストを実行するかを制御するだけです。
/ListDiscoverers インストールされているテスト検出プログラムを一覧表示します。
/ListExecutors インストールされているテスト 実行プログラムを一覧表示します。
/ListLoggers インストールされているテスト ロガーを一覧表示します。
/ListSettingsProviders を する インストールされているテスト設定プロバイダーを一覧表示します。
/非難 テストを非難モードで実行します。 このオプションは、テスト ホストがクラッシュする原因となる問題のあるテストを分離する際に役立ちます。 クラッシュが検出されると、クラッシュ前に実行されたテストの順序をキャプチャするシーケンス ファイルが TestResults/<Guid>/<Guid>_Sequence.xml に作成されます。 詳細については、「データ コレクターを非難する」を参照してください。
/Diag:[ファイル名] 診断トレース ログを指定したファイルに書き込みます。
/ResultsDirectory:[パス] テスト結果ディレクトリが存在しない場合は、指定されたパスに作成されます。
例: /ResultsDirectory:<pathToResultsDirectory>
/ParentProcessId:[parentProcessId] 現在のプロセスの起動を担当する親プロセスのプロセス ID。
/Port:[port] ソケット接続とイベント メッセージの受信用のポート。
/Collect:[dataCollector friendlyName] テスト実行のデータ コレクターを有効にします。 詳細情報.

先端

オプションと値では、大文字と小文字は区別されません。

vstest.console.exe を実行するための構文は次のとおりです。

vstest.console.exe [TestFileNames] [Options]

既定では、テストが検出されない場合でも、正常に終了すると、コマンドは 0 を返します。 テストが検出されない場合にゼロ以外の値を返す場合は、<TreatNoTestsAsError>true</TreatNoTestsAsError> runsettings オプションを使用します。

次のコマンドは、テスト ライブラリ myTestProject.dllvstest.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

次のコマンドは、テスト ライブラリ myTestProject.dll/blame オプションを使用して vstest.console.exe を実行します。

vstest.console.exe myTestFile.dll /blame

テスト ホストがクラッシュした場合、sequence.xml ファイルが生成されます。 このファイルには、クラッシュ時に実行されていた特定のテストまでの一連の実行で、テストの完全修飾名が含まれています。

テスト ホストのクラッシュがない場合、sequence.xml ファイルは生成されません。

生成された sequence.xml ファイルの例:

<?xml version="1.0"?>
<TestSequence>
  <Test Name="TestProject.UnitTest1.TestMethodB" Source="D:\repos\TestProject\TestProject\bin\Debug\TestProject.dll" />
  <Test Name="TestProject.UnitTest1.TestMethodA" Source="D:\repos\TestProject\TestProject\bin\Debug\TestProject.dll" />
</TestSequence>

UWP の例

UWP の場合、DLL の代わりに appxrecipe ファイルを参照する必要があります。

vstest.console.exe /Logger:trx /Platform:x64 /framework:frameworkuap10 UnitTestsUWP\bin\x64\Release\UnitTestsUWP.build.appxrecipe