Apache Maven Surefire site具有以下示例语法,用于排除运行中的测试:
<configuration>
<excludes>
<exclude>**/TestCircle.java</exclude>
<exclude>**/TestSquare.java</exclude>
</excludes>
</configuration>
这排除了类,但是如果要排除的测试是在一个带有大量其他测试的类中 - 则无论您是否只想排除一个测试,都会排除该类中的每个测试。
这看起来并不精细。我想从一个有多个测试的类中排除一个测试。
我的问题是:有没有办法使用surefire在测试方法级别排除测试 - 而不是类级别?
答案 0 :(得分:0)
我认为没有选择 - 甚至不是隐藏的选项。 JUnit本身获取了应扫描以进行测试执行的文件列表。请参阅JUnitCore。
surefire插件可以区分groups中的测试。另请参阅Stackoverflow上的this answer和此Blog。
这可能是一种选择吗?
答案 1 :(得分:0)
使用JUnit&gt; = 4.8和Categories =&gt; http://maven.apache.org/surefire/maven-surefire-plugin/examples/junit.html
1. Add : public interface SlowTests{}
2. public class AppTest {
@Test
@Category(com.mycompany.SlowTests.class)
public void testSlow1() {
System.out.println("testSlow1");
}
@Test
@Category(com.mycompany.SlowTests.class)
public void testSlow2() {
System.out.println("testSlow2");
}
@Test
public void test3() {
System.out.println("test3");
}
@Test
public void test4() {
System.out.println("test4");
}
}
3.
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<configuration>
<groups>com.mycompany.SlowTests</groups>
</configuration>
</plugin>