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:
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
Vous devez vous connecter pour publier un commentaire.
Comme le La Documentation dit
et
@BeforeTest
méthode s'exécute une seule fois , vous pouvez utiliser@BeforeMethod
si vous souhaitez exécuter une méthode avant chaque cas de testOriginalL'auteur Neeraj Jain