2013-03-13 56 views
1

我正在嘗試對基於Java的應用程序進行線路覆蓋分析。在互聯網上發現了很多關於如何使用Sonar + JaCoCo插件獲取線路覆蓋結果的資源,而且看起來非常有前景。但是,我無法全面瞭解如何實施此解決方案。如何使用Sonar + JaCoCo使用集成測試(手動+自動)來測量線路覆蓋

更多關於我的項目:

  1. 有一個由網站被稱爲服務。該服務是基於Java的,並使用maven構建。

  2. 還有一個在網站上運行的基於硒的測試套件(它可以在幾個實例中調用上述服務)。測試套件是由Ant調用的&構建的。

  3. 服務的代碼庫和測試的代碼庫位於同一主機上的不同位置。

  4. 我需要基於集成測試套件爲服務生成覆蓋率報告。

的資源我的經歷是:

即使通過所有的這些準備之後,我不知道在哪裏把jacoco代理。 jar,是否使jacoco成爲maven(服務的構建過程)或ant(測試的構建過程)的一部分,如何調用jacoco代理,指定源存儲庫的位置(service's co德基地)和測試存儲庫位置。

我試過所有上述的盲目排列,但是無論是maven構建還是ant構建都會在我向其中添加jacoco任務時開始失敗。

有人能幫我解決嗎?我需要了解要完成的確切步驟。

回答

1

當您爲測試模式執行服務器進程時,您需要確保jacoco代理程序在類路徑中設置。然後,jacoco代理將有效地監聽和記錄JVM生命週期所覆蓋代碼的細節。

然後執行您的客戶端硒測試,它將調用服務器。在這種情況下,jacoco代理將記錄作爲測試的一部分執行的代碼的詳細信息。當客戶端測試結束時,您需要關閉您的服務器進程,這應該導致一個jacoco覆蓋文件。

最後一步是根據您的覆蓋率報告生成jacoco html報告。我可能會建議你考慮將你的基於ANT的硒測試移到你的maven pom中,因爲那樣會更容易控制測試執行的順序。