使用Maven进行测试

1、Maven 本身并不是一个单元测试框架,它只是在构建执行到特定生命周期阶段的时候,通过插件来执行 JUnit 或者TestNG 的测试用例。这一插件就是 maven-surefire-plugin ,可以称其为测试运行器( Test Runner ),它能很好地兼容JUnit3  JUnit4 以及 TestNG 

2、在默认情况下, maven-surefire-plugin 的 test 目标会自动执行测试源码目录(默认为 src/test/java/ )下所有符合以下命名模式的测试类:

1)  **/Test*.java :任何子目录下所有命名以 Test 开头的 Java 类。

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

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

3、可以设置 -DskipTetst 命令行参数跳过测试的执行,也可以在 POM 中配置如下信息:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.5</version>
  <configuration>
    <skipTests>true</skipTests>
  </configuration>
</plugin>
4、 可以设置   -Dmaven.test.skip=true   跳过测试代码的编译和执行,也可以在   POM   中配置如下:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.1</version>
  <configuration>
    <skip>true</skip>
  </configuration>
</plugin>

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.5</version>
  <configuration>
    <skip>true</skip>
  </configuration>
</plugin>
实际上   maven-compiler-plugin     testCompile     maven-surefire.plugin     test   都提供了一个参数   skip   ,它的命令行表达式为   maven.test.skip  

5、maven-surefire.plugin 提供了一个 test 参数,让 Maven 用户可以只运行指定的测试用例, test 参数的值是想指定的测试用例的类名,同时该参数还支持多个值以及通配符 :

mvn test –Dtest=Random*Test,AccountCaptchaServiceTest 。如果指定的类名不存在,会导致构建失败,但可以通过 -DfailIfNoTests=false 来避免失败。

6、 除了默认命名的测试文件   Maven   可以在   POM   配置中指定想包含或者想排除的测试类:

<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>**/TempDaoTest.java</exclude>
    </excludes>
  </configuration>
</plugin>
两个星号   **   用来匹配任意路径,一个星号   *   匹配除路径分隔符外的   0   个或多个字符。
7、  默认情况下, maven-surefire-plugin 会在项目的 target/surefire-reports 目录下生成两种格式的错误报告:

1)  简单文本格式

2)  与 JUnit 兼容的 XML 格式(是 Java 单元测试报告的事实标准,可以用 Eclipse 的 JUnit 插件直接打开,也可以被Hudsonw 使用。)

8、 Maven   用户可以通过配置   maven-jar-plugin   将测试类打包,从而可以让别的项目重用测试代码:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.2</version>
  <executions>
    <execution>
       <goals>
          <goal>test-jar </goal>
       </goals>
    </execution>
  </executions>
</plugin>

maven-jar-plugin 有两个目标,分别是 test 和 test-jar ,前者通过 Maven 的内置绑定在 default 生命周期的 package阶段运行,作用是对项目主代码进行打包,而后者没有内置绑定,其默认绑定生命周期阶段为 package 。

在声明一个测试包构件依赖时, type 元素的值需要设定为 test-jar :

<dependency>
  <groupId>com.juvenxu.mvnbook.account</groupId>
  <artifactId>account-captcha</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <type>test-jar</type>
  <scope>test</scope>
</dependency>


原博文地址:http://seanzhou.iteye.com/blog/1393858


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值