2016-08-22 129 views
1

我正在構建一個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團隊使用他們自己的跑步者。

謝謝!

回答

2

不幸的是,這是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插件」(或任何您稱爲自定義配置單元)。

2

R#和SDK必須是不同的主要版本或二進制兼容版本。不幸的是,在EAP中,測試運行器內部的API已經發生變化,因此來自不同EAP的R#和SDK不兼容。

相關問題