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后,问题消失了。
正如接受的答案中所提到的,ReSharper 9不支持NUnit 3。如上所述的解决方案确实有效(即更新到ReSharper 10),但是,对于那些没有此选项的人(例如许可证),您可以按照以下步骤降级您的NUnit版本:
- 进入工具->Nuget Package Manager->Package Manager控制台打开Nuget Package管理器控制台
- 在弹出的控制台(通常在底部)中,在"Default project:"的下拉菜单下,选择要降级的测试项目
- 运行以下命令
Uninstall-Package NUnit
然后Install-Package NUnit -Version 2.6.4
您的测试现在应该使用ReSharper 9运行。
正如Yousefi所提到的,这是通过更新到ReSharper的版本10来修复的。我遇到了同样的问题,并解决了它。
正如另一个答案中提到的,真正的解决方案是升级到ReSharper 10。但如果你不能做到这一点,你可以禁用ReSharper 9的单元测试功能,转而使用Visual Studio内置的测试资源管理器。
为此:
- 选择ReSharper>选项。。。菜单项,转到"单元测试"面板,然后取消选中"启用单元测试"框
- 重新启动Visual Studio
- 使用"测试">"Windows">"测试资源管理器"菜单项可以显示Visual Studio的"测试资源"
什么对我有效(VS 2015):
1) 已安装NUnit测试适配器3.2
2) 打开测试浏览器:VS->菜单测试->窗口->测试浏览器
3) 运行测试:在测试资源管理器窗口(如果没有测试,则重建解决方案)中选择要运行的测试,右键单击并"运行选定的测试"
voila我可以在测试资源管理器窗口中看到测试,然后选择一个并调试它。
进入
ReSharper v10
选项屏幕,在Tools | Unit Testing | NUnit
下,有一个When to use NUnit 3 test runner
的选项设置。将此设置为Always
为我解决了问题。进行此更改后,上面显示的错误消息将不再显示。
无法使用ReSharper的测试运行程序运行NUnit的单元测试