1

NUnit 属性を使用するカスタム テスト ケース ランナーがあります。リフレクションを使用してテスト DLL を読み込み、次のようにメソッドに [Test] 属性が含まれているかどうかを確認します。

method.IsDefined(typeof(TestAttribute), true)

ただし、テスト DLL とランナーが異なるバージョンの NUnit を参照している場合、これは false を返すようです。たとえば、ランナーは NUnit 2.6 を使用し、テスト DLL はリファレンスで NUnit 2.5 を使用しています。DLL のバージョンが異なる場合に true を返すこのチェックを行う方法はありますか?

4

1 に答える 1

0

属性の完全な名前を確認するだけです。属性には他のメタデータはなく、他のメタデータTestAttributeと間違われるようなこともありません。

bool isTestMethod = method.GetCustomAttributes(false).Any(attribute => attribute.GetType().FullName == typeof(TestAttribute).FullName);

それについて本当に厳密にしたい場合は、カスタム テスト ランナーの app.config ファイルを介してアセンブリ バインディングのリダイレクトを行う必要があります。

于 2013-01-02T06:07:27.413 に答える