5

MSTest.exeを使用してコマンドラインからテストを実行するためにプレイリストファイルを使用する方法はありますか?私は、次のコマンドラインを使用してみましたが、それはして失敗し、エラー -mstestコマンドラインからプレイリストファイルのテストを実行する方法

mstest.exe /testmetadata:test.playlist 
The file 'test.playlist' has unknown format and cannot be converted to the current version. 

Note that mstest version is 11.0.50727.1 and I am using VS 2012 

私のプレイリストファイルは単なるXML要素のカップル

<Playlist Version="1.0"> 
    <Add Test="MyTest" /> 
    <Add Test="AnotherTest" /> 
</Playlist> 

答えて

6

mstest.exeが廃止されましたが含まれています。 Visual Studio 2012 SP1以降では、vstest.console.exeを使用しています。それでもあなたのplaylistファイルは実行されません。 Microsoftには機能要求が公開されています。

テストリストも非難されていますが、今は状態が悪いです。他のテストとの区別をするための唯一の方法は、使用することです。Test Categories

もう1つの方法は、別のユニットテストフレームワークに切り替えることです。

私は良い答えがあったらいいですね。

+0

私がしたい:

ので、myTestFile.dllであり、いくつかの一般的なテスト "MethodName1"、 "MethodName2"、および "MethodName3"、のためにmyOtherTestFile.dll次のコマンドを生成しますあなたがどのように乗っているか知りたいのです。私は真剣に別のフレームワークに移行することも検討していますが、MSテストは完璧に動作する場合でも大変です。 –

+0

テストカテゴリを使用し、パラメータとしてDLLとテストカテゴリを実行しました。それは愚かです! 1つのようなDIフレームワークで使用する場合、MS Testには他の問題があります。ハードリファレンスがない限り、MSテストはそれがよく分かっていると思って、そのリファレンスをターゲットのテストディレクトリにコピーしないので、必要なリファレンスがすべて残ってしまいます。 –

1

あなたは代わりの.playlist

順序テストはVS2013で作成および編集することができ.orderedtestを使用することができます。フォーマットは.playlistと類似していますが、テストGUIDへのリンクが含まれているため、プログラムによって変更するのがより複雑です。

MSTest.exe /testcontainer:mylist.orderedtest 

それはVS2012で動作するかどうかわからない:で実行コマンドラインから

、。

1

Nate Zauggが言及したように、現在のところそれを行う方法はありませんが、プログラムのリストを生成することはかなり簡単です。

プレイリストファイルは単なるXMLです。子ノードを持つルートノードを持っています。各ノードの "Test"属性を読み取って、実行したい各テストのFullyQualifiedNamesを取得することができます。おそらく、この時点でテスト名の前に名前空間とクラスを取り除くことができます。

vstest.console.exe(VS 2012で使用する)を使用できる場合は、以下の手順に従います。 vstest.console.exeには、プレイリストに記載されている各テストを呼び出すために使用できるオプションのパラメータ "TestCaseFilter"があります。それは特にエレガントではありませんが、うまくいくはずです。

vstest.console.exe myTestFile.dll myOtherTestFile.dll /Tests:MethodName1,MethodName2,MethodName3" 
関連する問題