2015-06-24 77 views
0

我想爲我的單元測試計算代碼覆蓋率&功能測試。 運行我的單元測試後,我生成jacoco.exec文件。 類似的功能測試,我得到了jacoco-it.exec文件。Sonar + Jacoco + maven:我可以通過簡單地向聲納提供jacoco.exec文件來獲得代碼覆蓋率嗎?

現在我想提供這些文件作爲輸入聲納如下:

MVN聲納:聲納-Dsonar.jdbc.url =「的jdbc:mysql的://本地主機:3306 /聲納了useUnicode =真&? 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文件中計算覆蓋範圍,而無需提供我的源代碼/二進制文件來分析它?

回答

0

你的pom.xml中的jacoco的配置是什麼?

你有沒有檢查你的報告路徑?

從sonarqube的示例代碼展示瞭如何有UT,IT和覆蓋範圍使用Jacoco: http://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Integration+Tests+for+Java+Project

https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/java/code-coverage/combined%20ut-it/combined-ut-it-multimodule-maven-jacoco

而且我覺得在pom.xml中設置屬性優於使用-D參數.. 。

<properties> 
    <!-- select JaCoCo as a coverage tool --> 
    <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin> 
    <!-- force sonar to reuse reports generated during build cycle --> 
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> 
    <!-- set path for unit tests reports --> 
    <sonar.jacoco.reportPath>${project.basedir}/target/jacoco-unit.exec</sonar.jacoco.reportPath> 
    <!-- all modules have to use the same integration tests report file --> 
    <sonar.jacoco.itReportPath>${project.basedir}/../target/jacoco-it.exec</sonar.jacoco.itReportPath> 
</properties> 
相關問題