NUnit 3.0 驱动程序不支持此测试程序集

The NUnit 3.0 driver cannot support this test assembly

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

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

The NUnit 3.0 driver cannot support this test assembly. Use a platform specific runner.

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

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

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

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

因为不需要这个可移植的框架,所以特意添加了4.5的框架。它没有用。无论我选择什么,便携框架都会弹出!

所以我决定采用简单的方法卸载 NUnit,然后使用取消选择便携式框架的“自定义”安装重新安装它。工作起来很有魅力!现在,当我添加 NUnit 框架作为参考时,添加了 4.5 框架,并且使用测试适配器运行良好,就在 Visual Studio.

如果有人知道如何在不卸载便携式 NUnit 框架的情况下修复它,欢迎您post另一个答案!

我在 https://github.com/nunit/nunit/issues/1646

创建了一个问题

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

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

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