mvn test默认行为

仿照了spring源代码中的测试类的命名,全部都是以Tests结尾的,但是搬过来用后,运行mvn test,却报找不到任何测试类,如下:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
There are no tests to run.


郁闷之际查了一下maven参考资料,发现原来是surefire插件的默认行为所致。
maven是使用surefire插件执行测试的,它按照指定格式的类名来查找匹配的测试类,
默认包含的测试类:
■**/*Test.java
■**/Test*.java
■**/*TestCase.java
默认排除的测试类:
■**/Abstract*Test.java
■**/Abstract*TestCase.java


因此默认情况下“**/*Tests.java”是不会被mvn test发现并执行的,可按如下修改surefire插件的配置以达到包含"**/*Tests.java"测试类的目的:
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <includes>
          <include>**/*Tests.java</include>
        </includes>
        <excludes>
          <exclude>**/Abstract*.java</exclude>
        </excludes>
      </configuration>
    </plugin>
  </plugins>
</build>

单个测试判断 mvn test -Dtest={测试文件名称}

猜你喜欢

转载自zhuruxin86.iteye.com/blog/974916
mvn