MSTest.exe コマンド ライン オプション
更新 : 2007 年 11 月
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」を参照してください。 |
/test:[test name] |
実行するテストの名前を指定します。詳細については、「/test 」を参照してください。 |
/noisolation |
MSTest.exe プロセス内でテストを実行します。このオプションを指定すると、テストの実行速度は向上しますが、MSTest.exe プロセスのリスクも高まります。 |
/runconfig:[file name] |
指定した実行構成ファイルを使用します。 例 : /runconfig:localtestrun.Testrunconfig 詳細については、「/runconfig」を参照してください。
メモ :
スマート デバイスの単体テストを実行するときには、/runconfig オプションを指定してください。
|
/resultsfile:[file name] |
テスト実行の結果を指定したファイルに保存します。 例 : /resultsfile:testResults.trx 詳細については、「/resultsfile」を参照してください。 |
/unique |
指定した /test に対して一意の対応が 1 つだけ見つかった場合のみテストを実行します。詳細については、「/unique」を参照してください。 |
/detail:[property id] |
テスト結果の他に、値を表示するプロパティがあれば、その名前を指定します。詳細については、「/detail」を参照してください。 |
/help |
MSTest.exe の使用法に関する説明を表示します (省略形は /? または /h です)。 |
/nologo |
著作権情報および著作権メッセージを表示しません。 |
テスト結果を発行するためのコマンド ライン オプション
これらのオプションの詳細については、「テスト結果を発行するためのコマンド ライン オプション」を参照してください。
/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 と指定します。 |
テスト アセンブリには、1 つのテスト プロジェクトのテストが含まれているため、ソリューションのテスト コンテナの数は、ソリューション内のテスト プロジェクトの数に一致します。
メモ : |
---|
テスト メタデータ ファイルにも実行できるテストが一覧表示されるため、/testcontainer オプションと /testmetadata オプションの両方を 1 つのコマンド ラインで指定しないでください。これを行うと指示があいまいと見なされ、エラーが発生する可能性があります。 |
/testmetadata
/testmetadata:[file name]
/testmetadata オプションを使用すると、複数のテスト コンテナでテストを実行できます。
[テスト リスト エディタ] ウィンドウを使用してテスト リストを作成すると、ソリューションのテスト メタデータ ファイルが作成されます。このファイルには、[テスト リスト エディタ] ウィンドウに一覧表示されるすべてのテストに関する情報が含まれます。これらは、ソリューションのすべてのテスト プロジェクトに存在するすべてのテストです。
テストの作成や削除、またはテスト プロパティの変更など、[テスト リスト エディタ] ウィンドウに反映される変更を行うことによってのみ、テスト メタデータ ファイルを変更することができます。
メモ : |
---|
テスト コンテナには実行するテストが含まれているため、/testcontainer オプションと /testmetadata オプションの両方を 1 つのコマンド ラインで指定しないでください。これを行うと指示があいまいと見なされ、エラーが発生する可能性があります。 |
テスト メタデータ ファイルは、ソリューション フォルダに作成される XML ファイルです。このファイルは、ソリューション エクスプローラの [Solution Items] ノードの下に表示されます。テスト メタデータ ファイルには、.vsmdi という拡張子が付いており、[テスト リスト エディタ] ウィンドウに関連付けられています。つまり、.vsmdi ファイルを Windows エクスプローラでダブルクリックすると、Visual Studio が開き、その内容が表示されます。ソリューションのテスト プロジェクト内のすべてのテストは [テスト リスト エディタ] ウィンドウに表示されます。
/testmetadata オプションを使用する場合、/test オプションまたは /testlist オプション、あるいはその両方を使用して実行する特定のテストを指定することをお勧めします。
/testlist
/testlist:[test list path]
/testlist オプションは、テスト メタデータ ファイルで指定された、実行するテストのリストです。複数のテスト リストに含まれているテストを実行するには、/testlist を複数回使用します。
メモ : |
---|
/testmetadata オプションも使用している場合のみ、/testlist オプションを使用できます。 |
/testlist オプションと /test オプションは同時に使用できます。これは、[テスト リスト エディタ] ウィンドウでテスト リストと 1 つ以上のテストの両方を選択し、[テストの実行] をクリックする操作と同じです。
/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 プロセスがクラッシュする可能性があるため、全体としてテストの実行のリスクが高まります。
/runconfig
/runconfig:[file name]
このオプションを使用すると、実行構成ファイルを指定できます。例 : /runconfig:localtestrun.Testrunconfig
実行構成ファイルは、/testmetadata オプションを使用するなどその他の方法でも指定できます。実行構成ファイルの仕様を決定する規則はここで記述されます。
/runconfig オプションを使用する場合、/testmetadata オプションも使用しているかどうかに関係なく、ここで指定されたファイルが使用されます。
/testmetadata オプションを使用して、アクティブな実行構成ファイルを指定するメタデータ ファイルを指す場合、その実行構成ファイルは /runconfig オプションを使用しない場合に使用されます。
/runconfig オプションを使用しない場合で、テスト メタデータ ファイルの実行構成ファイルも指定しない場合、テスト実行では既定の実行構成ファイルを使用します。
メモ : |
---|
スマート デバイスの単体テストを実行するときには、/runconfig オプションを指定してください。 |
/resultsfile
/resultsfile:[file name]
このオプションを使用すると、テスト実行の結果を指定したファイルに保存できます。例 : /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
このコマンド ラインでは、テスト MethodTest1 のみを実行します。
/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 は、テストの種類により異なります。そのため、このリストは単なる目安です。特に、Team System テスト ツール に含まれるテスト以外の種類のテストを使用している場合、プロパティの選択は異なります。使用できるプロパティ ID を確認するには、テスト実行によって作成されるテスト結果ファイルをチェックします。テスト結果ファイルの詳細については、「方法 : テスト結果をエクスポートする」を参照してください。 |
指定したテスト ケースにプロパティが存在する場合、その情報は出力結果の概要に含まれます。
たとえば、次のコマンド ラインを実行します。
mstest /testcontainer:Errors.dll /detail:testtype
このコマンド ラインでは、テストの種類の情報を含む次のような出力を生成します。
...Results Top Level Tests-------- -----------------Inconclusive TestProject2.BankAccountTest.CreditTest[testtype] = Unit Test...