Maven2插件surefire配置心得

1、不运行junit测试。

 

 <project>

  [...]

  <build>

    <plugins>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <configuration>

          <skip>true</skip>

        </configuration>

      </plugin>

    </plugins>

  </build>

  [...]

</project>

 

2、指定要运行的junit测试。

 

默认时,只要是符合以下三种命名规则的junit测试都要运行:

 

1)命名以Test字符开头的类

 

2)命名以Test字符结尾的类

 

3)命名以TestCase字符结尾的类

 

如果我们只要运行其中的一个或者一组测试代码,需要按照以下方式配置:

 

<project>

  [...]

  <build>

    <plugins>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <configuration>

          <includes>

            <include>Sample.java</include>

          </includes>

        </configuration>

      </plugin>

    </plugins>

  </build>

  [...]

</project>

3、指定不运行的junit测试。
<project>

  [...]

  <build>

    <plugins>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <configuration>

          <excludes>

            <exclude>**/TestCircle.java</exclude>

            <exclude>**/TestSquare.java</exclude>

          </excludes>

        </configuration>

      </plugin>

    </plugins>

  </build>

  [...]

</project>

一、junit运行结果不影响package或者install。
 maven2打包前会运行junit,但是,有时我们希望即使出现了错误,也要打包。maven2的设计者已经考虑到这种情况了。pom.xml文件配置内容如下:
<project>
 [...]
 <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <testFailureIgnore>true</testFailureIgnore>
        </configuration>
      </plugin>
    </plugins>
 </build>
 [...]
</project>

本文所有的说明均对surefire2.3版本。在pom.xml文件中配置Maven SureFire Plugin插件:

<project>

  [...]

  <build>

    <plugins>

      <plugging>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <configuration>

          ……

        </configuration>

      </plugin>

    </plugins>

  </build>

  [...]

</project>

可以在<configuration>……</configuration>中配置surefire插件的参数。本文以下内容均对configuration结点进行说明。

 

一、      必须的参数:

basedir

project路径。在测试用例中,可以用System.getProperty(“basedir”)获取basedir值。

testClassesDirectory

保存测试用例编译后的文件的路径。

默认值:target/test-classes

testSourceDirectory

保存测试用例源代码的路径。

默认值:src/test/java

二、      可选的参数

disableXmlReport

标识是否不生成xml格式的测试报告。

默认值:false

excludedGroups

要排除的测试组。任何在这里列出的测试组都不执行。

forkMode

可设置值有:never, once or always

默认:once.

groups

如果指定了,只有在组中的用例才会执行。

jvm

指定可运行的java虚拟机(或者指定可运行的java)。

默认:使用和maven相同的虚拟机。

printSummary

执行出错时是否打印错误信息。

默认:true

reportFormat

选择要生成的测试报告的格式。可设置值有:brief ,plain

默认:brief.

reportsDirectory

测试报告生成路径

skipExec

设置为true时,测试用例被编译,但是不会执行。

threadCount

执行时,指定可分配的线程数量。只和参数parallel配合使用有效。

默认:5.

trimStackTrace

是在测试报告中调整堆栈跟踪信息的行数,还是显示所有的跟踪信息。

默认:true

useFile

生成测试报告还是只输出到控制台。

默认:true.