我已配置了仅运行集成测试的配置文件,但它仍在运行所有测试。 这是配置:
<profile>
<id>integration</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>test</goal>
</goals>
<phase>test</phase>
<configuration>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
我尝试使用像http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html解释的正则表达式,但我得到了这个不起作用。 我如何只使用IT.java获得运行该测试的测试?
由于
答案 0 :(得分:0)
您尚未重新配置surefire运行,而是在生命周期中添加了另一个。这样,surefire:test运行两次,一次使用默认执行ID(default-test
),一次使用新执行(integration-test
)
如果您只想更改正在运行的测试,可以使用:
<profile>
<id>integration</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
只会重新配置现有的执行。
然而,正如khmarbaise已在评论中写道,仅仅使用maven-failsafe-plugin
更有意义。如果你真的想跳过正常的单元测试(无论如何你想要那个?),你可以在你的个人资料中明确禁用surefire(使用skipTests
- 配置)。