Is it possible to call @AfterMethod methods in specific order? I have an example code:
public class PriorityTest { @BeforeClass(alwaysRun = true) public void setUp() throws Exception { System.out.println("BeforeClass PriorityTest.java"); } @Test public void defaultPriority(){ System.out.println("default"); } @Test (priority = 3) public void t1(){ System.out.println("t1"); } @Test (priority = 2) public void t2(){ System.out.println("t2"); } @Test (priority = 1) public void t3(){ System.out.println("t3"); } @Test (priority = -1) public void t_1(){ System.out.println("t -1"); } @AfterMethod public void after2(){ System.out.println("after2"); } @AfterMethod public void after1(){ System.out.println("after1"); } }
Priority of @Test works perfectly. I want to do the same with @AfterMethod, but when I write code @AfterMethod (priority = 1) it is compilation error. When I run without priority there is always alphabetically order (only method name matters). Here is the output: BeforeClass PriorityTest.java t -1 after1 after2 default after1 after2 t3 after1 after2 t2 after1 after2 t1 after1 after2
Is there any possibility to call that methods in specific order (e.g. special paremeter or annotation)?
PS. I know I can write one AfterMethod and then call methods in specific order, but I think about many AfterMethod annotations.