2

我試圖通過添加"-javaagent..."到碼頭和運行外部Selenium測試(或者,例如使用JaCoCo劑用於收集一個網站的FT代碼覆蓋,手動測試)。聲納+ jacoco劑代碼覆蓋非web服務模塊

在測試結束時,我只爲網絡模塊結果爲,在實際運行碼頭,而不是「核心」模塊(在同一個項目)在網絡模塊中使用。那麼,是否有能力收集項目的所有模塊的呼叫?

事實上,我現在試圖用相同的JaCoCo報告目標(即/tmp/jacoco-res.exec)開始所有的項目web服務(它有5個),append=true就跑:

mvn sonar:sonar -Dsonar.jacoco.itReportPath=/tmp/jacoco-res.exec 

所以,聲納現在使用的相同項目和聲納中的每個模塊的JaCoCo報告文件都顯示了碼頭運行和核心模塊的測試覆蓋率。

此方法是否適用且覆蓋率結果是否正確?

回答

2

我有一個我前兩天在Sonar User forum提出了一個問題simular。

總之,你的做法是正確的,也是由聲納顧問建議(如可在後可以看到)。

  • 對每個Maven項目執行Sonar分析。
  • 對於每個分析,再利用的報告,並通過您的JaCoCo報告(使用-Dsonar.jacoco.itReportPath)
  • 聲納將會從這個JaCoCo報告 與所分析的Maven項目覆蓋數據。 (您的核心項目之一)
  • 因此,對於每個Maven項目,您將通過集成測試獲得覆蓋範圍。
  • 最後,由您的集成 測試讓你的web服務的覆蓋面,你將不得不使用瀏覽插件: http://www.sonarsource.com/products/plugins/governance/portfolio-management/
  • 創建一個視圖這是所有Maven的 項目組成的Web服務的集合。
  • 爲了運行其 Maven項目中的一個的聲納分析聲納來計算圖。
  • 在視圖儀表板,你就可以通過你的集成測試,以獲得web服務的代碼覆蓋率 。
相關問題