/ / TestNG Kolejność adnotacji - java, testng

Zamówienie Annotations TestNG - java, testng

Mam pytanie dotyczące kolejności operacji z adnotacjami TestNG ... Mam następujący kod:

public class AnnotationsTest {

@BeforeSuite(alwaysRun = true)
public static void beforeSuite() {
System.out.println("@BeforeSuite");
}

@BeforeClass(alwaysRun = true)
public static void beforeClass() {
System.out.println("@BeforeClass");
}

@BeforeTest(alwaysRun = true)
public static void beforeTest() {
System.out.println("@BeforeTest");
}

@BeforeMethod(alwaysRun = true)
public static void beforeMethod() {
System.out.println("@BeforeMethod");
}

@AfterSuite(alwaysRun = true)
public static void afterSuite() {
System.out.println("@AfterSuite");
}

@AfterClass(alwaysRun = true)
public static void afterClass() {
System.out.println("@AfterClass");
}

@AfterTest(alwaysRun = true)
public static void afterTest() {
System.out.println("@AfterTest");
}

@AfterMethod(alwaysRun = true)
public static void afterMethod() {
System.out.println("@AfterMethod");
}

@Test
public void test() {
System.out.println("Test");
}

@Test
public void test2() {
System.out.println("Test2");
}
}

Moje wyniki są następujące:

wprowadź opis obrazu tutaj

Moje pytanie brzmi, dlaczego metoda @AfterTest nie jest uruchamianapo każdej adnotacji @Test? Czy TestNG traktuje całą klasę jako "Test"? Wydaje się, że tak jest, ponieważ @BeforeTest i @AfterTest znajdują się poza @BeforeClass i @AfterClass, ale chciałem mieć pewność, że rozumiem. Zakładam, że w tym przypadku mógłbym użyć metody @BeforeMethod i @AfterMethod przed i po test1 i test2 w tej klasie. Dzięki!

Odpowiedzi:

4 dla odpowiedzi № 1

Moje pytanie brzmi, dlaczego metoda @AfterTest nie jest uruchamiana po każdym testowaniu @Test adnotacja?

Jako Dokumentacja mówi

@AfterTest: Metoda adnotacyjna zostanie uruchomiona po zakończeniu wszystkich testów metody należące do klas wewnątrz <test> tag został uruchomiony.

i

@BeforeTest: Metoda z adnotacjami zostanie uruchomiona przed jakąkolwiek metodą testową należący do klas wewnątrz <test> tag jest uruchamiany.