3

VS2012 C# ソリューションをソナー ランナーで分析しようとすると、Gallio で厄介な問題が発生します。Gallio が単体テストを起動しようとすると、ログに次の問題が見つかります。

  [error] Assembly XXXX   
  Cannot run tests because MSTest executable was not found

ここここ で公開されているソリューションのいくつかの提案をすでに試しました(VS 2012 のエージェントをインストールし、VS2012 インストールのパスを使用してレジストリ キーを追加しました) が、何も機能していないようです。

よろしくお願いいたします。

編集 :

VS2010 の InstallDir レジストリ キーを VS2012 インストールを指すように追加しようとすると、新しいエラー メッセージが表示されるため、この問題は、Gallio ソース コードのハード コーディングされたレジストリ値に起因するようです。

この新しいエラーは、次の DLL に関連する I/O 例外です: "Microsoft.VisualStudio.QualityTools.CommandLine.dll" バージョン 10.0.0.0 は、私の GAC_MSIL ディレクトリにありますが、バージョン 11 にあります。私の結論は、 Gallio は、VS2012 および対応するバージョンの MSTest と完全には互換性がありません。

Sonar が保存できる単体テスト レポートを手動で生成する方法を見つけるために調査します。

編集2:

今のところ、ソナーで mstest レポートを収集する方法は最終的にありません。私が見つけた唯一の解決策は、MSTest で作成されたすべての単体テストを NUnit テストに変換して、gallio で実行し、結果を Sonar サーバーに収集できるようにすることです。

4

2 に答える 2

2

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config にある machine.config に次を追加します。

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.CommandLine"
                publicKeyToken="b03f5f7f11d50a3a"
                culture="neutral" />
      <bindingRedirect oldVersion="10.0.0.0"
               newVersion="11.0.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>

次に、値が "InstallDir => C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\" の InstallDir というレジストリ キーを次の場所 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ に追加する必要があります。 VisualStudio\10.0

次に、次のコマンドを実行します regsvr32 "C:\YourSonarInstalation\opencover\x86\OpenCover.Profiler.dll

この問題はここで議論されています。上記の潜在的な解決策は、数日前に投稿されました。 https://code.google.com/p/mb-unit/issues/detail?id=899

于 2014-01-02T15:53:45.303 に答える
1

Visual Studio 2013 および .net 4.5 の場合、これは同様のプロセスです。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config および/または C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config にある machine.config に次を追加します。

    <runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.CommandLine"
                publicKeyToken="b03f5f7f11d50a3a"
                culture="neutral" />
      <bindingRedirect oldVersion="10.0.0.0"
               newVersion="12.0.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>

次に、値が "InstallDir => C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\" の InstallDir というレジストリ キーを次の場所 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ に追加する必要があります。 VisualStudio\10.0

次に、次のコマンド regsvr32 "C:\Program Files (x86)\OpenCover\x86\OpenCover.Profiler.dll" を実行します。

于 2014-08-21T19:21:34.020 に答える