【问题标题】:C# Reflection unable to find NUnit attributesC# 反射无法找到 NUnit 属性
【发布时间】:2016-06-23 22:59:54
【问题描述】:

在带有 Visual Studio 2015 的 .NET 4.5 框架上使用 C#,我正在尝试使用反射从提供的 .dll 文件中查找 NUnit 测试和测试用例。我遇到的问题是反射查询方法(例如IsDefinedGetCustomAttributes)要求属性直接继承自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


【解决方案1】:

正如在回复 dbugger 评论时指出的,我在上传的测试和使用反射的系统之间的 NUnit 版本不匹配。在这种情况下,我将打开一个关于向后兼容性的新帖子,可在此处找到:Backwards compatibility with C# Reflection and NUnit Versions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-21
    • 2013-01-16
    • 1970-01-01
    • 2017-05-31
    • 2016-05-27
    • 2023-04-10
    • 2010-09-22
    • 2010-10-22
    相关资源
    最近更新 更多