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# ランナーを使用してプラグイン単体テストを実行できるように project/R# を構成する方法はありますか? おそらく、R# 開発チームは独自のランナーを使用しています。

ありがとう!

4

2 に答える 2

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 に答える
2

R# と SDK は、メジャー バージョンが異なるか、バイナリ互換バージョンである必要があります。残念ながら、EAP 内ではテスト ランナー内の内部 API が変更されているため、異なる EAP の R# と SDK には互換性がありません。

于 2016-08-22T17:16:43.793 に答える