使用R#测试运行器运行ReSharper插件测试
我正在构建一个R#插件,并决定用测试覆盖它。但是,我注意到,如果插件目标版本与R#版本相同,那么插件测试无法使用R#runner运行。使用R#测试运行器运行ReSharper插件测试
例如,如果您尝试运行使用的2016.2.20160818.171542
版本JetBrains.ReSharper.SDK.Tests
测试,你会得到以下错误:
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#runner和SDK程序集混合在一起。
有什么办法可以配置project/R#来使用R#runner来运行插件单元测试吗?很有可能,R#dev团队使用他们自己的跑步者。
谢谢!
不幸的是,这是201.6.2中的ReSharper跑步者中的一个错误。在同一个进程中拥有多个相同程序集的副本 - 安装时的程序集和bin文件夹中的程序集。沿途有些东西正在混乱。
您可以订阅,投票和跟踪这个问题:RSRP-460399
的解决办法是安装ReSharper的一个旧版本到Visual Studio中的“实验实例”又名“定制蜂巢”,并使用该实例来开发并测试插件。正常情况下可用于其他日常开发。
您可以download an older version of ReSharper here (e.g. 2016.1.2),并在安装程序中单击选项并输入自定义实例的名称,例如, “插件”。然后创建一个新的Visual Studio快捷方式,并将命令行设置为“devenv.exe/rootSuffix插件”(或任何您称为自定义配置单元)。
R#和SDK必须是不同的主要版本或二进制兼容版本。不幸的是,在EAP中,测试运行器内部的API已经发生变化,因此来自不同EAP的R#和SDK不兼容。