6

Gradle ベースのビルドおよび統合テストを実行した後、「build/jacoco」フォルダー内に Jacoco によって 2 つの .exec ファイルを正常に生成しています。

Gradle コマンド: 「gradle clean build integrationTest」

完了すると、build/jacoco フォルダーの下に次の .exec ファイルが生成されます。

  1. test.exec
  2. integrationTest.exec

以下は私の sonar-project.properties ファイルです。Linux プロンプトから "sonar-runner" を実行すると完了しますが、このプロジェクトの SonarQube ダッシュボードでは、単体テストでは 34.5% と表示されますが、統合テストでは 0.0% と表示されます。どちらの .exec ファイルも有効なサイズです。また、.exec ファイルで「cat」を実行し、出力を Linux の「strings」コマンドにパイプして、integrationTest.exec が Tests 関数にヒットしたことを確認しました。.java ファイルは 1 つしかありません。

「gradle clean build integrationTest sonarRunner -Dxxx.xxx=yyy -Dyyy.xx=zzz」を実行すると、つまり、-D オプションを使用して sonar-project.properties ファイルに記載されているすべてのソナー変数を渡すことによって、動作しますが、同じ結果になりますSonarQube プロジェクトのダッシュボード。プロジェクトのソナー ダッシュボードには、ユニット/統合テスト用に構成された両方のウィジェットがあり、全体的なカバレッジを表示するための IT テストを含めています。全体的なカバレッジは 34.5% を示しています (これは単体テスト % 値です)。ソナーはtest.exec、integrationTest.execを認識し、この操作中にoverall-xxx.execファイルも自動生成します。

注:私はどこにもいません-別のパテ/ LinuxコンソールでTomcatを起動している間-またはGradleビルドスクリプト内で、値を提供するか、JacocoのJAVAエージェントを設定します。私はすでに integrationTest.exec ファイルと test.exec ファイルを取得しているので、IT テストの実行が完了したら JVM を停止する必要があるかどうかわかりません。.exec ファイルの有効なファイル サイズがあるので、それらは必要ないと思います。

私の ?: - 次の変数を正しく設定/渡しているにもかかわらず、ソナーがダッシュボードで IT カバレッジを取得していないのはなぜですか:

sonar.jacoco.itReportPath=build/jacoco/integrationTest.exec

-bash-3.2$ cat sonar-project.properties

# Root project information
sonar.projectKey=com:company:product:ProjectA
sonar.projectName=ProjectA
sonar.projectVersion=1.0
# optional description
sonar.projectDescription=ProjectA Service

#Tells SonarQube that the code coverage tool by unit tests is JaCoCo
sonar.java.coveragePlugin=jacoco

#Tells SonarQube to reuse existing reports for unit tests execution and coverage reports
sonar.dynamicAnalysis=reuseReports

# Some properties that will be inherited by the modules
sonar.sources=src/java,test/java,src/java-test

# Sonar Unit Test Report path
sonar.jacoco.reportPath=build/jacoco/test.exec

# Sonar Integration Test Report Path
sonar.jacoco.itReportPath=build/jacoco/integrationTest.exec

sonar.junit.reportsPath=build/UT/results

# Sonar Binaries
sonar.binaries=build/classes/main
4

1 に答える 1