从4.11版本开始,如果想要改变测试执行顺序,只要简单的加一个 @FixMethodOder 注释就可以。
目前比较常见的有三种:
@FixMethodOrder(MethodSorters.DEFAULT):默认顺序。由方法名的哈希码值决定执行顺序。由于哈希码的生成和OS有关,所以不用的OS可能会出现不一样的执行顺序。在某一操作系统上,多次执行的顺序不变。
@FixMethodOrder(MethodSorters.JVM):由JVM来决定执行顺序。当然执行顺序随着每一次的测试可能会有所不用。
@FixMethodOrder(MethodSorters.NAME_ASCENDING):由方法名的字典顺序来决定执行顺序。
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
//@FixMethodOrder(MethodSorters.DEFAULT)
//@FixMethodOrder(MethodSorters.NAME_ASCENDING)
//@FixMethodOrder(MethodSorters.JVM)
public class TestExecuteOrder {
@Test
public void test03Third() {
System.out.println("test03");
}
@Test
public void test01First() {
System.out.println("test01");
}
@Test
public void test02Second() {
System.out.println("test02");
}
}
执行结果如下
1.什么都不加:
test02
test01
test03
2. @FixMethodOrder(MethodSorters.DEFAULT) :
test02
test01
test03
3. @FixMethodOrder(MethodSorters.NAME_ASCENDING):
test01
test02
test03
4. @FixMethodOrder(MethodSorters.JVM):
test03
test01
test02
或者
test02
test01
test03