MSTest.exe コマンド ライン オプション

MSTest.exe は、テストを実行するために使用されるコマンド ライン コマンドです。 このコマンドには、テスト実行をカスタマイズするためのオプションがあります。 これらのオプションの多くは、他のオプションと組み合わせて使用できます。次のセクションで説明するように、実際、他のオプションと組み合わせて使用する必要のあるオプションもあります。 これらのオプションは、MSTest.exe コマンド ラインで任意の順序で指定できます。

MSTest.exe では、オプション自身またはオプションに指定する値のどちらも、大文字と小文字を区別して解釈されることはありません。

次の表は、MSTest.exe のすべてのオプションとその簡単な説明の一覧です。 これと同じような概要は、コマンド ラインで「MSTest /h」と入力すると表示できます。

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

/testcontainer:[ファイル名]

テストが含まれるファイルを読み込みます。

例: /testcontainer:tests.dll

詳細については、「/testcontainer」を参照してください。

/testmetadata:[ファイル名]

テスト メタデータが含まれるファイルを読み込みます。 詳細については、「/testmetadata」を参照してください。

/testlist:[テスト リスト パス]

メタデータ ファイルで指定された、実行するテスト リストを指定します。 詳細については、「/testlist」を参照してください。

/category:[テスト カテゴリ フィルター]

実行するテスト カテゴリを指定してフィルター処理します。 詳細については、「/category」を参照してください。

/test:[テスト名]

実行するテストの名前を指定します。 詳細については、「/test」を参照してください。

/noisolation

MSTest.exe プロセス内でテストを実行します。 このオプションを指定すると、テストの実行速度は向上しますが、MSTest.exe プロセスのリスクも高まります。

/testsettings: [ファイル名]

指定されたテスト設定ファイルを使用します。

例: /testsettings:Local.Testsettings

詳細については、「/testsettings」を参照してください。

/runconfig:[ファイル名]

指定した実行構成ファイルを使用します。

例: /runconfig:localtestrun.Testrunconfig

詳細については、「/runconfig」を参照してください。

メモメモ
このコマンド ライン オプションは、以前のバージョンの Microsoft Visual Studio 2010 との互換性を保つために保持されています。Visual Studio 2010 Ultimate では、テストの実行構成はテストの設定で置き換えられました。

/resultsfile:[ファイル名]

テスト実行の結果を指定したファイルに保存します。

例: /resultsfile:testResults.trx

詳細については、「/resultsfile」を参照してください。

/unique

指定した /test に対して一意の対応が 1 つだけ見つかった場合のみテストを実行します。 詳細については、「/unique」を参照してください。

/detail:[プロパティ ID]

テスト結果の他に、値を表示するプロパティがあれば、その名前を指定します。 詳細については、「/detail」を参照してください。

/help

MSTest.exe の使用法に関する説明を表示します (省略形は /? または /h です)。

/nologo

著作権情報および著作権メッセージを表示しません。

/usestderr

標準エラー出力を使用してエラー情報を出力します。

テスト結果を発行するためのコマンド ライン オプション

これらのオプションの詳細については、「テスト結果を発行するためのコマンド ライン オプション」を参照してください。

/publish:[サーバー名]

指定したサーバーのチーム プロジェクト コレクションのデータベースに結果を発行します。

/publishresultsfile:[ファイル名]

発行する結果ファイルの名前を指定します。 結果ファイルの名前が指定されない場合、現在の実行によって作成されたファイルを使用します。

/publishbuild:[ビルド ID]

このビルド ID を使用して、テスト結果を発行します。

/teamproject:[チーム プロジェクト名]

ビルドが属するチーム プロジェクトの名前を指定します。

/platform:[プラットフォーム]

テスト結果を発行する対象のビルドのプラットフォームを指定します。

/flavor:[フレーバー]

テスト結果を発行する対象のビルドのフレーバーを指定します。

MSTest オプションの使用

