ユニットテストにNUnitとMSTestを使用する方法の切り替え 質問する

ユニットテストにNUnitとMSTestを使用する方法の切り替え 質問する

他の開発者が NUnit または MSTest を使用してソリューションの同じ単体テストを利用できるように、.NET ソリューション (C#、.NET 2.0) を構成するにはどうすればよいでしょうか?

背景:

このプロジェクトでは、一部の開発者が VS2005 Team Edition を使用し、他の開発者が VS2005 Pro を使用しているため、すべての開発者が MSTest を実行できるわけではありません。これはエンタープライズ プロジェクトであるため、チームは TestDriven.net または ReSharper を使用することができません。VS でこれらの製品のいずれかを使用すればこの問題が解決することはわかっていますが、ライセンスの購入を承認するのにかかる時間を考えると、これらの製品のいずれかを購入することは現実的な選択肢ではありません。

ご協力ありがとうございます、MagicAndi。

ベストアンサー1

私が見つけた最良の解決策は、この中で見つけた簡単なコードを使うことです記事各 .cs テスト ファイルの名前空間セクションで次のコード スニペットを使用するだけです。

#if NUNIT
using TestClass = NUnit.Framework.TestFixtureAttribute;
using TestMethod = NUnit.Framework.TestAttribute;
using TestCleanup = NUnit.Framework.TearDownAttribute;
using TestInitialize = NUnit.Framework.SetUpAttribute;
using ClassCleanup = NUnit.Framework.TestFixtureTearDownAttribute;
using ClassInitialize = NUnit.Framework.TestFixtureSetUpAttribute;
#else
using Microsoft.VisualStudio.TestTools.UnitTesting;
#endif

using NUnitAssert = NUnit.Framework.Assert;
using MsAssert = Microsoft.VisualStudio.TestTools.UnitTesting.Assert;

コード スニペットのはNUNIT、ソリューションのカスタム ビルド構成を参照します。これは、VS 構成マネージャー (VS ツール バーまたはソリューション プロパティ経由) を使用して作成できます。また、MSTest TestMethod 属性を使用するには、メソッド上の NUnit の Test 属性のすべてのインスタンスを置き換える必要があります (またはその逆)。

編集: 上記のコードスニペットを更新して、問題の修正の可能性を含めました。ジェイミー・アイデコメントで指摘された。注意:私はこの修正をテストできていない。更新されたコードスニペットは、この投稿のSimonのコメントから引用したものだ。ブログ投稿

おすすめ記事