中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      JAVA覆蓋率工具EMMA詳細解析

      時間:2024-08-19 17:58:37 JAVA認證 我要投稿
      • 相關推薦

      JAVA覆蓋率工具EMMA詳細解析2016

        EMMA 是一個開源、面向 Java 程序測試覆蓋率收集和報告工具。它通過對編譯后的 Java 字節碼文件進行插裝,在測試執行過程中收集覆蓋率信息,并通過支持多種報表格式對覆蓋率結果進行展示。那么EMMA覆蓋率工具有什么原理,怎么使用?下面跟yjbys小編一起來學習一下吧!

        首先介紹一下EMMA 是一個開源、面向 Java 程序測試覆蓋率收集和報告工具。它通過對編譯后的 Java 字節碼文件進行插裝,在測試執行過程中收集覆蓋率信息,并通過支持多種報表格式對覆蓋率結果進行展示。EMMA可以統計函數覆蓋、類覆蓋、行覆蓋等,據說最新版支持分支覆蓋。

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

        插樁

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

        參數介紹:

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

        -m:輸出模式

        overwrite:重新jar包,anrs.jar

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

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

        -merge:合并。

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

        no。不合并兩次插樁信息

        -ix:指定需要插樁的class

        +com.*: + 指包含

        -com.*:-指排除

        運行

        一般情況下,直接運行應用程序即可。EMMA會啟動一個監聽端口,用來后面收集信息(ctl)。這個端口是固定的,47653。

        如果我們的應用是多進程的,就會出現啟動失敗。其實EMMA也提供了一個命令,進行端口設置:-Demma.rt.control.port=39123

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

        這個參數需要加在程序啟動命令里

        EMMA還有簡單的配置文件:java -Demma.properties=my.properties

        my.properties format: tag=value

        收集

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

        1. 程序退出,自動收集,在當前運行目錄下生成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

        報告

        命令行:

        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

        參數介紹

        -r: report type:html,txt,xml

        -sp: sourcecode path

        項目應用

        1 項目特點

        應用程序會啟動多個進程,啟動腳本也會執行jar包。---需要解決emma端口沖突

        測試過程中,由于bug會修改代碼,版本迭代。希望統計這些版本的整個覆蓋率信息---emma支持多個版本的覆蓋率統計

        希望每個case都有自己獨立的覆蓋率統計信息,同時也要有整個的覆蓋統計信息。

        2 應用

        每個case執行的步驟:

        1. 判斷是否更新了jar包

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

        1.1.1 stop app

        1.1.2 設置 EMMAPORT 環境變量

        1.1.3 啟動一個應用進程,指定EMMAPORT:-Demma.rt.control.port=$EMMAPORT

        1.1.4 循環1.1.2 & 1.1.3,啟動完所有的進程

        1.2 未更新:

        1.2.1 清除執行信息:

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

        2. 執行case

        3. 收集執行信息

        3.1 把所有進程的執行信息收集到一個文件里

        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 每個case需要有獨立的執行信息

        cp coverage.ec coverage_caseNo.ec

        4. 生成報告

        測試完這個版本后,生成報告

      【JAVA覆蓋率工具EMMA詳細解析】相關文章:

      關于Ajax的詳細解析09-18

      Java IDE詳細介紹201604-26

      荷蘭留學趨勢詳細解析10-17

      Java的內存劃分全解析08-02

      關于Java動態代理的解析09-28

      EXCEL集成工具箱詳細教程11-08

      英國留學申請階段詳細解析11-07

      服務器托管詳細解析05-27

      軟裝設計流程詳細解析08-17

      日本留學音樂專業詳細解析08-15

      主站蜘蛛池模板: 亚洲AV秘 无套一区二区三区| 婷婷五月亚洲综合图区| 织金县| 青青手机在线视频观看| 91国产超碰在线观看| av免费看网站在线观看| 黄梅县| 兴海县| 一本加勒比hezyo无码视频| 久久精品成人免费观看97| 人妻系列影片无码专区| 国产在线一区二区视频免费观看| 人妻少妇被猛烈的进入| 国产亚洲女人久久久久久| 平邑县| 花莲市| 芦山县| 滕州市| 古田县| 宁河县| 亚洲综合伦理| 91精品国产免费人成网站| 临武县| 堆龙德庆县| 中文字幕亚洲精品乱码在线看| 无码91 亚洲| 娇妻粗大高潮白浆| 亚洲AV秘 无码一区二区三| 白丝美女被狂躁免费视频网站| 久9热免费精品视频在线观看| 日本免费一区二区三区最新| 亚洲中文字幕日韩精品 | 亚洲一道一本快点视频| 免费一级黄色大片久久久 | 蜜臀av亚洲一区二区| 久久亚洲一级av一片| 美女内射中出草草视频| 国产男女做爰猛烈视频网站| 国产午夜亚洲精品不卡免下载| 久久aⅴ无码av高潮AV喷| 一区二区三区蜜桃在线视频|