<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sky's blog

    我和我追逐的夢

    常用鏈接

    統計

    其他鏈接

    友情鏈接

    最新評論

    解決jenkins執行sonar時重復執行兩次test的問題

        在jenkins上建立了一個job,通過標準的maven命令來執行打包測試和上傳artifact到nexus倉庫。mvn 命令為標準格式: clear deploy。

        隨后考慮到需要執行sonar,第一個解決方案是在jenkins中新建一個名為***_sonar的job,執行命令sonar:sonar。在原有job上通過設置Post-build Action / Build other projects, 將***_sonar加入到 Projects to build,實現sonar job的在原有job執行后觸發。當時需要勾選"Trigger only if build succeeds",避免構建失敗的時候也觸發sonar的執行。

        這個方案運行正常,但是隨后發現有些性能問題:sonar的job執行時,需要重新update SCM,然后需要再次執行test,之后才能進行真正屬于sonar的任務如代碼檢測等。明顯update SCM 和執行test是重復了原有job,純屬浪費。這個重復執行問題隨著測試案例和測試執行時間的增加,會越來越明顯。因此需要考慮消除這里的重復問題,減少build的時間,并節約jenkins的資源。
        首先考慮兩次scm update的問題,這個問題的來源在于有兩個jenkins的job,因此考慮將***_job廢棄,直接在原有job上執行sonar。將maven命令修改為以"clear deploy sonar:sonar"。

        這次理所當然的只update 一次scm,但是test 還是執行了兩次。在install階段執行第一次,在sonar:sonar階段執行第二次。
        試著在jenkins中安裝sonar的plugin,然后將maven命令修改為原來的"clear deploy",在Post-build Actions勾選sonar,通過jenkins的sonar插件來執行sonar。很遺憾,還是兩次test。
        想了想問題還是在sonar這里,為什么不直接使用已經執行的test的結果?
        google了一下,發現sonar自己的文檔中也提到了這個兩次執行test的問題,但是,居然沒有給出解決的方法。
    http://docs.codehaus.org/display/SONAR/Analyse+with+Maven
        不過提到可以通過設置-Dmaven.test.failure.ignore=true 來要求sonar即使在test執行失敗的情況下也要執行代碼分析。
        隨后google到sonar的jira記錄,有一個bug解決這個問題
    http://jira.codehaus.org/browse/SONAR-415
        jiar記錄中明確提到,“for performance reasons. It avoids executing twice unit tests.”,呵呵,正和我意啊。
        解決的方法,就是通過設置 sonar.dynamicAnalysis = reuseReports,使得sonar放棄運行 test 而直接復用已有的report,從而避免了二次執行test。
        總結:最終的mvn 命令行
    clean deploy sonar:sonar -Dsonar.dynamicAnalysis=reuseReports -Dmaven.test.failure.ignore=true

    posted on 2012-02-14 14:53 sky ao 閱讀(5673) 評論(5)  編輯  收藏 所屬分類: project building

    評論

    # re: 解決jenkins執行sonar時重復執行兩次test的問題 2012-02-14 15:12 sky ao

    剛剛很郁悶的發現,按照上面的命令sonar雖然可以跑,但是出來的結果里面,少了很重要的一個內容:

    Code coverage 那里沒有內容!

    難道非得跑兩次test才行?  回復  更多評論   

    # re: 解決jenkins執行sonar時重復執行兩次test的問題 2012-06-04 17:45 god

    跑2次有什么問題嗎  回復  更多評論   

    # re: 解決jenkins執行sonar時重復執行兩次test的問題 2012-06-09 20:41 sky ao

    @god

    沒有特別的壞處,只是測試時間就要*2了,有點浪費時間和資源。  回復  更多評論   

    # re: 解決jenkins執行sonar時重復執行兩次test的問題 2012-06-16 22:58 bigfei

    這個可以通過jenkins的一個插件解決,google jenkins sonar test plugins.  回復  更多評論   

    # re: 解決jenkins執行sonar時重復執行兩次test的問題[未登錄] 2012-09-14 16:37 hello

    為什么不第一次構建的時候不執行呢
    clean deploy -Dmaven.test.skip=true
    sonar:sonar  回復  更多評論   

    主站蜘蛛池模板: 国产精品免费久久| 亚洲国产精品一区二区第四页| 国产国产人免费人成成免视频| 亚洲一级毛片免费在线观看| 国产亚洲福利精品一区| 亚洲精品永久在线观看| 久久精品国产亚洲av水果派| 亚洲色大成网站WWW久久九九| 永久黄网站色视频免费直播| 国产成人精品免费午夜app| 久久久久久久99精品免费| 久久www免费人成看国产片| 国产成人亚洲精品无码AV大片| 亚洲毛片免费视频| 久久精品国产亚洲av四虎| 91在线品视觉盛宴免费| 色欲A∨无码蜜臀AV免费播| 抽搐一进一出gif免费视频| 一个人免费观看视频在线中文| 国产AV日韩A∨亚洲AV电影| 亚洲 暴爽 AV人人爽日日碰| 亚洲乱码一区av春药高潮| 久久久无码精品亚洲日韩京东传媒| 亚洲色精品vr一区二区三区| 亚洲综合色自拍一区| 国产成人精品久久亚洲高清不卡 | 国产一区二区三区无码免费| 久草免费手机视频| baoyu777永久免费视频| 四虎影视无码永久免费| 免费看搞黄视频网站| 午夜免费啪视频在线观看| 未满十八18禁止免费无码网站 | 国产综合免费精品久久久| 一出一进一爽一粗一大视频免费的| 亚州**色毛片免费观看| 色多多www视频在线观看免费| aa午夜免费剧场| 特级做A爰片毛片免费看无码 | 国产亚洲?V无码?V男人的天堂| 国产亚洲美女精品久久久|