問題タブ [opencover]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ガリオのopenCoverを使ったSonarqube - 方法は?
C# の単体テスト カバレッジを取得しようとしています。
以下は私のソナーのセットアップですが、ソナーランナーを実行すると、ユニットテストカバレッジに関連するものは何も表示されず、ブラウザの結果にはユニットテストカバレッジが表示されません。
私の質問は: ソナー c# プラグインページには、gallio がその一部としてインストールされていると書かれています。外部にガリオをインストールする必要はないと仮定していますが、ソナーランナーを実行するとガリオが呼び出され、それがオープンカバーを呼び出してカバレッジを取得しますか?
私は何を間違っていますか?
ソナーログにガリオに関する情報が見つかりません:
unit-testing - OpenCover は、nunit-console よりも実行に時間がかかります
このプロジェクトに単体テストを追加しようとしています: https://github.com/JimBobSquarePants/ImageProcessor
単体テストを実行すると、おそらく 1 ~ 2 分かかります (これは画像処理ライブラリであり、非常に高速になるとは思いません)。
問題は、これらのテストで OpenCover を実行すると、実行に 20 分ほどかかることです。
現在の単体テストの要点は、多数のテスト画像があり、各単体テスト (実際には統合テストに似ています) が各画像を読み取り、多数の効果を実行することです。
私は何か間違ったことをしていると思いますが、何ですか?NUnit runner よりも OpenCover の方が時間がかかるのはなぜですか?
c# - SonarQube で OpenCover /result をインポートすることは可能ですか?
Gallio は C# Ecosystem 3 でサポートされなくなったため、現在 Sonar セットアップに変更しています。次のコマンドで OpenCover を使用して、ユニット テスト カバレッジを正常にインポートしました。
このコマンドでは、ユニット テスト カバレッジのみを取得していますが、失敗したテストと成功したテストの数も確認したいと考えています。/result のようなオプションでこれを達成できると思います
このコマンドは、実行されたテストに関する情報を含む xml を返しますが、この xml を SonarQube にインポートする方法はありますか? または、これはサポートされていませんか?
現在、次のコマンドを使用して Coverage.xml ファイルをインポートしています。
テスト結果を含む tests.xml ファイルをインポートする同様のプロパティはありますか?
.net - OpenCover をビルドして .NET 4.5.1 に更新するにはどうすればよいですか?
私はプロジェクトの一環として OpenCover を使用してきましたが、カバーする必要があるソフトウェアの 1 つは .NET 4.5.1 を対象としています。ただし、OpenCover は .NET 4.0 をターゲットにしています。これは、テストしようとしているソフトウェアに問題を引き起こしています。これは、.NET 4.5.1 が実行されていることを想定しており、OpenCover によって .NET 4.0 が実行されていると認識されているように見えるためです。
OpenCover のソース コードをダウンロードして、自分で .NET 4.5.1 に更新しようとしましたが、.NET 4.0 でビルドすることさえできませんでした。ここにあるドキュメントは、私が自分で構築するのに役立つほど明確ではありませんでした。ですから、私の質問の主な部分は、OpenCover をソースからビルドした経験がある人はいますか? その方法についての明確な指示を教えてもらえますか? 私が試みた研究と複数の試みは、これまでのところ結果をもたらしていません。さらに、誰かが OpenCover を .NET 4.5.1 に更新しようとした場合は、そこで収集した情報を聞きたいと思います。
編集:
これを構築するために私が行ったことについてのもう少しの情報は次のとおりです。
ソース コードに含まれている Build.bat ファイルを実行しました。数秒間問題なく実行され、次のように出力されます。
「ビルドに失敗しました
外部プログラムが失敗しました: C:\Windows/Microsoft.NET/Framework64/v4.0.30319/MSBuild.exe (リターン コードは 1)"
うまくいけば、私が経験している問題についての洞察が得られるでしょう。
編集2:
Patrick Hofman のおかげで、私は正しい方向に向けられ、MSBuild.exe のバージョンを正しいバージョンに変更して、そのエラーを止めることができました。残念ながら、ある種のリンクエラーが発生しています。その全文は、以下のパトリックの回答に対するコメントのペーストビンで確認できます。
tfs - TFS で cmd を介して実行するためのテスト ランナー ビン パス (Opencover)
OpenCover を実行して、TFS ビルドと統合されたコード カバレッジの結果を取得しようとしています。この結果は SonarQube に送信されます (ビルド テンプレートにアクティビティとして含まれている sonar-runner を介して)。2 つの TFS サーバー、1 つのコントローラー、および両方のサーバーに複数のエージェントがあります。エージェントでタグを使用するため、一致するタグを持つ任意のエージェントで .Net ビルドを実行できます。
OpenCover を統合するために、プロジェクトに cmd ファイルを作成し、ソース管理に追加しました。詳細はhttps://stackoverflow.com/a/26651450/1764875にあります
しかし、TFS サーバーでは、MSTest のパスは同じではなく、ビルド サーバーに応じてパスを選択するロジックを追加したくありません。
また、他の .Net プロジェクトは、プロジェクトに統合され、その TFS サーバーで実行される他のテスト ランナー (XUnit、NUnit) を使用しています。
OpenCover を実行するには、正しいテスト ランナー バイナリへのパスが必要です。私の質問は:
-ビルド時にこのパスを取得する方法はありますか (ビルド定義で、たとえば変数を使用して)?
どんなアドバイスでも大歓迎です!!
前もって感謝します。
jenkins - OpenCover 生成されない Nunit 結果
当社の継続的インテグレーション プロセスでは、Jenkins、NUnit、および OpenCover を使用しています。
すべての Jenkins ジョブは NUnit と OpenCover を実行しますが、OpenCover はコード カバレッジを判断するために NUnit バッチ ファイルを呼び出します。したがって、NUnit は 2 回実行されます。
たとえば、最初の (簡略化された) バッチがあります。
そして、OpenCover の 2 番目のバッチがあります。
問題は、OpenCover が NUnit の結果 (前のコマンドの NunitResult.xml ファイル) を提供しないことです。したがって、すべての Jenkins ジョブのテスト時間を短縮するために、NUnit の結果を取得するか、Jenkins ジョブ Web ページで OpenCover を使用して次の機能を実現する方法を見つけたいと考えています。
- 最新のテストはすべての Jenkins ジョブの結果であるため、開発者は最新の結果を簡単に確認できます。
- 試験結果の傾向
NUnit の 1 回の実行で NunitResult と OpenCover の両方の結果を取得する方法はありますか?
.net - OpenCover レポート
OpenCover を使用して、コード カバレッジを調べています。多数のテストを行った結果、OpenCover は最大 100 件のレポートを生成します。ReportGenerator はシーケンス カバレッジの概要を作成しますが、すべてのテストの分岐カバレッジの概要も知る必要があるため、何らかの方法で分岐カバレッジをカウントすることは可能ですか?
coded-ui-tests - OpenCover を使用してアプリケーション コードを収集しないコード化された UI テストを実行する
QA チームがコード化された UI テストを作成した Windows クライアントがあります。OpenCover を機能させようとしているので、彼らのテストが実際にどれだけのアプリに影響を与えているかを確認できます。彼らは、MSTest フレームワークの上にカスタム フレームワークを使用してテストを作成しました。
彼らのフレームワークは ApplicationUnderTest.Launch を使用してアプリケーションを別のユーザーとして起動し、セキュリティ設定をテストします。テスト dll のカバレッジをキャプチャできますが、アプリケーション自体はキャプチャできます。
アプリを強制的に 32 ビットでビルドし、すべての pdb がフォルダーに存在することを確認し、pdb ディレクトリも targetdir に含めました。
他の誰かがこの問題を見たことがありますか? また、バッチ ファイルをラッパー exe に置き換えてみましたが、それはカバーされましたが、メイン アプリケーションはカバーされませんでした。すべてが、マシンの管理者でもあるアプリケーションを起動しているユーザーとして実行されています。
私が実行しているコマンドは次のとおりです: C:\Users\kkindt.CORP\AppData\Local\Apps\OpenCover\OpenCover.Console.exe -register "-target:C:\Program Files (x86)\Microsoft Visual Studio 12.0\ Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" -output:C:\CodeCoverage\CollectionResults\CodedUICover.xml "-targetargs:C:\CodeCoverage\Tests\EllisWinAppTest.dll /Platform:x86 /Framework: Framework40 /Tests:LaunchEllisTest"
moles - サードパーティのカバレッジ ツールを使用して Fakes を実行する
NCover、PartCover、OpenCover などのサードパーティのコード カバレッジ ツールで Microsoft Fakes を使用することはできますか?
Moles では、これは CLRMONITOR_EXTERNAL_PROFILERS 環境変数を使用して可能でしたが、Fakes では機能しないため、環境変数の名前が変更されたかどうか疑問に思っていました。