优先 JUNIT 测试的执行顺序 类

Prioritizing execution order of JUNIT test classes

我有两个单独的测试 类(例如:TestClassA、TestClassB)我希望 TestClassA 先到 运行,然后 TestClassB 到 运行。我怎么能这样做。任何想法。

请注意,我在这里使用的是 Springboot,我的测试依赖项是:spring-boot-starter-test

你可以使用 junit 5

@Test
@Order(1)    
public void firstTest() {
    output.append("a");
}

@Test
@Order(2)    
public void secondTest() {
    output.append("b");
}  

在此处查看参考资料 https://www.baeldung.com/junit-5-test-order

并针对不同的 类 使用测试套件

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({ TestClass1.class, TestClass2.class })
public class AllTests {

}

如评论中所述,排序测试或让测试相互依赖是一种反模式,会使您的测试策略变得脆弱。所以下单需谨慎。

使用 Junit 4,您可以订购测试

@TestMethodOrder(OrderAnnotation.class)
public class OrderedTest {

@Test
@Order(1)    
public void firstTest() {

}

@Test
@Order(2)    
public void secondTest() {
}

@Test
@Order(3)    
public void thirdTest() {
}

}

使用 Junit 5

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class MethodOrderTest {


@Test
@Order(3)
void test1() {
}

@Test
@Order(1)
void test2() {
}

@Test
@Order(2)
void test3() {
}

}