次のセクションでは、多くの MSTest.exe のオプションについてさらに詳しく説明します。 テスト結果を発行するために使用されたオプションは、ここでは説明していません。 それらのオプションの詳細については、「テスト結果を発行するためのコマンド ライン オプション」を参照してください。

/testcontainer

/testcontainer:[ファイル名]

テスト コンテナーは、実行するテストが含まれるファイルです。 たとえば、順序指定テストの場合、テスト コンテナーは、順序指定テストを定義する .orderedtest ファイルです。 単体テストの場合、単体テスト ソース ファイルを含むテスト プロジェクトからビルドされたアセンブリです。

注意

単体テストの場合、テストしているアプリケーションのコードを含むアセンブリではなく、テスト コードを含むアセンブリです。 たとえば、ソリューションに BankAccount という名前のプロジェクトが含まれていて、対応するテスト プロジェクトの名前が BankAccountTest である場合、/testcontainer:BankAccountTest.dll と指定します。

注意

テスト メタデータ ファイルにも実行できるテストが一覧表示されるため、/testcontainer オプションと /testmetadata オプションの両方を 1 つのコマンド ラインで指定しないでください。 これを行うと指示があいまいと見なされ、エラーが発生する可能性があります。

/testmetadata

/testmetadata:[ファイル名]

/testmetadata オプションを使用すると、複数のテスト コンテナーでテストを実行できます。

[テスト リスト エディター] ウィンドウを使用してテスト リストを作成すると、ソリューションのテスト メタデータ ファイルが作成されます。 このファイルには、[テスト リスト エディター] ウィンドウに一覧表示されるすべてのテストに関する情報が含まれます。 これらは、ソリューションのすべてのテスト プロジェクトに存在するすべてのテストです。

テスト メタデータ ファイルは、ソリューション フォルダーに作成される XML ファイルです。 このファイルは、ソリューション エクスプローラーの [Solution Items] ノードの下に表示されます。 テスト メタデータ ファイルの拡張子は .vsmdi です。このファイルは [テスト リスト エディター] ウィンドウに関連付けられています。 つまり、Windows エクスプローラーで .vsmdi ファイルをダブルクリックすると、Visual Studio とその内容が開きます。 ソリューションのテスト プロジェクト内のすべてのテストは [テスト リスト エディター] ウィンドウに表示されます。

テストの作成や削除、またはテスト プロパティの変更など、[テスト リスト エディター] ウィンドウに反映される変更を行うことによってのみ、テスト メタデータ ファイルを変更することができます。

注意

テスト コンテナーには実行するテストが含まれているため、/testcontainer オプションと /testmetadata オプションの両方を 1 つのコマンド ラインで指定しないでください。 これを行うと指示があいまいと見なされ、エラーが発生する可能性があります。

/testmetadata オプションを使用する場合、/test オプションまたは /testlist オプション、あるいはその両方を使用して実行する特定のテストを指定することをお勧めします。

/testlist

/testlist:[テスト リスト パス]

/testlist オプションは、テスト メタデータ ファイルで指定された、実行するテストのリストです。 複数のテスト リストに含まれているテストを実行するには、/testlist を複数回使用します。 テスト リスト内の順序指定テストが実行されます。

注意

/testmetadata オプションも使用している場合のみ、/testlist オプションを使用できます。

/testlist オプションと /test オプションは同時に使用できます。 これは、[テスト リスト エディター] ウィンドウでテスト リストと 1 つ以上のテストの両方を選択し、[テストの実行] をクリックする操作と同じです。

/category

/category:[テスト カテゴリ フィルター]

実行するテスト カテゴリを指定するには、/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 オプションを使用します。 複数のテストを実行するには、/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:[ファイル名]

このオプションを使用すると、テスト設定ファイルを指定できます。 たとえば、「/testsettings:local.Testsettings」のように指定します。

