成都网站建设设计

将想法与焦点和您一起共享

java增量代码覆盖率 java增量代码覆盖率是什么

代码覆盖率是个什么概念?

代码覆盖率是软件测试中的描述程序中源代码被测试的比例和程度。代码覆盖是由系统化软件测试所衍生的方式,是飞行设备进行安全认证中的考量项目之一。

阜康ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

基本的代码覆盖率准则有函式覆盖率、指令覆盖率、判断覆盖率、条件覆盖率、条件/判断覆盖率。函式覆盖率呼叫到程式中的每一个函式;指令覆盖率用控制流图表示程式,执行到控制流图中的每一个节点;判断覆盖率用控制流图表示程式,执行到控制流图中逻辑运算式成立及不成立的情形。

扩展资料:

代码覆盖的测试

基于代码的测试覆盖评测测试过程中已经执行的代码的多少,与之相对的是要执行的剩余代码的多少。代码覆盖可以建立在控制流(语句、分支或路径)或数据流的基础上。

控制流覆盖的目的是测试代码行、分支条件、代码中的路径或软件控制流的其他元素。数据流覆盖的目的是通过软件操作测试数据状态是否有效,例如,数据元素在使用之前是否已作定义。

参考资料来源:百度百科-代码覆盖率

java web怎么用emma进行代码覆盖率测试

使用 emma 2.1 (emma-stable-2.1.5320-lib) 1. 新建 /home/q/java/emmalib 目录, 将emma.jar 与 emma_ant.jar 放入 2. 复制 /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. 复制 /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点抗 mon.mobileArc.MobileServer conf/TaLog.property conf/TripServer.property $LOG_HOME/error.log 21

复制 /server/bin/mobileserver/stopServer.sh 到 stopServer_emma.sh

   添加覆盖率导出命令

   插入 emma 统计代码

   使用root账号

   1. 备份mobileserver.jar

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

   2. 执行插入命令

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点吸烟 1.qunar点抗 /server/mobileserverlog]# netstat -na | grep 47653

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

4. 执行 覆盖率文件导出命令

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

   并且当前目录生成文件 coverage.ec

5. 生成报告

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

指定源代码生产覆盖率报告(需先上传源码)

   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为未插入(需要执行插入)

   2. 执行插入

   3. 启动

4. 检查启动状态

47653 端口打开

   mobileserver 进程打开

emma 方式停止 mobserver

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

   1. 检查47653端口打开状态, 检查coverage.em是否存在

2. 导出覆盖率文件 coverage.ec, 备份coverage.em (加上时间戳)

   3. 导出覆盖率HTML report (加上对应时间戳)

   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 为启动状态,导出 coverage.ec, 并备份至 /home/q/mobsrv_cov

   if []

   fi

jacoco增量代码覆盖率

支持3种方式,分别是全量覆盖、基于分支的增量覆盖、基于tag的增量覆盖

linux在catalina.sh第二行添加如下脚本


网站标题:java增量代码覆盖率 java增量代码覆盖率是什么
浏览路径:http://chengdu.cdxwcx.cn/article/ddicoid.html