首页 > 解决方案 > 如何使用 maven 排除除两个之外的所有测试文件?

问题描述

我喜欢做类似下面的事情,它将排除除两个测试文件之外的所有测试用例?

<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.12.4</version>
      <configuration>
        <excludes>
            <exclude>**/*Test.java</exclude>
        </excludes>
        <includes>
            <include>path/to/Some1Test.java</include>
            <include>path/to/Some2Test.java</include>
        </includes>
      </configuration>
    </plugin>

这里的关键事实是,我不想排除的测试文件也与我想要排除的文件具有相同的命名模式。提前致谢。

标签: mavenincludemaven-surefire-plugin

解决方案


以下是带有示例的解决方案:

package com.example1;
import org.junit.Test;
public class TestClass1 {
    @Test
    public void test1() {
    }
}


package com.example1;
import org.junit.Test;

public class TestClass2 {
    @Test
    public void test2() {
    }
}

package com.example2;
import org.junit.Test;
public class TestClass1 {
    @Test
    public void test1() {
    }
}

package com.example2;
import org.junit.Test;
public class TestClass2 {
    @Test
    public void test2() {
    }
}

现在,以下是包含com.example1.TestClass1和的万无一失的插件配置com.example1.TestClass2。在这里,除了这两个之外,其他的测试类都不会执行。

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <includes>
                        <include>com/example1/TestClass1.java</include>
                        <include>com/example1/TestClass2.java</include>
                    </includes>
                </configuration>
            </plugin>
        </plugins>
    </build>

推荐阅读