2009-06-06 5 views
1

私は新しいC#アプリケーションを開始しようとしています。私はそれをクロスプラットフォームにしたい、つまりMonoを使用して動作するはずですが、私の主要な開発プラットフォームはVisual Studioです。新しい.NETプロジェクトの推奨単体テストフレームワーク

今、私はテストフレームワークを検討していますが、将来的にはポータブルで信頼できるもののどちらを取るのだろうかと思います。今のところ、nUnitは標準のようですが、xUnit.netの方がより積極的に開発されているように、これがより良いかどうかは疑問です。それとも、私はMSTestだけを使うべきですか?結局のところ、私はMSTestが数年間サポートされることを期待できます。 Javaの場合、どこでもサポートされているので、はっきりとJUnitになりますが、.NETのランドスケープははるかに断片化しているようです。

したがって、主な質問は機能などではありません(MSTestはその方向にはあまりにも恒星ではありません)。むしろ長期的な信頼性です。この点で、どのユニットテストフレームワークをお勧めできますか?

答えて

3

MSTestはもちろんポータブルではなく、Visual Studioに関連付けられています。 Monoをターゲットにしている場合、テストはMonoでも実行するのが理想的です。 Mono itself uses nUnit、またはnUnitLite - あなたの決定に影響を与える可能性があります。あなたのツールセットにTestDriven.NetまたはResharperを追加すると、VSの中に簡単にNUnitのを実行することができます - しかし、それはあなたが私はあなたが主観的な答えを探していると思いますNUnitit

1

を試みることができる問題だ場合、彼らは無料ではありません。私はNUnitが好きです。 「インターフェース」の安定性は私には何の問題も生じていない。どのIDEでもうまく動作し、多くのビルドツールと統合されています。また、あなたがJUnitを知っているなら、あなたは非常に自然なNUnitを見つけるでしょう。

1

NUnitは本当にどこでもサポートされています。私たち(200人以上の開発者)のショップはMSTestからNUnitに移りました。これまでツールサポートが不足しているという問題に遭遇していませんでした。実際、NUnitのサポートインフラストラクチャは非常に広範囲に及んでいます。これは、ハドソン(Hudson)やクルーズコントロール(Cruise Control)などの継続的なインテグレーションシステムを対象とする

私たちは、NUnitの開発が引き続き非常に活発であることを発見しています。バージョン2.5にはXUnitから取得した

Assert.Throws
などの機能が含まれていますが、使用するテストとの下位互換性は維持されます
[ExpectedException]

MSTestにはこれらの機能がほとんどありません。

[TestCase]
のようなものは、オープンソースのフレームワークで非常に役立ちます。それらは単に「綿毛」ではなく、書き込みとデバッグに必要なテストコードの量を減らします。

MSTestの主な点は、Team Foundation Serverとの緊密な統合です。これにより、単体テストをバグレポートやビルド番号とリンクさせることができます。使い方が分かれば便利な機能です。