2015-10-18 125 views
0

背景: 我有2個獨立的java項目,稱它們爲A和B. 項目A是具有單元測試的實際產品(戰爭應用程序)。 Gradle構建項目,然後運行聲納分析,我可以看到Sonar中的單元測試覆蓋率。 項目B是第一個項目的集成測試。它由Jenkins在構建項目A並將其部署到集成環境後進行管道運行。部署還涉及對代碼進行測試,以便jacoco-it報告將與項目A的類相關聯。爲Sonar添加jacoco集成測試覆蓋

我的問題: 如何添加到項目A的聲納頁面,目前只有單元測試覆蓋率,集成測試覆蓋率 - 作爲第二步?

我所需要的流程是:

  1. 建設項目項目A A
  2. 運行聲納分析(現在它會顯示其聲納頁單元測試覆蓋率)
  3. 構建B項目
  4. 在B項目
  5. 運行聲納分析 - 這將簡單地增加整合覆蓋到項目A聲納

它目前沒有工作。當我運行在B項目聲納分析它弄亂了項目A的聲納頁面,消除A的單元測試覆蓋率

,我現在所擁有的流動,這是工作,但我想改變的是:

  1. 建立工程項目一
  2. 構建B項目
  3. 運行jacoco項目B.報告這個jacoco-it.exec文件輸出到一個特定的位置,我的硬盤上
  4. 過程A
  5. 運行聲納分析所以對項目A的nar分析(它具有從指定位置取得jacoco-it.exec文件的設置,現在項目A的聲納頁將顯示單元測試和集成測試覆蓋率,但步驟5是完全多餘的,我想避免它。

有什麼建議嗎?

回答

0

什麼,我會建議是有點不同:

  • 採用某種構建自動化工具
  • 創建聲納「檢查」工作,這沒有做充分的分析;只是增量,這應該突破時附加質量門斷路器發出
  • 與全面分析你的一個項目創建一個夜間作業:-Dsonar.analysis.mode=analysis(注:我的經驗表明,在這種情況下,你必須運行增量之前這個分析,因爲在分析模式聲納接受新的質量門斷路器問題
  • 我不認爲集成測試應計入項目測試覆蓋率,以便可能被忽略。
+0

感謝您的回答。對我來說,在 – NirG

0

你不能修改以前的分析,這就是爲什麼你的'B'工作似乎取代單元測試數字。您需要做的是在分析之前生成集成測試覆蓋率報告,並使該報告可用,以便可以在同一分析中讀取單元測試和集成測試編號。

從構建流水線的角度來看,這可能取決於你需要如何構建的工作變得棘手,但離手,它聽起來就像你需要3個項目:

  1. 建設項目一
  2. 構建項目乙&生成集成測試報告
  3. 作業3拉動從作業2集成測試報告,並且或者重建項目A或從作業1拉動代碼,類和單元測試報告並進行分析
+0

以下實施解決方案更容易。謝謝。這實際上是有意義的解決方案 – NirG

相關問題