Thứ tự thực thi các class test trong một test suite
Thứ tự thực thi các class test trong một test suite chính là thứ tự khai báo các class đó trong annotation @SuiteClasses
Ví dụ mình có 2 class test sau:
Bây giờ mình khai báo class TestB.java trước class TestA.java trong test suite thi nó sẽ thực hiện chạy class TestB.java trước
Nếu mình đổi thứ tự lại thành khai báo class TestA.java trước thì nó sẽ chạy class TestA.java trước.
Thứ tự thực thi các method trong một class test
Để chỉ rõ thứ tự chạy của các method trong class test ta dùng annotation @FixMethodOrder
ở đầu class.
Có 3 kiểu sắp xếp là:
@FixMethodOrder(MethodSorters.DEFAULT)
: Đây là kiểu sắp xếp mặc định nếu bạn không khai báo @FixMethodOrder
, tuy nhiên với kiểu này thì sẽ không thể xác định chính xác method nào sẽ được chạy trước
@FixMethodOrder(MethodSorters.JVM)
: Thứ tự các method test dựa theo JVM. Tuy nhiên thứ tự này có thể bị thay đổi khi chạy.
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
: Thứ tự các method được thực thi dựa theo tên method.
(Kiểu MethodSorters.NAME_ASCENDING
thì chắc chắn biết trước thứ tự các method sẽ chạy)
Ví dụ: Thực hiện chạy các method test theo thứ tự tên method:
Okay, Done!
Thứ tự chạy các test case trong JUnit -- ví dụ stackjava.com
References: