/ / Anotações de TestNG - java, testng

Ordem de Anotações TestNG - java, testng

Eu tenho uma pergunta sobre a ordem das operações com anotações TestNG ... Eu tenho o seguinte 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");
}
}

Minha saída é a seguinte:

insira a descrição da imagem aqui

Minha pergunta é: por que o método @AfterTest não é executadodepois de cada anotação do @Test? O TestNG trata a turma inteira como o "Teste"? Parece que este é o caso porque o @BeforeTest e o @AfterTest estão fora do @BeforeClass e do @AfterClass, mas eu queria ter certeza de que entendi. Eu suponho que eu poderia usar o @BeforeMethod e @AfterMethod neste caso para executar antes e depois do test1 e test2 nesta classe. Obrigado!

Respostas:

4 para resposta № 1

Minha pergunta é: por que o método @AfterTest não é executado após cada @Test? anotação?

Enquanto o Documentação diz

@AfterTest: O método anotado será executado após todo o teste métodos pertencentes às classes dentro do <teste> tag foi executada.

e

@BeforeTest: O método anotado será executado antes de qualquer método de teste pertencente às classes dentro do <teste> tag é executada.