MSDN here と議論された here によると、MSTest.exe
を使用してコマンドラインからテストを実行できます-これはIDE(私のような大きなソリューションに取り組んでいる場合は特に遅くなります)。
私の質問は、どのようにMSTest.exe
を使用してallテストをsolution?このコマンドには、/test
オプションで指定されたoneアセンブリのテストをフィルターする/container
オプションのみがあります。すべてのNテストアセンブリをソリューションに含めることができる場合、このコマンドをN回呼び出すことしか考えられません(!?)さらに、実行後の結果はアセンブリごとの基本であるため、失敗したテストを取得するのは簡単ではありません/合格しました。
より良い方法をご存知の場合は、共有してください!ありがとうございました!
testmetadata
引数を使用してこれを達成し、.vsmdiファイルを指すようにしました。
説明したとおり ここ 。
例えば。:
mstest /testmetadata:mySolution.vsmdi
ただし、testmetadata
はより脆弱になる可能性があることに注意してください(例: 空のテストリストと無視属性を組み合わせると、「指定されたキャストが無効です」 )。テストクラスを含むすべてのDLLを使用してバッチを作成する方が、信頼性が高くなります。
何もインストールしたりvsmdi
ファイルを生成したりせずに、同じものが必要だったので、以下のPowerShell
スクリプトを考え出しました。 [〜#〜] all [〜#〜]テストをoneフォルダーおよびそのサブフォルダーに対するコマンド(solutionではありませんが、私には問題ありません)。
このスクリプトをよりエレガントにする方法を提案してください:
$x = ""; dir *\bin\*test*.dll -Recurse | foreach { $x += "/testcontainer:""$_"" " }; iex "mstest $x"
手順:
Gallio テストに付属している Gallio.Echo テストランナーを確認することをお勧めします。自動化プラットフォーム。多くの便利なレポートツールとテストランナーを備えた無料の(OSS)パッケージであり、既存のほとんどのテストフレームワーク(MbUnit、NUnit、MSTest、xUnitなど)をサポートしています。
具体的には、 Gallio.Echo は多目的なコマンドラインテストランナーです。テストアセンブリ、さまざまなフィルター、および多くの追加オプションのリストを指定できます。 Gallioはテスト結果を単一のレポート(Xml、Html、Zipなど)に統合します。