<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          單元測試增量代碼覆蓋率統(tǒng)計(jì)方案

          共 1237字,需瀏覽 3分鐘

           ·

          2021-06-03 02:58

          作者|陳俊華、劉琳琳

          背景

          轉(zhuǎn)轉(zhuǎn)增量代碼掃描數(shù)據(jù)作為上線準(zhǔn)入的重要依據(jù),目前所有測試環(huán)境執(zhí)行的測試均有覆蓋率統(tǒng)計(jì),但是部分需求或服務(wù)更加適合使用單測進(jìn)行驗(yàn)證,也有部分RD有單測的好習(xí)慣。單測覆蓋率的缺失無法通過覆蓋率分析補(bǔ)充case也對上線準(zhǔn)入評估造成了一定的困擾。因此,我們將單測的增量代碼覆蓋率融合至測試環(huán)境覆蓋率中,解決以上問題。

          整體方案

          用例平臺

          1、持續(xù)集成平臺將工程名稱,分支名稱,git地址信息傳給單測平臺,平臺根據(jù)這些信息下載源碼

          2、更改源碼里的pom.xml 文件。引用插件maven-surefire-report-plugin

          插件的特點(diǎn):

          • 能把生成的xml報告轉(zhuǎn)換成html

          • 能指定哪些測試類需要被執(zhí)行,哪些測試類不被執(zhí)行

          • 能兼容JUnit 3、JUnit 4以及TestNG

          • 在默認(rèn)情況下,我們無法在在某一個生命周期去調(diào)用它,因?yàn)椴⒉皇撬械挠脩裘看螛?gòu)建軟件的時候都會需要html格式

          結(jié)果:


          打開surefire-report.htm  可以查看執(zhí)行case數(shù)量,執(zhí)行通過率,執(zhí)行失敗的具體方法以及失敗原因。

          3、用jacoco生成單元測試覆蓋率

          執(zhí)行mvn命令時,加上“org.jacoco:jacoco-maven-plugin:prepare-agent”參數(shù)即可。

          其中,jacoco-maven-plugin后面跟的是jacoco的版本;【-Dmaven.test.failure.ignore=true】建議加上,否則如果單元測試失敗,就會直接中斷,不會產(chǎn)生.exec文件。

          執(zhí)行以上命令后,會在當(dāng)前目錄下的target目錄產(chǎn)生一個jacoco.exec文件,該文件就是覆蓋率的文件:


          4、生成的jacoco.exec文件傳給覆蓋率統(tǒng)計(jì)系統(tǒng)。

          覆蓋率平臺

          1、增加覆蓋率統(tǒng)計(jì)任務(wù)

          用例平臺收到執(zhí)行單測任務(wù)時,會調(diào)用覆蓋率平臺創(chuàng)建覆蓋率任務(wù)接口,將源碼地址,jar包的ftp地址, 以及代碼分支等數(shù)據(jù)傳遞給覆蓋率平臺,覆蓋率平臺建立覆蓋率任務(wù)并做一些提前準(zhǔn)備工作:下載源 碼、jar包以及進(jìn)行codediff,并將diff結(jié)果存到數(shù)據(jù)庫。 


          2、統(tǒng)計(jì)覆蓋率

          回顧一下之前 on-the-fly方式的差異代碼覆蓋率方案,代碼執(zhí)行軌跡是當(dāng)測試人員點(diǎn)擊覆蓋率按鈕時,實(shí)時從測試服務(wù)器上獲取的。 


          從圖中可以看到,如果我們把測試服務(wù)器的部分任務(wù)由用例平臺來完成,就可以在基本上不變動代碼的情況下完成單測增量代碼覆蓋率的統(tǒng)計(jì)。

          主要邏輯:

          • 將編譯id作為虛擬ip

          • 獲取代碼執(zhí)行軌跡時,判斷如果是單測則從用例管理平臺獲取,不是則從測試機(jī)上獲取



          至此,整個流程結(jié)束。各位讀者大佬,如果有好的解決方案和建議歡迎留言討論。


          end


          瀏覽 63
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  影音先锋琪琪色 | 一级家庭乱伦性淫毛片 | 无毛一线逼 | 黄色在线网站 | 九九视频中文字幕 |