• maven插件之maven-surefire-plugin,junit单元测试报告和sonar测试覆盖率的整合说明


     

    POM中配置的如下:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19</version>
    </plugin>
    • 为了让junit单元测试完成时,可以生成报告,必须对工程中src/test/java的class文件如此命名:

    **/Test*.java:任何子目录下所有命名以Test开关的Java类。 
    **/Test.java:任何子目录下所有命名以Test结尾的Java类。 
    *
    /*TestCase.java:任何子目录下所有命名以TestCase结尾的Java类。

    在通过mvn test执行了单元测试后,将会在工程的父级目录target/中生成surefire-reports子文件夹(包含.txt和.xml两种形式) 
    注意:如果不以上方的方式命名,不会生成报告;若引用的为Testng框架则不受此约束

    其实以上都是为了在已配置的sonarqube平台中'代码覆盖率'作准备工作的,那么接下来最后执行如此即可:

    1 mvn clean test cobertura:cobertura -Dcobertura.report.format=xml sonar:sonar
    View Code

    附上一个Demo示例图 

    替代文字 
    替代文字

    以上是本人花了两天时间总结而来的精华,翻阅了大量的网络资料。最后附上一个在实施完成之后的文章,个人推荐:http://seanzhou.iteye.com/blog/1393858

    另外,Demo的pom.xml写得并没有网上的那么复杂,如下:

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 
      3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      4 
      5 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      6 
      7 <modelVersion>4.0.0</modelVersion>
      8 
      9 <groupId>SelfAnyTest</groupId>
     10 
     11 <artifactId>SelfAnyTest</artifactId>
     12 
     13 <version>0.0.1-SNAPSHOT</version>
     14 
     15 <name>SelfAnyTest</name>
     16 
     17 <description>非项目用的测试与调试工程</description>
     18 
     19 <dependencies>
     20 
     21 <dependency>
     22 
     23 <groupId>junit</groupId>
     24 
     25 <artifactId>junit</artifactId>
     26 
     27 <version>4.12</version>
     28 
     29 <scope>test</scope>
     30 
     31 </dependency>
     32 
     33 </dependencies>
     34 
     35 <distributionManagement>
     36 
     37 <snapshotRepository>
     38 
     39 <id>ossrh</id>
     40 
     41 <url>https://oss.sonatype.org/content/repositories/snapshots</url>
     42 
     43 </snapshotRepository>
     44 
     45 <repository>
     46 
     47 <id>ossrh</id>
     48 
     49 <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
     50 
     51 </repository>
     52 
     53 </distributionManagement>
     54 
     55 <build>
     56 
     57 <resources>
     58 
     59 <resource>
     60 
     61 <directory>src/main/resources</directory>
     62 
     63 </resource>
     64 
     65 </resources>
     66 
     67 <plugins>
     68 
     69 <plugin>
     70 
     71 <groupId>org.apache.maven.plugins</groupId>
     72 
     73 <artifactId>maven-source-plugin</artifactId>
     74 
     75 <version>2.2.1</version>
     76 
     77 </plugin>
     78 
     79 <plugin>
     80 
     81 <groupId>org.apache.maven.plugins</groupId>
     82 
     83 <artifactId>maven-javadoc-plugin</artifactId>
     84 
     85 <version>2.9.1</version>
     86 
     87 </plugin>
     88 
     89 <plugin>
     90 
     91 <groupId>org.apache.maven.plugins</groupId>
     92 
     93 <artifactId>maven-compiler-plugin</artifactId>
     94 
     95 <version>3.3</version>
     96 
     97 <!-- <configuration>
     98 
     99 <source>1.7</source>
    100 
    101 <target>1.7</target>
    102 
    103 <compilerId>eclipse</compilerId>
    104 
    105 </configuration> -->
    106 
    107 <dependencies>
    108 
    109 <dependency>
    110 
    111 <groupId>org.codehaus.plexus</groupId>
    112 
    113 <artifactId>plexus-compiler-eclipse</artifactId>
    114 
    115 <version>2.5</version>
    116 
    117 </dependency>
    118 
    119 </dependencies>
    120 
    121 </plugin>
    122 
    123 <plugin>
    124 
    125 <groupId>org.apache.maven.plugins</groupId>
    126 
    127 <artifactId>maven-surefire-plugin</artifactId>
    128 
    129 <version>2.19</version>
    130 
    131 </plugin>
    132 
    133 </plugins>
    134 
    135 </build>
    136 
    137 </project>
    View Code

    因为maven有很多依赖可以非显示的写入,具体的受限于精力及非服务需要,未作探究。

  • 相关阅读:
    2014.5.20知识点学习:void及void指针含义的深刻解析(转载)
    2014.5.20知识点学习:void与void*(转载)
    2014.5.19知识点学习:上下文切换
    编写“全选”按钮来操作大量复选框
    排序算法(冒泡排序,选择排序,插入排序,快速排序)
    算法基础
    Git &GitHub
    flask 上下文管理 &源码剖析
    rest-framework框架的基本组件
    Django的FBV和CB
  • 原文地址:https://www.cnblogs.com/hailongchen/p/5242163.html
Copyright © 2020-2023  润新知