1

NuGet を介して OpenCover をソリューションにインストールすると、たとえば、packages\OpenCover.4.5.1604 フォルダーの下に期待されるファイルが取得されます。ただし、OpenCover のプロファイラーが正しく機能するには、COM 登録が必要です。-registerコマンドを使用してこれらのランタイム登録を行うことが可能であることは認識していますが、複数のソリューションを備えたマシン上で、異なるバージョンの OpenCover がインストールされている可能性があります (また、それらを同時に実行している可能性があります。たとえば、ビルド)サーバー)、これは問題があるようです。

作成者自身からのこのSOの回答は、プロファイラーを一度登録するために個別に呼び出すことregsvr32がビルドサーバーで望ましいことを示しており、それは理にかなっています。しかし、OpenCover が NuGet を介して (ソリューションに) プルダウンされた状況では、適切なビルド サーバー ソリューションはありますか? それとも、NuGet は単にファイルを取得するための便利な方法ですが、ソリューション固有のバージョンから実行しようとするのではなく、実際には中央の場所にコピーしてから登録する必要がありますか?

4

1 に答える 1

0

私のビルドマシン(ナゲット経由でプルされたオープンカバーを使用)では、-register:userオプションを使用します。これにより、そのユーザーアカウントに登録され、ターゲットプロセスの実行後に登録が解除されます。

OpenCover は、実行するプロセスだけに関連するプロファイラーと対話するために使用するキーも登録します。これにより、必要に応じて複数の OpenCover コンソールを並行して実行できます。OpenCover には、その機能を実行する pedigree (opencover を実行する opencover を実行する nunit) と呼ばれるドッグフード テストがあります。

ただし、私のビルド マシンは一度に 1 つのビルド スクリプトしか実行しません。ほとんどのビルド マシン エージェントは、通常は高速であるため、これを行います。どのエージェントを使用していますか?

OpenCover が処理できないシナリオがある場合は、フォーラムで問題を提起してください。それ以外の場合は、テストを行ってください。

于 2013-07-02T18:29:49.403 に答える