2012-10-02 166 views
4

我最近將Junit和Emma集成到CruiseControl(CC)中,因此它可以爲每個構建創建出色的報表。我希望看到基於一些信息給艾瑪像覆蓋率%的數字和總結的一些趨勢圖:Java代碼質量趨勢和統計(LOC,方法等)趨勢

OVERALL STATS SUMMARY 
total packages: 54 
total executable files: 1001 
total classes: 1133 
total methods: 11814 
total executable lines: 112428 

理想的情況下,我們可以有一個頁面已經各自的圖表(谷歌圖表?)每次構建都會得到更新。我google了一下,看起來有一個jenkins插件可以做到這一點,但我沒有看到任何類似的CC。我也計劃讓Sonar在CC上運行,也許Sonar會這麼做?我可以編寫自己的代碼來創建趨勢圖(似乎不太難分析emma輸出並創建一個圖表頁),但我寧願不重新發明輪子。

啊 - 剛剛發現這個「另一種方法是使用聲納插件哈德森隨時間保持覆蓋的趨勢」在Can my build stipulate that my code coverage never get worse? 我可以安裝哈德森和用它來代替CC,但寧可不要,如果我不」不得不。

所以 - 我的問題 - 什麼是最簡單的方法來獲得我的java代碼(希望在CruiseControl內)的趨勢覆蓋/統計?

+0

不想開始一場宗教戰爭,我建議試試哈德遜/詹金斯。他們開始的工作非常容易,如果您沒有大量定製的CruiseControl版本,可能會花費您不超過30分鐘的時間進行設置。 – artbristol

+0

是的 - 我在上一份工作中使用過哈德森/詹金斯。我沒有設置它,但使用(並喜歡)它。我幾個月才從事這項工作,並不願意(還)說服他們安裝H/J只是爲了獲得趨勢(這是我的想法,而不是管理層的)。如果在CC中沒有(相對容易的)解決方案,我可能會在路上看到H/J。 –

+0

我真的很喜歡Sonar,正是因爲它能夠顯示趨勢圖。如果你的版本是基於Maven的,你可以在巡航控制中調用Sonar插件目標。我明白爲什麼你不想讓持續集成的蘋果推車變得不安,但是我認爲如果你咬緊牙關並轉換成哈德森或詹金斯,你的生活會更容易。 – bcholmes

回答

2

使用Sonar Hudson/Jenkins插件絕對不是強制性的,無法運行聲納分析。您可以從任何工具(命令行,CI工具,如CC等)調用Sonar。

你只需要爲Sonar提供一些信息,如果你正在使用Maven的話,如果你正在使用Ant,可能是在POM中,在「sonar-project.properties」文件中如果你打算使用簡單的Sonar Runner,或者只是通過傳遞屬性,如果你將使用Jenkins/Hudson。

查看our documentation關於調用Sonar以瞭解更多關於這一切的不同方法。

+0

啊 - 所以Sonar可以提供趨勢,無論它從哪裏運行?我知道我可以運行聲納,我只是沒有意識到它自動趨勢。真的嗎? –

+0

是的,確切! :-)一切都集中在數據庫中,然後從Web應用程序瀏覽結果 –