<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • JAVA覆蓋率工具EMMA詳細(xì)解析

    時(shí)間:2024-08-19 17:58:37 JAVA認(rèn)證 我要投稿
    • 相關(guān)推薦

    JAVA覆蓋率工具EMMA詳細(xì)解析2016

      EMMA 是一個(gè)開(kāi)源、面向 Java 程序測(cè)試覆蓋率收集和報(bào)告工具。它通過(guò)對(duì)編譯后的 Java 字節(jié)碼文件進(jìn)行插裝,在測(cè)試執(zhí)行過(guò)程中收集覆蓋率信息,并通過(guò)支持多種報(bào)表格式對(duì)覆蓋率結(jié)果進(jìn)行展示。那么EMMA覆蓋率工具有什么原理,怎么使用?下面跟yjbys小編一起來(lái)學(xué)習(xí)一下吧!

      首先介紹一下EMMA 是一個(gè)開(kāi)源、面向 Java 程序測(cè)試覆蓋率收集和報(bào)告工具。它通過(guò)對(duì)編譯后的 Java 字節(jié)碼文件進(jìn)行插裝,在測(cè)試執(zhí)行過(guò)程中收集覆蓋率信息,并通過(guò)支持多種報(bào)表格式對(duì)覆蓋率結(jié)果進(jìn)行展示。EMMA可以統(tǒng)計(jì)函數(shù)覆蓋、類覆蓋、行覆蓋等,據(jù)說(shuō)最新版支持分支覆蓋。

      查看了一下EMMA的基本原理,大致分為以下步驟:插樁(instr),運(yùn)行,收集(ctl),報(bào)告(report)。

      插樁

      命令行:java emma instr -cp /usr/local//anrs/lib/anrs.jar -m overwrite -ix +com.* -Dmetadata.out.file=test.em

      參數(shù)介紹:

      -cp,指定插樁的路徑,多個(gè)jar包可以用,分割

      -m:輸出模式

      overwrite:重新jar包,anrs.jar

      default:copy, 需要加上-d參數(shù),指定輸出路徑。有插樁,才cp一份class到指定路徑

      fullcopy:需要加上-d參數(shù),指定輸出路徑。 不管有沒(méi)有插樁,都cp一份class到指定路徑

      -merge:合并。

      default:yes。 如果metadata指定輸出的文件一樣,將兩次插樁信息進(jìn)行合并

      no。不合并兩次插樁信息

      -ix:指定需要插樁的class

      +com.*: + 指包含

      -com.*:-指排除

      運(yùn)行

      一般情況下,直接運(yùn)行應(yīng)用程序即可。EMMA會(huì)啟動(dòng)一個(gè)監(jiān)聽(tīng)端口,用來(lái)后面收集信息(ctl)。這個(gè)端口是固定的,47653。

      如果我們的應(yīng)用是多進(jìn)程的,就會(huì)出現(xiàn)啟動(dòng)失敗。其實(shí)EMMA也提供了一個(gè)命令,進(jìn)行端口設(shè)置:-Demma.rt.control.port=39123

      還有host指定,-Demma.rt.control.host=192.168.22.22. default is localhost

      這個(gè)參數(shù)需要加在程序啟動(dòng)命令里

      EMMA還有簡(jiǎn)單的配置文件:java -Demma.properties=my.properties

      my.properties format: tag=value

      收集

      一般有兩種收集信息方法:

      1. 程序退出,自動(dòng)收集,在當(dāng)前運(yùn)行目錄下生成coverage.ec

      2. 命令行:

      java -cp /usr/jdk/jdk1.6.0_23/jre/lib/ext/emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec

      報(bào)告

      命令行:

      java -cp /usr/jdk/jdk1.6.0_29/jre/lib/ext/emma.jar emma report -r html -in anrs.em coverage.ec –sp src/-Dreport.html.out.file=coverage.html

      參數(shù)介紹

      -r: report type:html,txt,xml

      -sp: sourcecode path

      項(xiàng)目應(yīng)用

      1 項(xiàng)目特點(diǎn)

      應(yīng)用程序會(huì)啟動(dòng)多個(gè)進(jìn)程,啟動(dòng)腳本也會(huì)執(zhí)行jar包。---需要解決emma端口沖突

      測(cè)試過(guò)程中,由于bug會(huì)修改代碼,版本迭代。希望統(tǒng)計(jì)這些版本的整個(gè)覆蓋率信息---emma支持多個(gè)版本的覆蓋率統(tǒng)計(jì)

      希望每個(gè)case都有自己獨(dú)立的覆蓋率統(tǒng)計(jì)信息,同時(shí)也要有整個(gè)的覆蓋統(tǒng)計(jì)信息。

      2 應(yīng)用

      每個(gè)case執(zhí)行的步驟:

      1. 判斷是否更新了jar包

      1.1 更新:插樁,指定同個(gè)文件名合并到一起

      1.1.1 stop app

      1.1.2 設(shè)置 EMMAPORT 環(huán)境變量

      1.1.3 啟動(dòng)一個(gè)應(yīng)用進(jìn)程,指定EMMAPORT:-Demma.rt.control.port=$EMMAPORT

      1.1.4 循環(huán)1.1.2 & 1.1.3,啟動(dòng)完所有的進(jìn)程

      1.2 未更新:

      1.2.1 清除執(zhí)行信息:

      java -cp /usr/jdk/jdk1.6.0_23/jre/lib/ext/emma.jar emma ctl -connect localhost:47653 -command coverage.reset

      2. 執(zhí)行case

      3. 收集執(zhí)行信息

      3.1 把所有進(jìn)程的執(zhí)行信息收集到一個(gè)文件里

      java -cp /usr/jdk/jdk1.6.0_23/jre/lib/ext/emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec

      3.2 每個(gè)case需要有獨(dú)立的執(zhí)行信息

      cp coverage.ec coverage_caseNo.ec

      4. 生成報(bào)告

      測(cè)試完這個(gè)版本后,生成報(bào)告

    【JAVA覆蓋率工具EMMA詳細(xì)解析】相關(guān)文章:

    關(guān)于Ajax的詳細(xì)解析09-18

    Java IDE詳細(xì)介紹201604-26

    荷蘭留學(xué)趨勢(shì)詳細(xì)解析10-17

    Java的內(nèi)存劃分全解析08-02

    關(guān)于Java動(dòng)態(tài)代理的解析09-28

    EXCEL集成工具箱詳細(xì)教程11-08

    英國(guó)留學(xué)申請(qǐng)階段詳細(xì)解析11-07

    服務(wù)器托管詳細(xì)解析05-27

    軟裝設(shè)計(jì)流程詳細(xì)解析08-17

    日本留學(xué)音樂(lè)專業(yè)詳細(xì)解析08-15

    主站蜘蛛池模板: 欧美精品亚洲精品日韩传电影| 日韩精品少妇无码受不了| 日韩精品一区二区三区影院| 国产精品欧美亚洲韩国日本| 在线精品自拍无码| 国产精品无码国模私拍视频| 国产精品久久久久久| 人人妻人人澡人人爽人人精品电影 | 青青草精品视频| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 五月花精品视频在线观看| 欧美精品v欧洲精品| 四虎国产精品永久在线看| 国产精品熟女福利久久AV| 97久久精品人人做人人爽| 久久亚洲国产午夜精品理论片| 国产日韩精品欧美一区喷水| 无码人妻精品一区二区三区在线 | 亚洲av无码成人精品国产| 国产亚洲精品无码专区| 人精品影院| 国产精品视频一区二区三区不卡| 国产精品99久久久久久董美香| 麻豆精品成人免费国产片| 午夜肉伦伦影院久久精品免费看国产一区二区三区| 欧美亚洲色综久久精品国产| 亚洲国产成人精品无码区在线观看| 蜜臀AV无码国产精品色午夜麻豆| 国产精品伊人久久伊人电影| 99久久精品无码一区二区毛片| 99久久精品国产综合一区| 94久久国产乱子伦精品免费| 国产精品福利区一区二区三区四区| 99久久99久久精品国产片| 99热这里只有精品国产66| 精品国产乱码久久久久久浪潮| 精品日韩欧美国产| 亚洲精品偷拍视频免费观看 | 四虎国产精品成人免费久久| 欧美精品黑人粗大视频| 午夜成人精品福利网站在线观看|