【发布时间】:2016-06-23 22:59:54
【问题描述】:
在带有 Visual Studio 2015 的 .NET 4.5 框架上使用 C#,我正在尝试使用反射从提供的 .dll 文件中查找 NUnit 测试和测试用例。我遇到的问题是反射查询方法(例如IsDefined 和GetCustomAttributes)要求属性直接继承自System.Attribute。
在 NUnit 3.2.1(截至 2016 年 6 月的最新稳定版本)中,属性继承自 NUnitAttribute 类,而后者又继承自 System.Attribute。这可以防止反射找到标记的 NUnit 测试。作为临时解决方法,我已降级到 NUnit 2.6.4,其中属性直接继承自 System.Attribute。将来,我想构建对新版本 NUnit 的支持。
有人对此问题有解决方案或建议吗?我四处搜索,但似乎找不到让反射方法“意识到”System.Attribute 在继承链上更靠前的方法。
【问题讨论】:
-
我可以毫无问题地从 nUnit 3.2.1 夹具和方法中获取自定义属性。可能想发布您的代码。
-
原来我的 NUnit 版本不匹配。使用 3.2.1 版本上传测试,但使用反射的系统有 2.6.4。向后兼容性是一个不同的问题,所以我将其标记为已关闭并打开一个新线程。感谢您的帮助!
标签: c# reflection nunit