优先 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() {
}
}
我有两个单独的测试 类(例如: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() {
}
}