NUnit v MSTestの一般的な質問に対処する古い質問がたくさんあることに気づきました 2008年までのバージョンのVisual Studio (- これ など)。
マイクロソフトには、3番目のバージョンで物事を正しく行ってきた歴史があります。 MSTestの場合、それはVS2010です。
彼らはそうした MSTest? NUnitよりも新しいプロジェクトで使用しますか?
私の特定の懸念:
(ReSharperを使用しているため、テストランナーは問題ではありません。ここ数年はNUnitを使用しています。TFSはありません。)
私の推奨事項は次のとおりです:NUnitがあなたを満足させる場合-それを使用して、MSTestを忘れてください
スレッドの古い情報を修正するには、
私は主にNUnit、一部のxUnit、一部のMSTestを使用しました。機能的には同等に見えますが、MSTestテストランナーは好きではありません。 Visual Studioで実行されるので、画面が混雑するか、別のモニターに表示されるため、Visual Studioに移動するたびに邪魔になります。 (私は別のモニターでNUnitを実行しますが、ビジュアルスタジオにフォーカスするたびにそのモニターのすべてをカバーするわけではありません)。失敗したテストとその理由を特定するには、あまりにも多くのクリックが必要です。
NUnitは、テストが失敗するまでバックグラウンドで実行できます。テストが失敗すると、破壊テストに関する情報が表示されます。これは、赤、緑、リファクタリングをスムーズに進めるための理想的なようです。
いいえ。 appdomainsとAssembly resolvingに関する同じ問題がまだ残っています。他の機能テストやTeam Systemとの統合の新しい良さを望まない限り、私は避けます。
CruseControl.netについてはあまり知りませんが、テストをデバッグできます。現在、TFSも使用しておらず、MSTestが機能しています。
64ビットモードでテストを実行する予定がある場合は、NUnitを使用してください。 MsTestはx86のみです。
MSUnitは、実際の実行環境とは異なる条件下でテストケースを実行します。具体的には、デプロイされたファイルは、実際のプロジェクトを実行したときにデプロイされるファイルとは異なります。それでも、MSUnitによってデプロイされるファイルを指定する[DeploymentItem] -Attributeがあります。したがって、アプリケーションが次のような外部ファイルに依存している場合
mSUnitテストは実行環境でファイルシステムがどのように見えるかをカバーしないため、MSUnitは正しい選択ではありません。ファイルを配置するためのVisual Studioプロジェクトファイル設定(常にコピー、コンテンツなど)は、MSUnitランナーによって無視されます。したがって、これらの設定はテストできません。
2つの主な違いの1つは、MSTestがテストを実行するたびに現在のDLLのコピーを作成することです。 TDDを実行してテストを頻繁に実行している場合、これによりハードドライブの容量が大量に消費される可能性があります。
MSTestを使用している場合、この設定は[ツール]> [オプション]> [テストツール]> [テスト実行]で変更できます。 Visual Studio 2010では、「古いテスト結果の数を制限する」はデフォルトで25に設定されています。通常は1に変更します。