Maven 故障安全插件不会运行用 JUnit 类别注释的测试类

标签 maven junit maven-failsafe-plugin

我有一个这样的界面:

public interface IntegrationTest {
}

我像这样配置故障安全插件:
 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.14</version>
    <configuration>
        <groups>acme.test.IntegrationTest</groups>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>integration-test</goal>
            </goals>
        </execution>
    </executions>
</plugin>

如果我然后创建这样的集成测试
@Category(IntegrationTest.class)
public class ExampleClassIntegrationTest {

@Test
public void slow_and_painful_test() {

此测试将不会运行。

但是,如果我根据 Inclusions and Exclusions of Tests 命名该类
**/IT*.java
**/*IT.java
**/*ITCase.java

像这样:
@Category(IntegrationTest.class)
public class ExampleClassIT {

@Test
public void slow_and_painful_test() {

测试运行良好。当我使用组标签时,为什么我必须命名测试并有注释?我错过了什么吗? documentation使用 JUnit 声明您可以在类级别使用 Category 注释。

最佳答案

那是因为这些是故障安全插件在执行时包含的默认 Java 类。
但是,您可以使用标签在您的 pom 中使用它:
例如

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

包括所有的java文件。

关于Maven 故障安全插件不会运行用 JUnit 类别注释的测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16790525/

相关文章:

java - 使用 Maven 编译 JRXML 时出现 ClassNotFoundException

java - pom 编辑器中的 Eclipse Maven 错误 : org. apache.maven.plugin.jar.JarMojo 错误

java - 如何在单元测试中忽略 @PreAuthorize ("isAuthenticated()") 注释?

java - 如何从Java中的主类访问src.test包或如何从主类运行测试类?

maven - 使用 maven-failsafe-plugin 在 Maven 中运行 JUnit4 测试套件

java - 编译错误: During maven build

Maven surefire 插件报告 - 文件名太长

java - 使用 intellij IDEA 从 Selenium + JUnit 生成 ANT 结果报告

maven - 为什么故障安全插件需要集成测试和验证目标?

java - 为什么 "mvn verify"不运行我的集成测试?