我有一些课程。 我都上课,我有一些测试。 示例:
public class testpage1(){
@test
@Tag("Regression")
void test1(){
system.out.println("Test1");
}
void test2(){
system.out.println("Test2");
}
}
public class testpage2(){
@test
@Tag("Regression")
void test3(){
system.out.println("Test3");
}
void test4(){
system.out.println("Test4");
}
}
public class testpage3(){
@test
@Tag("Regression")
void test5(){
system.out.println("Test5");
}
void test6(){
system.out.println("Test6");
}
}
我还有其他课程要上:
@RunWith(value = JunitPlatform.class)
@IncludeTags(value = {"Regression"})
当我上这门课时, 无需任何命令即可试运行,
如何命令测试按照我想要的顺序运行?
使用 Junit 通常,测试方法将按照其名称的顺序执行,并按升序排序。
或者您可以使用注释@Order指定订单 @订单(1) @订单(2) ...
jUnit5 允许您使用
@Order()
注释设置测试执行顺序。public class testpage1(){
@test
@Order(1)
@Tag("Regression")
void test1(){
system.out.println("Test1");
}
void test2(){
system.out.println("Test2");
}
}
public class testpage2(){
@test
@Order(2)
@Tag("Regression")
void test3(){
system.out.println("Test3");
}
void test4(){
system.out.println("Test4");
}
}
public class testpage3(){
@test
@Order(3)
@Tag("Regression")
void test5(){
system.out.println("Test5");
}
void test6(){
system.out.println("Test6");
}
}
这应该使这些测试相应地执行
我认为您在问题中解决了两个问题:
一种可能的解决方案是使用嵌套类进行测试(如果测试位于同一文件中)。
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestClassOrder;
import org.junit.jupiter.api.TestMethodOrder;
@TestMethodOrder(OrderAnnotation.class)
@TestClassOrder(org.junit.jupiter.api.ClassOrderer.OrderAnnotation.class)
public class SimpleOrderTest {
@Nested
@Order(2)
class NestedTestclass1Test {
@Test
@Order(1)
void test1() {
System.out.println("Test1");
}
@Test
@Order(2)
void test2() {
System.out.println("Test2");
}
}
@Order(1)
@Nested
class NestedTestclass2Test {
@Test
@Order(1)
void test3() {
System.out.println("Test3");
}
@Test
@Order(2)
void test4() {
System.out.println("Test4");
}
}
}