Visual Studio 2015で.NET 4.5 FrameworkでC#を使用して、Reflectionを使用して、提供された.dllファイルからNUnitテストとテストケースを見つけようとしています。私が取り組んでいる問題は、リフレクションクエリメソッド(IsDefined
とGetCustomAttributes
など)は、属性がSystem.Attribute
から直接継承されている必要があるということです。C#ReflectionがNUnit属性を見つけることができません
NUnit 3.2.1(2016年6月現在の最新の安定版)では、属性はNUnitAttribute
クラスから継承し、次にSystem.Attribute
を継承します。これにより、ReflectionがマークされたNUnitテストを見つけるのを防ぎます。一時的な回避策として、属性を直接System.Attribute
から継承するNUnit 2.6.4にダウングレードしました。将来、NUnitの新しいバージョンのサポートを構築したいと考えています。
この問題の解決策や提案はありますか?私は周りを探索しましたが、ReflectionメソッドをSystem.Attribute
が継承チェーンの上にあることを「実現」させる方法を見つけることができないようです。
カスタム属性をnUnit 3.2.1のフィクスチャとメソッドから得ることができますが、これは問題ありません。あなたのコードを投稿したいかもしれません。 – dbugger
NUnitのバージョンが一致しませんでした。バージョン3.2.1でテストがアップロードされていましたが、リフレクションを使用しているシステムでは2.6.4でした。下位互換性は異なる質問ですので、これを閉じたものとしてマークして新しいスレッドを開きます。ご協力いただきありがとうございます! –