Java – TestNG – @ aftermethod priority
Can the @ aftermethod method method be called in a specific order?
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");
}
}
@The priority of test is perfect I want to do the same for @ aftermethod, but when I write @ aftermethod (priority = 1), it is a compilation error When I don't have priority, I always arrange it alphabetically (only the method name is important) This is the output:
BeforeClass PriorityTest. Java T - 1 after1 after2 default after1 after2 T3 after1 after2 T2 after1 after2 T1 after1 after2
Is it possible to call the method in a specific order (such as special parameters or comments)?
PS. I know I can write an aftermethod and call the methods in a specific order, but I think of many aftermethod comments
Solution
@Aftermethod does not support priority parameters But it depends on useonmethods and dependsongroups, which can be used instead
dependsOnMethods
dependsOnGroups
In your case, you can use dependsonmethods
@AfterMethod
public void after2(){
System.out.println("after2");
}
@AfterMethod(dependsOnMethods = "after2")
public void after1(){
System.out.println("after1");
}
