MSTest.exe のコマンド ライン オプション
MSTest.exe は、テストを実行するために使用されるコマンド ライン コマンドです。 このコマンドには、テスト実行をカスタマイズするためのオプションがあります。 これらのオプションの多くは、他のオプションと組み合わせて使用できます。次のセクションで説明するように、実際、他のオプションと組み合わせて使用する必要のあるオプションもあります。 これらのオプションは、MSTest.exe コマンド ラインで任意の順序で指定できます。
MSTest.exe では、オプション自身またはオプションに指定する値のどちらも、大文字と小文字を区別して解釈されることはありません。
次の表は、MSTest.exe のすべてのオプションとその簡単な説明の一覧です。 これと同じような概要は、コマンド ラインで「MSTest /h」と入力すると表示できます。
一般的なコマンド ライン オプション
/testcontainer:[file name] |
テストが含まれるファイルを読み込みます。 例: /testcontainer:tests.dll 詳細については、「/testcontainer」を参照してください。 |
/testmetadata:[file name] |
テスト メタデータが含まれるファイルを読み込みます。 詳細については、「/testmetadata」を参照してください。 |
/testlist:[test list path] |
メタデータ ファイルで指定された、実行するテスト リストを指定します。 詳細については、「/testlist」を参照してください。 |
/category:[test category filter] |
実行するテスト カテゴリを指定してフィルター処理します。 詳細については、「/category」を参照してください。 |
/test:[test name] |
実行するテストの名前を指定します。 詳細については、「/test」を参照してください。 |
/noisolation |
MSTest.exe プロセス内でテストを実行します。 このオプションを指定すると、テストの実行速度は向上しますが、MSTest.exe プロセスのリスクも高まります。 |
/testsettings: [file name] |
指定されたテスト設定ファイルを使用します。 例: /testsettings:Local.Testsettings 詳細については、「/testsettings」を参照してください。 |
/runconfig:[file name] |
指定した実行構成ファイルを使用します。 例: /runconfig:localtestrun.Testrunconfig 詳細については、「/runconfig」を参照してください。 注意 このコマンド ライン オプションは、以前のバージョンの Visual Studio との互換性を保つために保持されています。Visual Studio Premium では、テストの実行構成はテストの設定で置き換えられました。 |
/resultsfile:[file name] |
テスト実行の結果を指定したファイルに保存します。 例: /resultsfile:testResults.trx 詳細については、「/resultsfile」を参照してください。 |
/detail:[property id] |
テスト結果の他に、値を表示するプロパティがあれば、その名前を指定します。 詳細については、「/detail」を参照してください。 |
/help |
MSTest.exe の使用法に関する説明を表示します (省略形は /? または /h です)。 |
/nologo |
著作権情報および著作権メッセージを表示しません。 |
/usestderr |
標準エラー出力を使用してエラー情報を出力します。 |
テスト結果を発行するためのコマンド ライン オプション
これらのオプションの詳細については、「テスト結果を発行するためのコマンド ライン オプション」を参照してください。
/publish:[server name] |
指定したサーバーのチーム プロジェクト コレクションのデータベースに結果を発行します。 |
/publishresultsfile:[file name] |
発行する結果ファイルの名前を指定します。 結果ファイルの名前が指定されない場合、現在の実行によって作成されたファイルを使用します。 |
/publishbuild:[build id] |
このビルド ID を使用して、テスト結果を発行します。 |
/teamproject:[team project name] |
ビルドが属するチーム プロジェクトの名前を指定します。 |
/platform:[platform] |
テスト結果を発行する対象のビルドのプラットフォームを指定します。 |
/flavor:[flavor] |
テスト結果を発行する対象のビルドのフレーバーを指定します。 |
MSTest オプションの使用
次のセクションでは、多くの MSTest.exe のオプションについてさらに詳しく説明します。 テスト結果を発行するために使用されたオプションは、ここでは説明していません。 それらのオプションの詳細については、「テスト結果を発行するためのコマンド ライン オプション」を参照してください。
/testcontainer
/testcontainer:[file name]
テスト コンテナーは、実行するテストが含まれるファイルです。 たとえば、順序指定テストの場合、テスト コンテナーは、順序指定テストを定義する .orderedtest ファイルです。 単体テストの場合、単体テスト ソース ファイルを含むテスト プロジェクトからビルドされたアセンブリです。
注意
単体テストの場合、テストしているアプリケーションのコードを含むアセンブリではなく、テスト コードを含むアセンブリです。たとえば、ソリューションに BankAccount という名前のプロジェクトが含まれていて、対応するテスト プロジェクトの名前が BankAccountTest である場合、/testcontainer:BankAccountTest.dll と指定します。
注意
テスト メタデータ ファイルにも実行できるテストが一覧表示されるため、/testcontainer オプションと /testmetadata オプションの両方を 1 つのコマンド ラインで指定しないでください。 これを行うと指示があいまいと見なされ、エラーが発生する可能性があります。
/testmetadata
/testmetadata:[file name]
/testmetadata オプションを使用すると、複数のテスト コンテナーでテストを実行できます。
[テスト リスト エディター] ウィンドウを使用してテスト リストを作成すると、ソリューションのテスト メタデータ ファイルが作成されます。 このファイルには、[テスト リスト エディター] ウィンドウに一覧表示されるすべてのテストに関する情報が含まれます。 これらは、ソリューションのすべてのテスト プロジェクトに存在するすべてのテストです。
テスト メタデータ ファイルは、ソリューション フォルダーに作成される XML ファイルです。 このファイルは、ソリューション エクスプローラーの [Solution Items] ノードの下に表示されます。 テスト メタデータ ファイルの拡張子は .vsmdi です。このファイルは [テスト リスト エディター] ウィンドウに関連付けられています。 つまり、Windows のエクスプローラー (ファイル エクスプローラー) で .vsmdi ファイルをダブルクリックすると、Visual Studio が開いてファイルの内容が表示されます。 ソリューションのテスト プロジェクト内のすべてのテストは [テスト リスト エディター] ウィンドウに表示されます。
テストの作成や削除、またはテスト プロパティの変更など、[テスト リスト エディター] ウィンドウに反映される変更を行うことによってのみ、テスト メタデータ ファイルを変更することができます。
注意
テスト コンテナーには実行するテストが含まれているため、/testcontainer オプションと /testmetadata オプションの両方を 1 つのコマンド ラインで指定しないでください。 これを行うと指示があいまいと見なされ、エラーが発生する可能性があります。
/testmetadata オプションを使用する場合、/test オプションまたは /testlist オプション、あるいはその両方を使用して実行する特定のテストを指定することをお勧めします。
/testlist
/testlist:[test list path]
/testlist オプションは、テスト メタデータ ファイルで指定された、実行するテストのリストです。 複数のテスト リストに含まれているテストを実行するには、/testlist を複数回使用します。 テスト リスト内の順序指定テストが実行されます。
注意
/testmetadata オプションも使用している場合のみ、/testlist オプションを使用できます。
/testlist オプションと /test オプションは同時に使用できます。 これは、[テスト リスト エディター] ウィンドウでテスト リストと 1 つ以上のテストの両方を選択し、[テストの実行] をクリックする操作と同じです。
/category
/category:[test category filter]
実行するテスト カテゴリを指定するには、/category オプションを使用します。
注意
/category オプションを使用するには、/testcontainer オプションを使用する必要があります。
/category オプションの使用は、コマンド ラインごとに 1 回だけですが、テスト カテゴリ フィルターを使用すると、複数のテスト カテゴリを指定できます。 テスト カテゴリ フィルターは、1 つ以上のテスト カテゴリ名を論理演算子 '&'、'|'、'!'、'&!' で区切って指定します。 ただし、論理演算子 '&' と '|' を同時に使用してテスト カテゴリ フィルターを作成することはできません。
たとえば、次のように入力します。
「/category:group1」と指定すると、テスト カテゴリ "group1" に属するテストが実行されます。
「/category:"group1&group2"」と指定すると、テスト カテゴリ "group1" および "group2" の両方に属するテストが実行されます。 指定したテスト カテゴリのどちらかにのみ属するテストは実行されません。
「/category:"group1|group2"」と指定すると、テスト カテゴリ "group1" または "group2" に属するテストが実行されます。 両方のテスト カテゴリに属するテストも実行されます。
「/category:"group1&!group2"」と指定すると、テスト カテゴリ "group2" に属さない、テスト カテゴリ "group1" のテストが実行されます。 テスト カテゴリ "group1" と "group2" の両方に属するテストは実行されません。
注意
「/category:group1」のように、指定したフィルターが 1 つのカテゴリで構成される場合、フィルターを引用符で囲む必要はありません。ただし、「/category:"group1&group2"」のように、指定したフィルターが複数のカテゴリを参照する場合、フィルターを引用符で囲む必要があります。
/test
/test:[test name]
実行する個々のファイルを指定するには、/test オプションを使用します。 複数のテストを実行するには、/test オプションを複数回使用します。
注意
/test オプションは、/testcontainer オプションまたは /testmetadata オプションのいずれかと同時に使用できますが、これらを両方使用することはできません。
/testlist オプションと /test オプションは同時に使用できます。 これは、[テスト リスト エディター] ウィンドウでテスト リストと 1 つ以上のテストの両方を選択し、[テストの実行] をクリックする操作と同じです。
/test オプションで指定する文字列は、テスト コンテナーまたはテスト メタデータ ファイルのどちらかにあるテストの名前と一致させるために使用されます。 つまり、/test に単一の値を使用することによって、複数のテストを指定できます。 たとえば、/test:ittest を指定すると、DebitTest および CreditTest という名前のテストが該当します。これは、両方のテスト名に 'ittest' という部分文字列が含まれているためです。
注意
/test オプションで指定する値は、テストの名前に対してだけでなく、ソリューション エクスプローラーで表示されるテストのパスに対してもテストされます。さらに、単体テストの場合は、完全修飾名に対してもテストされます。
2 つの使用方法の例を次に示します。
単体テストの例: プロジェクト TestProject2 のファイル UnitTest1.cs には、TestMethod1 という名前の単体テストが含まれています。 /test オプションに 'ittest' という値を指定すると、文字列が "TestProject2.UnitTest1.TestMethod1" という完全修飾名に対してテストされ、文字列 'ittest' も "UnitTest1" に存在するため、このテストも該当します。
汎用テストの例: 次のコマンド ラインは、指定した汎用テストを実行し、テスト結果でテストの完全パスを表示します。
mstest /testcontainer:"C:\Documents and Settings\<user name>\My Documents\Visual Studio\Projects\TestProject2\TestProject2\generictest1.generic" /test:testproject32\generic
/noisolation
/noisolation
このオプションを使用すると、テストを MSTest.exe プロセス内で実行できます。 このオプションを使用してもテスト実行構成に他の変更は加えられません。 このオプションの目的は、テストの実行速度を向上させることです。 ただし、テスト コードがスローした未処理の例外により MSTest.exe プロセスがクラッシュする可能性があるため、全体としてテストの実行のリスクが高まります。
/testsettings
/testsettings:[file name]
このオプションを使用すると、テスト設定ファイルを指定できます。 例: /testsettings:local.Testsettings
テスト設定ファイルは、/testmetadata オプションを使用するなどその他の方法でも指定できます。 テスト設定ファイルの仕様を決定する規則はここで記述されます。
/testsettings オプションを使用すると、このオプションで指定したファイルが使用されます。/testmetadata オプションも使用しているかどうかは関係ありません。
/testmetadata オプションを使用してアクティブなテスト設定ファイルを指定するメタデータ ファイルを指定した場合、そのテスト設定ファイルは /testsettings オプションを使用しない場合に使用されます。
/testsettings オプションを使用しないで、テスト メタデータ ファイルのテスト設定ファイルも指定しない場合、テストの実行では既定のテスト設定ファイルが使用されます。
注意
テストの設定ファイルの詳細については、「Microsoft テスト マネージャーを使用した自動システム テストのテスト設定の作成」を参照してください。
/runconfig
/runconfig:[file name]
メモ このコマンド ライン オプションは、以前のバージョンの Visual Studio との互換性を保つために保持されています。 Visual Studio Premium では、テストの実行構成はテストの設定で置き換えられました。
このオプションを使用すると、実行構成ファイルを指定できます。 例: /runconfig:localtestrun.Testrunconfig
実行構成ファイルは、/testmetadata オプションを使用するなどその他の方法でも指定できます。 実行構成ファイルの仕様を決定する規則はここで記述されます。
/runconfig オプションを使用すると、このオプションで指定したファイルが使用されます。/testmetadata オプションも使用しているかどうかは関係ありません。
/testmetadata オプションを使用して、アクティブな実行構成ファイルを指定するメタデータ ファイルを指す場合、その実行構成ファイルは /runconfig オプションを使用しない場合に使用されます。
/runconfig オプションを使用しない場合で、テスト メタデータ ファイルの実行構成ファイルも指定しない場合、テスト実行では既定の実行構成ファイルを使用します。
/resultsfile
/resultsfile:[file name]
このオプションを使用すると、テスト実行の結果を指定したファイルに保存できます。 例: /resultsfile:testResults.trx
/usestderr
/usestderr
このオプションを使用すると、次の情報が標準エラー出力に書き込まれます。
結果が "失敗"、"中止"、"エラー"、"タイムアウト"、"実行不可能"、または "実行なし" であったテスト
実行レベル エラー
コマンド ライン引数の解析エラー
テスト実行の結果が失敗であった場合の実行の概要
このオプションを指定しない場合、すべての出力が標準出力に送信されます。
/detail
/detail:[property id]
このオプションは、追加のテスト ケース プロパティが存在する場合に、そのプロパティを表示するために使用されます。 1 つのコマンド ライン内で、それぞれ 1 つのプロパティ ID を持つ、/detail オプションのインスタンスを複数渡すことができます。 /detail の有効なプロパティ ID を次に示します。
adapter |
id |
projectrelativepath |
computername |
isautomated |
readonly |
debugtrace |
link |
spoolmessage |
description |
longtext |
stderr |
displaytext |
name |
stdout |
duration |
outcometext |
storage |
errormessage |
owner |
testcategoryid |
errorstacktrace |
parentexecid |
testname |
executionid |
priority |
testtype |
groups |
projectname |
traceinfo |
注意
/detail オプションで使用できるプロパティ ID は、テストの種類によって異なります。そのため、このリストは単なる目安です。特に、カスタムのテストの種類を使用している場合、プロパティの選択は異なります。使用できるプロパティ ID を確認するには、テスト実行によって作成されるテスト結果ファイルをチェックします。テスト結果ファイルの詳細については、「方法: Visual Studio で Web パフォーマンスを保存および開き、テスト結果を読み込む」を参照してください。
指定したテスト ケースにプロパティが存在する場合、その情報は出力結果の概要に含まれます。
たとえば、次のコマンド ラインを実行します。
mstest /testcontainer:Errors.dll /detail:testtype
このコマンド ラインでは、テストの種類の情報を含む次のような出力を生成します。
...
Results Top Level Tests
-------- -----------------
Inconclusive TestProject2.BankAccountTest.CreditTest
[testtype] = Unit Test
...