運行基於Gradle的構建後,我通過Jacoco在「build/jacoco」文件夾內成功生成了2個.exec文件,集成測試。SonarQube - integrationTest.exec - sonarRunner(Gradle)或「sonar-runner」命令 - 顯示0.0%covereage
搖籃命令: 「gradle這個乾淨的構建integrationTest」
一旦完成,它會產生下構建/ jacoco文件夾下面.exec文件。
- test.exec
- integrationTest.exec
以下是我sonar-project.properties文件。當我從Linux運行「sonar-runner」提示它完成時,但在SonarQube儀表板上爲這個項目,我看到單元測試說約34.5%,但集成測試說0.0%。兩個.exec文件都有有效的大小。我還對.exec文件做了「cat」,並將輸出傳送給Linux中的「strings」命令,並看到integrationTest.exec確實打了測試功能 - 我只有1個.java文件。
當我運行「gradle clean build integrationTest sonarRunner -Dxxx.xxx = yyy -Dyyy.xx = zzz」時,即通過使用-D選項傳遞sonar-project.properties文件中提到的所有聲納變量,它可以工作但SonarQube項目儀表板上的結果相同。項目的聲納儀表板具有爲單元/集成測試配置的兩個小部件,並且包括顯示「總體覆蓋率」的IT測試。總體覆蓋率顯示爲34.5%(這是單元測試%值)。 Sonar會在此操作過程中看到test.exec,integrationTest.exec以及自動生成overall-xxx.exec文件。
注意:我不是在哪裏 - 在單獨的putty/linux控制檯上啓動tomcat - 或者在Gradle構建腳本中提供任何值或設置JAVA Agent for Jacoco。我已經獲得了integrationTest.exec文件和test.exec文件,因此不確定在IT測試完成運行後是否需要停止JVM。我不認爲我需要這些,因爲我有.exec文件的有效文件大小。
我: - 爲什麼聲納沒有得到它的覆蓋上,即使我設置/正確地傳遞以下變量的儀表盤:
sonar.jacoco.itReportPath=build/jacoco/integrationTest.exec
-bash-3.2 $ 貓聲納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