テスト設定ファイルは、/testmetadata オプションを使用するなどその他の方法でも指定できます。 テスト設定ファイルの仕様を決定する規則はここで記述されます。

  • /testsettings オプションを使用すると、このオプションで指定したファイルが使用されます。/testmetadata オプションも使用しているかどうかは関係ありません。

  • /testmetadata オプションを使用してアクティブなテスト設定ファイルを指定するメタデータ ファイルを指定した場合、そのテスト設定ファイルは /testsettings オプションを使用しない場合に使用されます。

  • /testsettings オプションを使用しないで、テスト メタデータ ファイルのテスト設定ファイルも指定しない場合、テストの実行では既定のテスト設定ファイルが使用されます。

    注意

    テスト設定ファイルの詳細については、「テスト計画の一部としての自動テストのテスト設定の作成」を参照してください。

/runconfig

/runconfig:[ファイル名]

メモ   このコマンド ライン オプションは、以前のバージョンの Microsoft Visual Studio 2010 との互換性を保つために保持されています。 Visual Studio 2010 Ultimate では、テストの実行構成はテストの設定で置き換えられました。

このオプションを使用すると、実行構成ファイルを指定できます。 例: /runconfig:localtestrun.Testrunconfig

実行構成ファイルは、/testmetadata オプションを使用するなどその他の方法でも指定できます。 実行構成ファイルの仕様を決定する規則はここで記述されます。

  • /runconfig オプションを使用すると、このオプションで指定したファイルが使用されます。/testmetadata オプションも使用しているかどうかは関係ありません。

  • /testmetadata オプションを使用して、アクティブな実行構成ファイルを指定するメタデータ ファイルを指す場合、その実行構成ファイルは /runconfig オプションを使用しない場合に使用されます。

  • /runconfig オプションを使用しない場合で、テスト メタデータ ファイルの実行構成ファイルも指定しない場合、テスト実行では既定の実行構成ファイルを使用します。

/resultsfile

/resultsfile:[ファイル名]

このオプションを使用すると、テスト実行の結果を指定したファイルに保存できます。 例: /resultsfile:testResults.trx

/unique

/unique

/unique オプションを /test オプションと共に使用します。 /unique オプションは、/test オプションで指定された値と一意に一致する場合にだけテストを実行するように MSTest.exe に指示します。

たとえば、テスト コンテナー MyTestProject には、MethodTest1 および MethodTest10 という名前のテストが含まれています。

次のコマンド ラインを実行します。

mstest /testcontainer:testproject2.dll /test:MethodTest1

'MethodTest1' は 'MethodTest10' の部分文字列であるため、このコマンド ラインは MethodTest1 および MethodTest10 の両方のテストを実行します。

次のコマンド ラインを実行します。

mstest /testcontainer:testproject2.dll /test:MethodTest1 /unique

この場合、このテスト名には一意の一致がないため、エラーになります。 テストの [プロパティ] ビューで一覧表示されているテストの ID を使用して、テスト名を一意に識別できます。

/usestderr

/usestderr

このオプションを使用すると、次の情報が標準エラー出力に書き込まれます。

  • 結果が "失敗"、"中止"、"エラー"、"タイムアウト"、"実行不可能"、または "実行なし" であったテスト

  • 実行レベル エラー

  • コマンド ライン引数の解析エラー

  • テスト実行の結果が失敗であった場合の実行の概要

このオプションを指定しない場合、すべての出力が標準出力に送信されます。

/detail

/detail:[プロパティ 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 でテスト結果を保存して開く」を参照してください。

指定したテスト ケースにプロパティが存在する場合、その情報は出力結果の概要に含まれます。

たとえば、次のコマンド ラインを実行します。

mstest /testcontainer:Errors.dll /detail:testtype

このコマンド ラインでは、テストの種類の情報を含む次のような出力を生成します。

...
Results                    Top Level Tests
--------                   -----------------
Inconclusive               TestProject2.BankAccountTest.CreditTest
[testtype] = Unit Test
...

参照

概念

テスト結果の確認

コマンド ラインからの自動テストの実行