web-dev-qa-db-ja.com

NUnit対Visual Studio 2010のMSTest?

NUnit v MSTestの一般的な質問に対処する古い質問がたくさんあることに気づきました 2008年までのバージョンのVisual Studio (- これ など)。

マイクロソフトには、3番目のバージョンで物事を正しく行ってきた歴史があります。 MSTestの場合、それはVS2010です。

彼らはそうした MSTest? NUnitよりも新しいプロジェクトで使用しますか?

私の特定の懸念:

  • 速度
  • cruiseControl.NET内でのテストの実行(コマンドラインまたはMSBuildタスク)
  • cC.NETからのコードカバレッジレポート
  • mSTestテストをデバッグモードで実行できますか

(ReSharperを使用しているため、テストランナーは問題ではありません。ここ数年はNUnitを使用しています。TFSはありません。)

40
David White
  • リストアイテムの速度は同じですが、MsTestは毎回テストを実行するためのフォルダーを作成するため、少し遅い場合があります
  • MSBuidとCC.Netは大きな問題です。 VSがないコンピューターでMSTestを実行することはできません(2010については100とは言えませんが、2008ではそうです)。
  • わかりません、ごめんなさい
  • はい、ビジュアルスタジオからできます

私の推奨事項は次のとおりです:NUnitがあなたを満足させる場合-それを使用して、MSTestを忘れてください

31
Andrey

スレッドの古い情報を修正するには、

  1. それはIS 2010年に64ビットテストを実行することが可能です
  2. VS2008以降、MSTESTでディレクトリを作成し、バイナリをコピーする必要はありません。展開を無効にするだけで、2010年はデフォルトですが、2008年に設定する必要があります。
  3. 2010 MSTESTはより高速ですが、ロード/ウェブ/ UIテストも実行する一般化されたテストフレームワークとして、低速化につながる設計の妥協点があります。 Jamie Cansdaleは、TestDriven.netのMSTESTのサポートの最新リリースにより、パフォーマンスを向上させることができたようです。
14
Euan Garden

私は主にNUnit、一部のxUnit、一部のMSTestを使用しました。機能的には同等に見えますが、MSTestテストランナーは好きではありません。 Visual Studioで実行されるので、画面が混雑するか、別のモニターに表示されるため、Visual Studioに移動するたびに邪魔になります。 (私は別のモニターでNUnitを実行しますが、ビジュアルスタジオにフォーカスするたびにそのモニターのすべてをカバーするわけではありません)。失敗したテストとその理由を特定するには、あまりにも多くのクリックが必要です。

NUnitは、テストが失敗するまでバックグラウンドで実行できます。テストが失敗すると、破壊テストに関する情報が表示されます。これは、赤、緑、リファクタリングをスムーズに進めるための理想的なようです。

5

いいえ。 appdomainsとAssembly resolvingに関する同じ問題がまだ残っています。他の機能テストやTeam Systemとの統合の新しい良さを望まない限り、私は避けます。

2
Preet Sangha

CruseControl.netについてはあまり知りませんが、テストをデバッグできます。現在、TFSも使用しておらず、MSTestが機能しています。

0

64ビットモードでテストを実行する予定がある場合は、NUnitを使用してください。 MsTestはx86のみです。

0
bjornhol

MSUnitは、実際の実行環境とは異なる条件下でテストケースを実行します。具体的には、デプロイされたファイルは、実際のプロジェクトを実行したときにデプロイされるファイルとは異なります。それでも、MSUnitによってデプロイされるファイルを指定する[DeploymentItem] -Attributeがあります。したがって、アプリケーションが次のような外部ファイルに依存している場合

  • データベースファイル
  • データベース構成ファイル
  • アプリケーション構成ファイル
  • ...

mSUnitテストは実行環境でファイルシステムがどのように見えるかをカバーしないため、MSUnitは正しい選択ではありません。ファイルを配置するためのVisual Studioプロジェクトファイル設定(常にコピー、コンテンツなど)は、MSUnitランナーによって無視されます。したがって、これらの設定はテストできません。

0
mischka

2つの主な違いの1つは、MSTestがテストを実行するたびに現在のDLLのコピーを作成することです。 TDDを実行してテストを頻繁に実行している場合、これによりハードドライブの容量が大量に消費される可能性があります。

MSTestを使用している場合、この設定は[ツール]> [オプション]> [テストツール]> [テスト実行]で変更できます。 Visual Studio 2010では、「古いテスト結果の数を制限する」はデフォルトで25に設定されています。通常は1に変更します。

0
Ryan Lundy