当前位置: 首页 > news >正文

网站建设综合实训心得体会济宁网站网站建设

网站建设综合实训心得体会,济宁网站网站建设,北京网站制作策划,线上商城简介0、为什么要生成测试覆盖率报告 在我们实际的工作中,当完成程序的开发后,需要提交给测试人员进行测试,经过测试人员测试后,代码才能上线到生产环境。 有个问题是:怎么能证明程序得到了充分的测试,程序中所…

0、为什么要生成测试覆盖率报告

在我们实际的工作中,当完成程序的开发后,需要提交给测试人员进行测试,经过测试人员测试后,代码才能上线到生产环境。

有个问题是:怎么能证明程序得到了充分的测试,程序中所有代码都被走到了。当然,代码覆盖率只能作为测试后的一个参照,如果最开始的需求都理解错了,那么再高的代码覆盖率,都失去了意义。

那么这时就需要引入代码覆盖率这个东东了,要统计 C++ 的代码覆盖率有 GCover,统计 Java 的代码覆盖率则有 JaCoCo 可以实现。

JaCoCo 是一个免费的Java代码覆盖率检测工具,可以统计到测试对以下内容的覆盖情况:

  • 指令覆盖率
  • 分支覆盖率
  • 圈复杂度覆盖
  • 行覆盖
  • 方法覆盖
  • 类覆盖

对各种覆盖率的具体含义可以参考官方文档:​​https://www.jacoco.org/jacoco/trunk/doc/counters.html​​

使用 JaCoCo 生成覆盖率时,可以使用 on-the-fly 方式,对程序的原代码是无侵入式的,只是在启动 jar 包时,增加一个参数就行,可确保测试人员测试的代码,和上线到生产环境的代码一致。

1、创建测试类并打包成服务

为了简单起见,这里直接基于 springboot 创建被测试的类,使用了 RequestMapping 注解。

package com.test.JacocoTest.controler;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping
public class Athytics {@GetMapping("/+/{a}/{b}")public int add(@PathVariable("a") Integer param1, @PathVariable("b") Integer b){int result = 0;if(param1 < 0 || param1 > 1000){result = b - param1;}else{result = param1 + b - 1000;}return result;}@GetMapping("/-/{a}/{b}")public int minus(@PathVariable("a") Integer param1, @PathVariable("b") Integer b){return param1 - b;}@GetMapping("/*/{a}/{b}")public int multiply(@PathVariable("a") Integer param1, @PathVariable("b") Integer b){return param1 * b;}@GetMapping("///{a}/{b}")public int divide(@PathVariable("a") Integer param1, @PathVariable("b") Integer b){return param1 / b;}@GetMapping("/c/{a}/{b}")public String power(@PathVariable("a") Integer param1, @PathVariable("b") Integer b){return String.valueOf(Math.round(Math.pow(param1, b)-1));}@GetMapping("/abs/{a}")public String abs(@PathVariable("a") Integer param1){return String.valueOf(Math.round(Math.abs(param1)));}
}

创建 SpringBoot 的启动类:

package com.test.JacocoTest;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class JacocoTestApplication {public static void main(String[] args) {SpringApplication.run(JacocoTestApplication.class, args);}
}

代码结构非常简单

2、启动 JaCoCo

2.1 下载 JaCoCo 工具包

可以进入到官方页面下载 ​​https://search.maven.org/search?q=g:org.jacoco​​

下载其中需要用到的两个包即可

Jacoco 工具包及被测试包如下

2.2 启动被测服务,并在启动语句中添加 JaCoCo

指定需要检查测试对代码覆盖情况的包名,采集Jacoco覆盖率文件的ip及端口

java -javaagent:jacocoagent.jar=includes=com.test.*,output=tcpserver,port=6301,address=localhost,append=false -jar JacocoTest-1.0-SNAPSHOT.jar

3、执行测试用例

因为是使用的 Springboot 开发框架,可以直接打开浏览器进行测试。

输入如下URL: http://localhost:9999/+/12/25

4、生成 dump,并重置覆盖率统计

指定要从何处获取jacoco统计数据,地址及端口应与 2.2 中的启动参数中一致

java -jar jacococli.jar dump --address localhost --port 6301 --destfile jacoco.exec --reset

参数说明:

--reset 生成覆盖率数据后,重置之前的统计,想要重新获取统计数据,需要删除之前生成的exec文件

--address 运行jacocoagent.jar的主机IP

--port 运行jacocoagent.jar的主机监控端口

执行后,将在目录下生成指令中指定的 exec 文件 jacoco.exec

5、生成覆盖率报告

想要生成报告,需要同时指定源文件及编译后的字节码文件。

指定类文件及源代码路径,并生成格式为 html 的报告样式。

java -jar jacococli.jar report jacoco.exec --classfiles  D:\Spring\JacocoTest\target\classes --sourcefiles D:\Spring\JacocoTest\src\main\java --html log

点击目录下的 index.html 将打开覆盖率信息

进入到测试类中,可以看到各方法的覆盖情况

进入到方法中,可以看到代码的覆盖情况。

 

绿色是完全覆盖,红色是未覆盖,黄色是部分覆盖。

想要获取全新覆盖率数据,需要删除步骤3中生成的 exec 文件,否则是累计覆盖率。

6 使用帮助

jacococli.jar 使用帮助

Usage: java -jar jacococli.jar report [] [--encoding ] [--help] [--html

] [--name ] [--quiet] [--sourcefiles ] [--tabwith ] [--xml ]

: list of JaCoCo *.exec files to read

--classfiles : location of Java class files

--csv : output file for the CSV report

--encoding : source file encoding (by default platform encoding is

used)

--help : show help

--html

--name : name used for this report

--quiet : suppress all output on stdout

--sourcefiles : location of the source files

--tabwith : tab stop width for the source pages (default 4)

--xml : output file for the XML report

http://www.15wanjia.com/news/187402.html

相关文章:

  • 做平台网站怎么做的个人主机做网站
  • 如何建微信微商城网站建站软件
  • 哈尔滨网站建设费用江苏备案网站名称
  • 国际人才网招聘网什么是搜索引擎优化seo
  • 网站建设培训教程软件开发工具分类
  • 网站地图链接怎么做汉川网站建设
  • 广东网站定制厦门小程序开发
  • 设计网站如何打造收费wordpress多站点设置
  • 那里可以做PC28网站的wordpress怎么做淘宝推广
  • 小说网站源码软件开发平台开源
  • 网站建设与推广实训心得app小程序定制
  • 怎么区分网站的好坏东莞网站seo推广优化
  • 辽宁建设工程信息网新网站网站建设的实践体会
  • 个人网站建设方案书例文wordpress固定链接html
  • 网站建设专员seo点击排名软件哪里好
  • linux网站如何做ip解析开发公司二级资质人员要求
  • 佛山微网站聊城网站建设企业
  • 货运配载做网站网络运维的工作内容
  • 北京工程信息网站国外开发网站
  • 网站出售兰州网站建设公司哪家好
  • 管理系统网站模板广州短视频制作公司
  • 自己做网站 怎么解决安全问题瑞安app开发公司
  • wordpress网站建设教程视频vue前端可视化开发工具
  • 网站制作与防护费用甘肃省建设厅执业资格注册中心网站
  • 网站地图优化中山市建设工程
  • 课程网站建设课程网站定制要花多少钱
  • 潮州市网站建设网站没有备案号
  • 成都网站关键词推广平面设计培训哪个好
  • 深圳住建网站wap网站开发教材
  • 做视频分享网站西安网站建设seo竞价