在Maven / Junit中调用之前忽略测试?

时间:2012-02-29 18:51:09

标签: maven junit categories

除非存在特定的系统变量,否则有没有办法设置Maven项目默认忽略一组测试?

例如,如果我运行以下内容:

mvn clean install

某些测试集合不会作为构建的一部分执行。如果我以这种方式执行构建:

mvn clean install -DrunAllTests

标准版本中默认忽略的测试也会执行。

我知道我可以使用TestNG来做到这一点,但我现在更愿意继续使用JUnit。我也尝试使用Junit Categories功能,但默认情况下无法让测试被忽略。

有什么想法或想法吗?

2 个答案:

答案 0 :(得分:4)

要包含执行测试,您可以为maven-surefire-plugin添加以下配置:

<configuration>
   <includes>
      <include>**/SomeTests*.java</include>
   </includes>
</configuration>

因此,您可以将其与Maven配置文件一起使用,并在空间配置文件中提取/启用其他测试。例如:

<profiles>
  <profile>
    <id>allTests</id>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <includes>
            <include>**/SomeOtherTests*.java</include>
          </includes>
        </configuration>
     </plugins>
  </profile>
</profiles>

然后maven命令看起来像这样:

mvn clean install -PallTests

如果您更喜欢使用属性,可以将激活部分添加到allTests配置文件并根据给定属性激活它。

答案 1 :(得分:2)

您可以将JUnit的Category功能与Maven的Surefire插件的excludeGroups一起使用。