【问题标题】:The NUnit 3.0 driver cannot support this test assemblyNUnit 3.0 驱动程序不支持此测试程序集
【发布时间】:2016-07-04 10:09:30
【问题描述】:

这是一个自我回答的问题,但如果有人可以提供更好的答案,请这样做!

我正在尝试开始使用 NUnit。我使用 MSI 安装程序安装了 NUnit 3.4,还安装了 3.2 测试适配器。然后我为单元测试创​​建了一个简单的项目和一个单独的类库。然后我添加了对 NUnit 框架的引用。该库构建良好,但是当尝试通过测试适配器或使用命令行运行器运行它时,我收到以下消息:

NUnit 3.0 驱动程序不支持此测试程序集。使用平台 特定的跑步者。

没有关于为什么它不能支持这种特殊的无害测试程序集的具体细节。测试适配器也提供了一个异常名称,但也不是特别有用。

环境详细信息:Microsoft Visual Studio 2013、.Net 4.5。

问题是:发生了什么,最重要的是,如何解决?

【问题讨论】:

    标签: .net unit-testing nunit


    【解决方案1】:

    在玩弄引用时,我注意到无论我从列表中选择什么 NUnit 框架,当我关闭项目属性窗口并再次打开它时,我都会看到对 portable NUnit 的引用框架。解决方案管理器中参考列表中的工具提示还显示了包含“便携式”一词的路径。似乎测试运行程序不喜欢这个可移植框架的某些东西。

    由于我不需要这个可移植的框架,所以我尝试专门添加 4.5 框架。它没有用。无论我选择什么,便携框架都会弹出!

    所以我决定用简单的方法卸载 NUnit,然后使用“自定义”安装重新安装它,并取消选择可移植框架。像魅力一样工作!现在,当我添加 NUnit 框架作为参考时,添加了 4.5 框架,它使用测试适配器运行良好,就在 Visual Studio 中。

    如果有人知道如何在不卸载可移植 NUnit 框架的情况下修复它,欢迎您发布另一个答案!

    【讨论】:

    • 奇怪的是,Visual Studio 更喜欢 PCL 程序集而不是 .NET 4.5 版本。您的测试程序集的目标是什么版本的 .NET?
    • 另外,有趣的是,您更喜欢 MSI 安装程序而不是 NuGet。我们正在考虑弃用 MSI 以支持 NuGet。我很想知道您为什么喜欢安装版。
    • @RobProuse,没有理由更喜欢 MSI。我只是还不熟悉 NuGet(我通常是 Java 程序员),而且 MSI 似乎是安装东西的常用方式。刚刚为 NSubstitute 尝试了 NuGet,效果很好。也许这次我应该再次卸载 NUnit 并使用 NuGet 安装。至于程序集,我只是用默认设置创建了一个类库——没什么特别的。它自动设置为目标 4.5。
    • @RobProuse,哦,另一个更喜欢 MSI 的原因实际上是我的开发机器上没有互联网访问权限(安全策略),所以使用任何类型的在线存储库访问变得有点复杂。我可能可以设置 NuGet 镜像/代理或其他任何东西,但这需要的不仅仅是“点击安装”。
    【解决方案2】:

    我在https://github.com/nunit/nunit/issues/1646为此创建了一个问题

    这已在第一个 NUnit 3.0 版本中进行了测试,然后就可以使用,但新版本的 Visual Studio 可能会以不同的方式解析引用。

    解决方法是浏览您想要的 NUnit 版本,而不是从 Assemblies | 中选择它。扩展。 NUnit 框架的 .NET 4.5 版本默认安装到 C:\Program Files (x86)\NUnit.org\framework\{version}\net-4.5

    【讨论】:

    • 手动浏览文件?我考虑过,但我不喜欢将绝对路径硬连接到项目中的想法。
    • 我同意绝对路径的问题,但在我们解决这个问题之前,这是我能想到的唯一解决方法。如果这是一个问题并且由于缺乏 Internet 而 NuGet 对您不起作用,您可以将 NUnit 添加到 lib 目录并使用相对路径。尽管如此,NuGet 还是要走的路。没有它,现在很难进行 .NET 开发。
    • 这当然不是唯一的解决方法。对于那些需要便携式组件的人来说,这可能是唯一的解决方法,但我不需要它。所以不安装它的选项对我来说是一个更好的解决方法。
    【解决方案3】:

    这个错误也发生在我身上,但在我拥有的 50 个测试程序集中只有 1 个发生。我通过为失败的项目卸载 NUnit NuGet 包来修复它,然后重新安装它。似乎已解决的问题是项目文件中的提示路径不正确。修复此问题后,测试程序集运行时没有出现该错误。

    【讨论】:

    • NuGet 根本不会发生在我身上。问题出在 MSI 安装上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-24
    相关资源
    最近更新 更多