TestNG annotations control the execution order of methods, from broadest scope (Suite) to narrowest (Method).
Execution order:
CODE
@BeforeSuite
@BeforeTest
@BeforeClass
@BeforeMethod
@Test
@AfterMethod
@AfterClass
@AfterTest
@AfterSuite
Annotation reference:
| Annotation | When it runs |
|---|---|
@BeforeSuite | Once before all test suites |
@AfterSuite | Once after all test suites |
@BeforeTest | Before each test tag in testng.xml |
@AfterTest | After each test tag |
@BeforeClass | Once before first method in the class |
@AfterClass | Once after last method in the class |
@BeforeMethod | Before each @Test method |
@AfterMethod | After each @Test method |
@Test | Marks a test method |
@DataProvider | Supplies data to @Test methods |
@Parameters | Passes parameters from testng.xml |
Example:
Java
@BeforeClass
public void launchBrowser() { driver = new ChromeDriver(); }
@BeforeMethod
public void openURL() { driver.get("https://automateqa.online"); }
@Test
public void verifyTitle() { Assert.assertEquals(driver.getTitle(), "AutomateQA"); }
@AfterClass
public void closeBrowser() { driver.quit(); }
