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语句的分支覆盖情况,计算一个方法里面的总分支数,确定执行和不执行的 分支数量。

  • 相关阅读:
    关闭浏览器清除cookie
    JSONP跨域请求数据报错 “Unexpected token :”的解决办法
    HTTP请求方法
    Html 中判断某个class的个数
    将div标签中的table水平居中
    js阻止事件冒泡
    Vue中V-bind的使用。为何标签中style="height:90px"也需要写为V-bind:style="height:90px",哪些属性需要绑定?哪些属性不需要绑定?
    css中 !important的作用。
    Notification通知
    DataAdapter中DeleteCommand和UpdateCommand
  • 原文地址:https://www.cnblogs.com/season-xie/p/6340026.html
Copyright © 2011-2022 走看看