使用maven-clover2-plugin测试代码覆盖率

首先给两个官网的地址:
http://docs.atlassian.com/maven-clover2-plugin/2.3.1/usage.html
http://maven.apache.org/archives/maven-1.x/plugins/clover/properties.html

大家可以先看一下
下面我先说一下我对clover的理解:当测试代码执行时,代码覆盖系统会收集哪些语句已被执行的信息,然后将这些信息作为基本的报告,我在尝试的时候发现必须通过单元测试才能生成有效的测试报告(这点不知道是否正确,如有问题还望指正)

首先使用maven-clover2-plugin需要申请获取license,申请地址如下:
https://id.atlassian.com/login?application=mac&continue=https//my.atlassian.com

需要先注册账号,这个应该需要翻qiang才可以。
申请好以后,可以在D盘下新建一个文件clover.license,将申请好的license写进去。

然后在要测试的项目的pom文件中加入如下代码:

首先是clover的依赖包:

<dependency>
   <groupId>com.atlassian.clover</groupId>
   <artifactId>clover</artifactId>
   <version>4.0.6</version>
</dependency>

这个要加在dependencies标签中。

然后在project标签中加入如下配置:

<build>
        <plugins>
            <plugin>  
                <groupId>org.apache.maven.plugin</groupId>  
                <artifactId>maven-compiler-plugin</artifactId>  
                <version>2.1</version>  
                <configuration>  
                    <skip>false</skip>  
                </configuration>  
            </plugin>  
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-surefire-plugin</artifactId>  
                <version>2.5</version>  
                <configuration>  
                    <skip>false</skip>  
                </configuration>  
            </plugin>

            <plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>maven-clover2-plugin</artifactId>   
                <configuration>
                    <jdk>1.7</jdk>
                    <flushPolicy>threaded</flushPolicy>
                    <flushInterval>5000</flushInterval>
                    <includes>
                      <include>**/*.java</include> 
                    </includes>
                    <excludes>
                       <!--  <exclude>**/*Test.java</exclude> -->
                    </excludes>  
                    <targetPercentage>0%</targetPercentage>
                    <generateHistorical>true</generateHistorical>
                    <licenseLocation>D:/clover.license</licenseLocation>
                 </configuration>

                 <executions>
                    <execution>
                        <id>main</id>
                        <phase>verify</phase>
                        <goals>
                          <goal>check</goal>
                          <goal>instrument</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>site</id>
                        <phase>pre-site</phase>
                        <goals>
                          <goal>instrument</goal>
                          <goal>aggregate</goal>
                        </goals>
                    </execution>
                 </executions>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <excludeDefaults>true</excludeDefaults>
        <plugins>
          <plugin>
            <groupId>com.atlassian.maven.plugins</groupId>
            <artifactId>maven-clover2-plugin</artifactId>
            <configuration>
                 <generatePdf>true</generatePdf>
                 <generateXml>true</generateXml>  
                 <generateHtml>true</generateHtml>
                 <generateHistorical>true</generateHistorical> 
                 <licenseLocation>D:/clover.license</licenseLocation>
            </configuration>
          </plugin>
        </plugins>
    </reporting>

具体的各个参数的含义可以查看官方文档,前边的两个插件是开启单元测试的编译和运行。

我是在eclipse下测试的,当执行maven install命令时,会在项目对应的target下生
成clover文件夹,里边会生成clover.db

使用cobertura:cobertura命令会在target目录下生成site/cobertura目录,里边包含生成的测试报告,下图为报告大概的样子:
这里写图片描述

这里写图片描述

使用clover2:log命令会生产汇总信息:
这里写图片描述

大概就是这个样子,要正常有效的数据应该还是需要开启单元测试并编写单元测试的代码,不然覆盖率就全是0

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012116457/article/details/59110392
文章标签: clover
个人分类: java
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