1

我正在构建一个 R# 插件并决定用测试来覆盖它。但是,我注意到,如果插件目标版本与 R# 版本相同,则无法使用 R# 运行器运行插件测试。

例如,如果您尝试使用JetBrains.ReSharper.SDK.Testsof version运行测试2016.2.20160818.171542,您将收到以下错误:

ERROR System.TypeLoadException: Method 'RunTests' in type 'JetBrains.ReSharper.UnitTestRunner.nUnit26.BuiltInNUnitRunner' from assembly 'JetBrains.ReSharper.UnitTestRunner.nUnit26, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.

在以前的版本中,错误是不同的。

这很可能是因为 R# 运行程序和 SDK 程序集混合在一起。

有什么方法可以配置项目/R# 以便能够使用 R# 运行器运行插件单元测试?很可能,R# 开发团队使用他们自己的跑步者。

谢谢!

4

2 回答 2

2

R# 和 SDK 必须是不同的主要版本或二进制兼容版本。不幸的是,在 EAP 中,测试运行器内部的 API 发生了变化,因此来自不同 EAP 的 R# 和 SDK 不兼容。

于 2016-08-22T17:16:43.793 回答
2

不幸的是,这是 201.6.2 中 ReSharper 运行器中的一个错误。与在同一进程中拥有相同程序集的多个副本有关 - 来自安装的程序集和来自 bin 文件夹的程序集。一路上有些事情搞砸了。

您可以订阅、投票和跟踪此问题:RSRP-460399

解决方法是将旧版本的 ReSharper 安装到 Visual Studio“实验实例”又名“自定义配置单元”中,并使用此实例来开发和测试插件。普通实例可用于其他日常开发。

您可以在此处下载旧版本的 ReSharper(例如 2016.1.2),然后在安装程序中单击选项并输入自定义实例的名称,例如“插件”。然后创建一个新的 Visual Studio 快捷方式并将命令行设置为“devenv.exe /rootSuffix Plugins”(或任何您称为自定义配置单元的名称)。

于 2016-08-23T12:58:59.513 回答