zoukankan      html  css  js  c++  java
  • 使用maven运行单元測试总结

    maven本身没有单元測试框架,可是maven的default生命周期的test阶段绑定了maven-surefire-plugin插件,该插件能够调用Junit3、Junit4、TestNG等Java流行測试框架完毕单元測试。

    在pom中增加Junit依赖

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
    </dependency>

    约定优于配置

    maven的default生命周期的test阶段与maven-surefire-plugin插件的test插件目标内置绑定。

    默认情况下。maven-surefire-plugin的test目标会自己主动运行測试源代码路径(默认:src/test/java)下的全部符合一组命名规则的測试类。

    该命名规则例如以下:

    1. **/Test*.java 不论什么子文件夹下全部命名以Test开头的java类
    2. **/*Test.java 不论什么子文件夹下全部命名以Test结尾的java类
    3. **/*TestCase.java 不论什么子文件夹下全部命名以TestCase结尾的java类

    跳过測试

    pom中配置

    • skipTests配置,跳过測试运行阶段
     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.5</version>
        <configuration>
            <skipTests>true</skipTests>
        </configuration>
     </plugin>
    • skip配置。跳过測试运行阶段
     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.5</version>
        <configuration>
            <skip>true</skip>
        </configuration>
     </plugin>

    mvn命令行中增加參数

    • skipTests
    mvn clean package -DskipTests=true
    • maven.test.skip(须要注意的是,maven-compiler-plugin插件的testCompile插件目标和maven-resources-plugin插件的testResources插件目标也有这个參数,假设使用-Dmaven.skip.test=true,则跳过了測试资源文件处理、測试代码编译和运行三个阶段。关于maven的生命周期和插件的具体描写叙述。请參考我的另两篇博客:maven生命周期具体解释Maven插件具体解释)
    mvn clean package -Dmaven.test.skip=true

    说明:此处的“maven.test.skip”为maven-surefire-plugin插件的test插件目标的參数的表达式,其相应的插件目标參数为上面pom中配置的skip參数。并非全部插件目标參数都有表达式。也就是说。一些插件目标參数仅仅能在pom中配置。

    关于插件目标參数和其表达式的具体信息,能够去maven官网的相应插件章查询,地址为:maven官网插件。maven-surefire-plugin中skip的描写叙述例如以下所看到的(请放大查看☺):
    skip&skipTests
    跳过測试命令运行情况请參考我的还有一篇博客:maven跳过单元測试的两个參数差别

    动态指定要运行的測试用例

    使用test參数能够在命令行指定要运行的測试用例的类名。

    1. mvn test -Dtest=demomavenTest 指定单个測试运行类
    2. mvn test -Dtest=demo*Test 指定全部以demo开头以Test结尾的測试类
    3. mvn test -Dtest=demo*Test, heheTest 以逗号隔开多个指定的測试类

    注意:当test參数没有值时,默认构建会失败。此时加上failIfNoTests=false,即使没有測试也不报错:

    mvn test -Dtest -DfailIfNoTests=false 

    上述命令不会运行不论什么測试。构建也能顺利完毕。

    这也是一种跳过全部測试完毕构建的方法。

    包括与排除測试用例

    pom中能够配置includes和excludes參数来包括和排除指定的測试类:

     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.5</version>
        <configuration>
            <includes>
              <include>**/*Tests.java</include>
            </includes>
            <excludes>
              <exclude>**/*ServiceTest.java</exclude>
              <exclude>**/ServiceTest*.java</exclude>
            </excludes>
        </configuration>
     </plugin>

    (本文是看了大神徐晓斌的maven3 in action一书的相关章节之后的读书笔记和自己平时使用maven的一些经验,仅用于学习交流。)

  • 相关阅读:
    nuxt项目打包上线,以及nuxt项目基础代码分享
    SVG学习之stroke-dasharray 和 stroke-dashoffset 详解
    从零开始使用mocha测试
    小程序开发,视频播放和下载
    小程序开发中遇到的坑
    记录一次面试中的HTTP请求相关问题
    css3 min-content,max-content,fit-content, fill属性
    GC的 算法和种类
    JVM 的运行机制
    各种同步控制工具的使用
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6994582.html
Copyright © 2011-2022 走看看