JetBrains Resharper 9 Ultimate Test Runner 错误:NUnit.Core.UnsupportedFrameworkException:跳过加载程序集 MyAss

Posted

技术标签:

【中文标题】JetBrains Resharper 9 Ultimate Test Runner 错误:NUnit.Core.UnsupportedFrameworkException:跳过加载程序集 MyAssembly【英文标题】:JetBrains Resharper 9 Ultimate Test Runner error: NUnit.Core.UnsupportedFrameworkException: Skipped loading assembly MyAssemblyJetBrains Resharper 9 Ultimate Test Runner 错误:NUnit.Core.UnsupportedFrameworkException:跳过加载程序集 MyAssembly 【发布时间】:2016-02-26 10:02:48 【问题描述】:

这似乎是 JetBrains Resharper 9.1 Ultimate Test Runner 引用旧版本的 NUnit 时出现的错误。我在我的程序集中使用 NUnit 3.0。

[Window Title]
Unit Test Runner

[Main Instruction]
Unit Test Runner failed to run tests

[Expanded Information]
at NUnit.Core.Builders.TestAssemblyBuilder.GetCandidateFixtureTypes(Assembly assembly, String ns)
at NUnit.Core.Builders.TestAssemblyBuilder.GetFixtures(Assembly assembly, String ns)
at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites)
at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites)
at NUnit.Core.TestSuiteBuilder.Build(TestPackage package)
at NUnit.Core.SimpleTestRunner.Load(TestPackage package)
at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
at NUnit.Core.RemoteTestRunner.Load(TestPackage package)
at JetBrains.ReSharper.UnitTestRunner.nUnit.BuiltInNUnitRunner.RunTests(IRemoteTaskServer server, Dictionary`2 tests, Dictionary`2 fixtures, List`1 explicitly, Boolean useAddins, List`1 assemblies)

编辑: 升级到 Resharper 版本 10 后问题就消失了。

【问题讨论】:

【参考方案1】:

如已接受的答案中所述,ReSharper 9 不支持 NUnit 3。 所述的解决方案确实有效(即更新到 ReSharper 10),但是,对于那些没有此选项(例如许可)的人,您可以按照以下步骤降级您的 NUnit 版本:

    通过转到工具 -> Nuget 包管理器 -> 包管理器控制台打开 Nuget 包管理器控制台 在弹出的控制台中(通常在底部),在“默认项目:”下拉菜单下选择您要降级的测试项目 运行以下命令 Uninstall-Package NUnit 其次是 Install-Package NUnit -Version 2.6.4

您的测试现在应该使用 ReSharper 9 运行。

【讨论】:

【参考方案2】:

正如 Yousefi 所提到的,此问题已通过更新到 ReSharper 版本 10 得到解决。我遇到了同样的问题,并且解决了。

【讨论】:

不幸的是,我没有重新安装 resharper 10 Ultimate,但问题仍然存在。 @rob 我还必须重新启动 Visual Studio。你试过了吗? 想指出“升级到 Resharper 10”不是一个可接受的解决此问题的方法。这只有在您的许可证允许的情况下才有可能。应该有一个更好的解决方案也适用于 9.1。我使用的是 9.2 版,遇到了同样的问题。 VS2015 将 nunit 降级到 3.0 之前的版本似乎可以解决问题。虽然这对我来说也不是一个可以接受的解决方案,但它是每个人都可以做到的。 一个更清晰的错误消息会很好,但 JetBrains 需要升级是公平的 - 我们不能指望它们在旧版本的 ReSharper 中无限期支持所有未来版本的 NUnit。【参考方案3】:

正如另一个答案中提到的,真正的解决方法是升级到 ReSharper 10。但如果你不能这样做,你可以禁用 ReSharper 9 的单元测试功能并回退到 Visual Studio 的内置测试资源管理器。

为此:

    选择 ReSharper > Options... 菜单项,转到单元测试面板,然后取消选中启用单元测试框。 重新启动 Visual Studio。 使用“测试”>“Windows”>“测试资源管理器”菜单项显示 Visual Studio 的测试资源管理器。

【讨论】:

工作,除了测试资源管理器中没有测试,而是我右键单击项目并选择“运行所有单元测试”(我有 VS2015 和 resh 10) 您需要确保将 NUnitTestAdaptor 扩展安装到 Visual Studio 中,因为默认情况下 VS 仅显示 MSTest 单元测试。【参考方案4】:

什么对我有用(VS 2015):

1) 安装NUnit Test Adapter 3.2

2) 打开测试资源管理器:VS -> 菜单测试 -> Windows -> 测试资源管理器

3)运行测试:在测试资源管理器窗口中(如果没有测试,重建解决方案)选择要运行的测试,右键单击并“运行选定的测试”

瞧,我可以在测试资源管理器窗口中看到测试,然后选择一个并调试它。

【讨论】:

就我而言,Visual Studio 已禁用 NUnit 测试适配器 (3.7),我无法重新启用它(我按照建议重新启动了 VS,但它不起作用)所以我不得不卸载扩展,重启VS,重新安装扩展,再重启VS,就可以了。【参考方案5】:

进入ReSharper v10 选项屏幕,在Tools | Unit Testing | NUnit 下,有一个When to use NUnit 3 test runner 的选项设置。将此设置为Always 为我解决了这个问题。进行此更改后,上面显示的错误消息不再出现。

Unable to run NUnit's unit tests with ReSharper's test runner

【讨论】:

以上是关于JetBrains Resharper 9 Ultimate Test Runner 错误:NUnit.Core.UnsupportedFrameworkException:跳过加载程序集 MyAss的主要内容,如果未能解决你的问题,请参考以下文章

Resharper 说“无法解析视图”

JetBrains套装免费学生授权申请(IntelliJ, ReSharper, WebStorm...)

resharper license server

ReSharper Ultimate 2016.2.2 发布

安装Resharper 10.0.X 出现 The CrossAppDomainPointer is NULL 错误解决方案之一

visual studio 插件 resharper 使用指南