zoukankan      html  css  js  c++  java
  • jacoco+maven 初次使用覆盖率工具

    工作要搞覆盖率测试,看到公司平台上用的jacoco,就找了网上的demo自己跑了一下。

    一.覆盖率测试是干什么的

    http://www.open-open.com/lib/view/open1472174544246.html

      1.用来看看类/方法/判定 中的语句的使用情况,防止废弃无用的代码和错误代码出现。

      2.用来和需求覆盖做一个对照,做用例和代码的一种映射检查,补齐一些用例的逻辑上的缺陷。

    二.jacoco的原理

      jacoco提供两种插桩方式,on-the-fly 和offline两种,这两种的实现原理不同。

      参考:http://www.open-open.com/lib/view/open1472174544246.html

    三.项目代码

      参考网址:https://www.eclemma.org/jacoco/trunk/doc/maven.html

      pom部分

    <dependency>
    			<groupId>org.jacoco</groupId>
    			<artifactId>jacoco-maven-plugin</artifactId>
    			<version>0.8.3</version>
    			<type>maven-plugin</type>
    		</dependency>
    

      

    <plugin>
    				<groupId>org.jacoco</groupId>
    				<artifactId>jacoco-maven-plugin</artifactId>
    				<version>0.8.3</version>
    				<!-- 
    				<configuration>
    					<includes>zhizhi</includes>
    				</configuration>
    				 -->
    				<executions>
    					<execution>
    						<id>default-prepare-agent</id>
    						<goals>
    							<goal>prepare-agent</goal>
    						</goals>
    					</execution>
    					<execution>
    						<id>default-prepare-agent-integration</id>
    						<goals>
    							<goal>prepare-agent-integration</goal>
    						</goals>
    					</execution>
    					<execution>
    						<id>default-report</id>
    						<goals>
    							<goal>report</goal>
    						</goals>
    					</execution>
    					<execution>
    						<id>default-report-integration</id>
    						<goals>
    							<goal>report-integration</goal>
    						</goals>
    					</execution>
    					<execution>
    						<id>default-check</id>
    						<goals>
    							<goal>check</goal>
    						</goals>
    						<configuration>
    							<rules>
    								<rule>
    									<element>BUNDLE</element>
    									<limits>
    										<limit>
    											<counter>COMPLEXITY</counter>
    											<value>COVEREDRATIO</value>
    											<minimum>0.60</minimum>
    										</limit>
    									</limits>
    								</rule>
    							</rules>
    						</configuration>
    					</execution>
    				</executions>
    			</plugin>
    

      执行mvn语句

    mvn install
    

      在 target/site/jacoco 中可以看到report

    最后,自有平台的jacoco的实际实现过程

  • 相关阅读:
    [javaSE] 数组(获取最值)
    [javascript] Promise简单学习使用
    [javaSE] 基本类型(String相关)
    [android] 手机卫士黑名单功能(ListView结合SQLite增删改)
    [PHP] 重回基础(IO流)
    [PHP] 重回基础(Array相关函数)
    [PHP] 重回基础(date函数和strtotime函数)
    [HTML5] Canvas绘制简单图片
    [javaSE] 集合框架(TreeSet)
    [android] 手机卫士黑名单功能(ListView优化)
  • 原文地址:https://www.cnblogs.com/zhizhiyin/p/10374123.html
Copyright © 2011-2022 走看看