成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java代碼覆蓋率過濾 java代碼覆蓋率測試工具

編程實現(xiàn)代碼覆蓋率及路徑分析檢測,C++, C#, Java, JavaScript(任選一種程序語言)

如果你采用源碼插裝的方式來做的話,需要對輸入程序進行詞法,語法分析建立語法分析樹(有一些現(xiàn)成的工具如bison, antlr可以借助),通過語分析法分析樹獲取程序控制流關(guān)系,然后就可以對程序的基本塊進行分析了。要考慮獲取覆蓋率和程序執(zhí)行路徑,需要對基本塊做插裝,利用插入的探針來對它們的執(zhí)行情況做記錄。

10年專注成都網(wǎng)站制作,企業(yè)網(wǎng)站制作,個人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設(shè)計流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁制作,對護欄打樁機等多個方面,擁有豐富的網(wǎng)站運維經(jīng)驗。

java web怎么用emma進行代碼覆蓋率測試

使用 emma 2.1 (emma-stable-2.1.5320-lib) 1. 新建 /home/q/java/emmalib 目錄, 將emma.jar 與 emma_ant.jar 放入 2. 復(fù)制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh 修改啟動語句。

使用 emma 2.1 (emma-stable-2.1.5320-lib)

1. 新建 /home/q/java/emmalib 目錄, 將emma.jar 與 emma_ant.jar 放入

2. 復(fù)制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh

修改啟動語句

nohup java -Xmx1800M -Xms800m -Xbootclasspath/p:/home/q/java/emmalib/emma.jar -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -XX:+AggressiveOpts -XX:+UseParallelGC -server -classpath "$jarFile" com.qunar.common.mobileArc.MobileServer conf/TaLog.property conf/TripServer.property $LOG_HOME/error.log 21

復(fù)制 /server/bin/mobileserver/stopServer.sh 到 stopServer_emma.sh

   添加覆蓋率導(dǎo)出命令

   插入 emma 統(tǒng)計代碼

   使用root賬號

   1. 備份mobileserver.jar

   cp /server/TripAssistant/mobile-server.jar $MOB_JAR_BAK/mobile-server.jar.{$timestamp}

   2. 執(zhí)行插入命令

java -cp /home/q/java/emmalib/emma.jar emma instr -m overwrite -cp mobile-server.jar -out coverage.em

輸出如下:

EMMA: processing instrumentation path ...

   EMMA: instrumentation path processed in 3117 ms

   EMMA: [1000 class(es) instrumented, 126 resource(s) copied]

   EMMA: metadata merged into [/server/TripAssistant/coverage.em]

3. 運行mobileserver runServer_emma.sh

   sudo sh /server/bin/mobileserver/stopServer.sh sudo sh /server/bin/mobileserver/runServer_emma.sh

   在 /server/mobileserverlog/error.log中可見:

   EMMA: collecting runtime coverage data ...

   EMMA: runtime controller started on port [47653]

   emma control 進程已啟動

[root@l-wap4.beta.cn1.qunar.com /server/mobileserverlog]# netstat -na | grep 47653

tcp 0 0 0.0.0.0:47653 0.0.0.0:* LISTEN 20926/java

4. 執(zhí)行 覆蓋率文件導(dǎo)出命令

java -cp /home/q/java/emmalib/emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec

   可見輸出:

   EMMA: processing control command sequence ...

   EMMA: executing [coverage.get (coverage.ec,true,true)] ...

   EMMA: coverage.get: local copy of coverage data merged into [/server/TripAssistant/coverage.ec]

   EMMA: coverage.get: command completed in 79 ms

   EMMA: control command sequence complete

   并且當(dāng)前目錄生成文件 coverage.ec

5. 生成報告

java -cp /home/q/java/emmalib/emma.jar emma report -r html -in coverage.em,coverage.ec

指定源代碼生產(chǎn)覆蓋率報告(需先上傳源碼)

   java -cp /home/q/java/emmalib/emma.jar emma report -r html -in /server/TripAssistant/coverage.em,/server/TripAssistant/coverage.ec -Dreport.html.out.file=mycoverage/coverage.html -sp /home/liang.zhou/mob_code_dir/mobs_trunk/src/main/java

emma 方式啟動 mobserver

   ==================================

   1. 判斷mobserver.jar size, 大于5M 為已插入過, 小于5M為未插入(需要執(zhí)行插入)

   2. 執(zhí)行插入

   3. 啟動

4. 檢查啟動狀態(tài)

47653 端口打開

   mobileserver 進程打開

emma 方式停止 mobserver

==================================

   1. 檢查47653端口打開狀態(tài), 檢查coverage.em是否存在

2. 導(dǎo)出覆蓋率文件 coverage.ec, 備份coverage.em (加上時間戳)

   3. 導(dǎo)出覆蓋率HTML report (加上對應(yīng)時間戳)

   4. kill mobserver 進程

   ls -lt mobile-server.jar

   判斷 $? == 0

判斷mobile-server.jar size是否大于 5M

#!/bin/bash

   function stop_mob_server(){

   #!/bin/bash

   function stop_mob_server(){

   pid=`ps aux | grep MobileServer | grep -v grep | awk '

   Unknown macro: {print $2}

'`

   ` kill -9 $

   Unknown macro: {pid}

   `

   sleep 1

   echo "Stop mobileserver success."

   }

   #判斷 emma ctl 是否啟動

   port_check_result=`netstat -na | grep 47653 | awk '

   Unknown macro: {print $1}

   '`

   if [ -z $

   Unknown macro: {port_check_result}

   ]; then

echo "Emma ctl port 47653 is not LISTEN. Coverage.ec export operation aborted."

   else

   #emma ctl 為啟動狀態(tài),導(dǎo)出 coverage.ec, 并備份至 /home/q/mobsrv_cov

   if []

   fi

java代碼覆蓋率測試現(xiàn)在用什么工具?

你好,代碼覆蓋率測試,你可以試試Emma和Jacoco,eclipse中也有eclemma插件,這兩種都是比較流行的工具

希望我的解答可以幫助你

新聞名稱:java代碼覆蓋率過濾 java代碼覆蓋率測試工具
URL網(wǎng)址:http://jinyejixie.com/article0/ddojooo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、全網(wǎng)營銷推廣Google、移動網(wǎng)站建設(shè)網(wǎng)站設(shè)計公司、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
武山县| 阿坝县| 三台县| 青河县| 广德县| 凤山县| 六安市| 长治市| 高台县| 商水县| 泊头市| 阳西县| 新竹县| 尉氏县| 西宁市| 卓资县| 上饶县| 梓潼县| 库车县| 河东区| 顺义区| 张家口市| 平顶山市| 东丰县| 龙江县| 宁明县| 襄城县| 丰城市| 扎鲁特旗| 泰宁县| 慈溪市| 焦作市| 顺昌县| 昌图县| 贺兰县| 施甸县| 禹城市| 石景山区| 西宁市| 赣榆县| 洛扎县|