TestNG Annotations de l'ordre

J'ai une question sur l'ordre des opérations avec TestNG annotations... j'ai le code suivant:

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

Mon résultat est le suivant:

TestNG Annotations de l'ordre

Ma question est, pourquoi est - @AfterTest méthode de ne pas courir après chaque annotation @Test? Ne TestNG traiter l'ensemble de la classe en tant que "Test"? Il semble comme c'est le cas, car l' @BeforeTest et @AfterTest sont à l'extérieur de la @BeforeClass et @AfterClass, mais je voulais être sûr que je comprends. Je suppose que je pourrais utiliser le @BeforeMethod et @AfterMethod dans ce cas à exécuter avant et après le test1 et test2 dans cette classe. Merci!

OriginalL'auteur zmorris | 2015-02-18