zoukankan      html  css  js  c++  java
  • Jacoco统计白盒测试覆盖率(基于maven)

    开发问:你写的东西(自动化)覆盖了我多少的代码量?

    恩,我思考下....

    不妨试试jacoco吧,下面就来看看


    原理: 自动插桩

    JVM中通过-javaagent参数指定特定的jar文件启动代理程序,代理程序在通过Class Loader装载一个class前判断是否转换修改class文件,将统计代码插入class,测试覆盖率分析可以在JVM执行测试代码的过程中完成。

    效果:

    基于maven,在server test里面编写白盒测试代码,在pom文件加入下面的build信息,run as install

    <build>    
        <plugins> 
        
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
           <configuration>
             <includes>
                <include>**/*BaseDaoTest.java</include>        
             </includes>
             <excludes>
               <exclude>**/Abstract*.java</exclude>
             </excludes>
           </configuration>
         </plugin> 
        
        <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.5.3.201107060350</version>
        <executions>
        
         <execution>
          <goals>
           <goal>
            prepare-agent
           </goal>
          </goals>
         </execution>
         
         <execution>
          <id>JaCoCo Report</id>
          <phase>prepare-package</phase>
          <goals>
           <goal>
            report
           </goal>
          </goals>
         </execution>
         
        </executions>
       </plugin>
       </plugins> 
      </build> 

     操作:

    1.写好单元测试代码

    2.上面的maven build,获取覆盖率报告

    具体报告,可以帮助我们分析哪里覆盖率做的不好,去优化我们的白盒测试代码,覆盖:

    target/site/jacoco/index.html

    行覆盖率:度量被测程序的每行代码是否被执行,判断标准行中是否至少有一个指令被执行。
    类覆盖率:度量计算class类文件是否被执行。
    分支覆盖率:度量if和switch语句的分支覆盖情况,计算一个方法里面的总分支数,确定执行和不执行的 分支数量。

  • 相关阅读:
    一个强大的json解析工具类
    android存储路径问题
    android界面的滑动切换功能
    mysql数据库
    【hadoop+spark】搭建spark过程
    【设计模式】行为型01策略模式(strategy patten)
    【java爬虫】网络爬虫思路
    maven_nexus私服搭建
    【需要重新维护】Redis笔记20170811视频
    【工具】java 文本文档txt写出记录工具
  • 原文地址:https://www.cnblogs.com/season-xie/p/6340026.html
Copyright © 2011-2022 走看看