問題タブ [jacoco-maven-plugin]
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.
java - Jacoco エージェントはコード カバレッジを測定しません
Maven ビルド プロセス中に、 を使用してアプリを起動し、Failsafe を使用してprocess-exec-maven-plugin
統合テストを実行します。ここで、テスト対象のアプリケーションからカバレッジ データを取得したいと考えています。
問題は、カバレッジ レポートにアプリケーションのすべてのクラスが含まれているが、カバレッジ データが含まれていない (すべて 0%) ことです。jacoco エージェントをフェイルセーフ プラグインに追加すると、実際には役に立たないテストクラスのコード カバレッジが生成されます。
何か案は?
process-exec-maven-plugin 構成:
次の Jacoco 構成を使用します。
java - jacoco で sonar-maven-plugin を使用する場合の SonarQube テストカバレッジの問題
sonar-maven-plugin と jacoco maven-plugin が親 pom で定義されているマルチモジュール maven プロジェクトがあります。
これで、再び他のサブモジュールを含む共通のサブモジュールができました。
サブモジュール common では、maven 構造は次のとおりです。
サブモジュールのコアには、次の Maven 構造があります。
私の質問ですが、私の SonarQube レポートには、次の行が表示されています。
共通マスター プロジェクトには、サブモジュール (common-core など) からカバーされていないすべての行が含まれています。これらの行が含まれているのは、共通のコア モジュールだけだと思います。
ファイルシステムでは、jacoco.exec が common/target フォルダーの下に生成されていることがわかります。サブディレクトリ common では、このファイルが作成されているのはわかりませんが、代わりにファイル common/core/target/sonar/jacoco-overall.exec が表示されます
maven - 誰がいつ jacoco.exe ファイルを作成しますか?
Maven 呼び出し: mvn -e org.jacoco:jacoco-maven-plugin:0.7.4.201502262128:prepare-agent install -Dmaven.test.error.ignore=true -Dmaven.test.failure.ignore=true
ビルドには時間がかかります。「jacoco.exec」ファイルはコード カバレッジのレポートに不可欠であると想定しているため、ビルドと分析全体が完了するのを待たずに、「jacoco.exec」ファイルが作成されているかどうかを確認したかったのです。
これまでのところ、「jacoco.exec」ファイルは見当たりません。
これらのファイルが正確にいつ作成されることになっているのか疑問に思っています:完全なMavenビルドの後、または各モジュールの後?
java - Jacoco 統合テスト レポートが正しくありません
私は安らかなAPIを持っており、統合テストケースのワークフローは、プロジェクトをビルドすることです->次に、事前定義されたポートでmavenを使用してTomcatを開始します->そのTomcatインスタンスに構築された戦争を展開し、mavenは統合テストケースを尊重して実行しますあの戦争に。ビルドは、ユニットと統合テスト ケースが成功した場合にのみ成功します。統合および単体テスト ケースのコード カバレッジ レポートを生成したいと考えています。Jacoco は単体テスト ケースのレポートを正しく生成していますが、統合テスト ケースの正しいレポートを生成していません。すべてのフォルダと同様に、カバレッジ 0% で表示されます。
フェイルセーフ プラグインの場合:
java - コード カバレッジに関するログ エントリの取得
プロジェクトの単体テストを実行するために Maven Surefire プラグインを使用し、コード カバレッジのために Jacoco を使用しています。私のプロジェクトには厳格なカバレッジ基準がありますが、ログ レベル固有の行が Jacoco によってキャプチャされず、カバー統計が台無しになるという問題があります。例えば:
ログ エントリ コード行の識別に失敗します。それを回避する方法はありますか?
sonarqube - Sonar + Jacoco + maven: jacoco.exec ファイルをソナーに提供するだけでコード カバレッジを取得できますか?
単体テストと機能テストの両方のコード カバレッジを計算しようとしています。単体テストを実行した後、jacoco.exec ファイルを生成します。同様に、機能テストの場合、jacoco-it.exec ファイルを取得します。
以下のように、これらのファイルをソナーへの入力として提供したいと思います。
mvn sonar:sonar -Dsonar.jdbc.url="jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8" -Dsonar.jdbc.username=sonar -Dsonar.jdbc.password=sonar -Dsonar.host .url= http://localhost:9000 -Dsonar.jacoco.reportPath=jacoco.exec -Dsonar.jacoco.itReportPath=jacoco-it.exec
しかし、ソナーはダッシュボードで 0% のカバレッジを生成します。ソースコード/バイナリを提供して分析せずに、jacoco.execファイルからカバレッジを計算できる他の方法はありますか?
unit-testing - jacoco、maven、およびソナーでカバレッジをテストする
もっと理論的な質問があります。複雑なモジュール階層を持つプロジェクトがあります。目標は単体テストのカバレッジを測定することであり、将来的には統合テストのカバレッジも測定することです。
テスト用の依存関係、プラグイン、構成をさまざまなプロジェクト pom に適切に配置するには、次のプラグイン間の相互作用を理解する必要があります。
- フェイルセーフ
- 確実な
- ジャココ
私が知っていることは、failsafe は統合テスト レポートを生成し、surefire は単体テスト レポートを生成し、jacoco は両方を使用してテスト カバレッジ レポートを生成できるということです。
私が知る必要があるのは:
- jacoco はフェイルセーフとシュアファイアの両方とどのように相互作用しますか?
- ジャココにはフェイルセーフとシュアファイアが必要ですか?
- jacoco の構成と、特に argLine で問題が発生する理由を説明できますか?
多くの例が散在していることがわかり、jacoco プラグインが機能しましたが、私の目標は、すべての構成などを実際に必要な場所に配置して、maven の依存関係階層を汚染しないようにすることです。