2012-12-12 44 views
2

Cobertura的工作原理是:1)測試要跟蹤的源文件; 2)執行單元測試並將它們與測試類進行比較。這樣我們可以計算代碼覆蓋率。與Cobertura相比,JaCoCo在Sonar的集成測試實際上如何工作?

但是JaCoCo用於集成測試(Selenium)我還沒有在文檔中看到這個「儀器」階段。 JaCoCo Agent只需設置爲在執行測試時動態追蹤「實時」覆蓋的源代碼。 JaCoCo如何知道要比較哪些源代碼,因爲代碼沒有像Cobertura那樣事先裝備好?另外,如果我想排除一些源代碼呢?

回答

3

事實上,根據定義,Jacoco可以測試所有的java字節碼,但您可以在'excludes'/'includes'Jacoco參數的幫助下調整此行爲,請參閱http://www.eclemma.org/jacoco/trunk/doc/agent.html

+0

嗯我仍然困惑。據我所知,Jacoco是它所接觸的類的工具(即知道),但這對於代碼覆蓋是不夠的,因爲你當然也想知道哪些類沒有被觸及。我不明白Jacoco是如何通過類加載器或什麼知道「其他」類的? – user1340582

+0

你是對的,有兩個步驟,第二個是Sonar自動考慮的。 –

+0

嗨弗雷迪。 Sonar如何自動考慮第二步?對於Selenium測試使用的某些助手類,我有幾個百分比的代碼覆蓋率,但由於某些原因,所有Web和業務邏輯組件都爲0%。爲什麼Sonar不包含這些來源?這些來源另外包含在Sonar中...... – user1340582

相關問題