/ / TestNG Annotations order - java, testng

Orden de anotaciones de TestNG - java, testng

Tengo una pregunta sobre el orden de las operaciones con las anotaciones de TestNG ... Tengo el siguiente código:

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");
}
}

Mi salida es la siguiente:

enter image description here

Mi pregunta es, ¿por qué no se ejecuta el método @AfterTest?después de cada @test anotación? ¿TestNG trata a toda la clase como la "Prueba"? Parece que este es el caso porque @BeforeTest y @AfterTest están fuera de @BeforeClass y @AfterClass, pero quería asegurarme de que lo entiendo. Supongo que podría usar el @BeforeMethod y @AfterMethod en este caso para ejecutar antes y después del test1 y el test2 en esta clase. ¡Gracias!

Respuestas

4 para la respuesta № 1

Mi pregunta es, ¿por qué el método @AfterTest no se ejecuta después de cada @Test? ¿anotación?

Como el Documentación dice

@AfterTest: el método anotado se ejecutará después de toda la prueba Métodos pertenecientes a las clases dentro del <prueba> etiqueta se ha ejecutado.

y

@BeforeTest: el método anotado se ejecutará antes que cualquier método de prueba perteneciente a las clases dentro del <prueba> la etiqueta se ejecuta.