Suite XML and Groups

testng.xml

testng.xml describes what to run: which classes, which groups, and how (parallel, parameters).

testng.xml

testng.xml

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="ShopEase Regression" verbose="1">
  <parameter name="browser" value="chrome"/>
  <test name="Smoke">
    <groups>
      <run><include name="smoke"/></run>
    </groups>
    <classes>
      <class name="com.shopease.tests.LoginTest"/>
      <class name="com.shopease.tests.SearchTest"/>
      <class name="com.shopease.tests.CartTest"/>
    </classes>
  </test>
</suite>

Groups

@Test(groups = {"smoke", "regression"})
public void validLogin() { ... }

@Test(groups = "regression")
public void lockedUserSeesError() { ... }

@Parameters("browser")
@BeforeMethod(alwaysRun = true)        // alwaysRun: also runs when only some groups are selected
public void setUp(String browser) { driver = DriverFactory.create(browser); }

Example

Run one group from the command line:

mvn test -Dgroups=smoke

Example output

[INFO] Tests run: 12, Failures: 0, Errors: 0, Skipped: 0
[INFO] BUILD SUCCESS

Tip: Typical groups: smoke (10 minutes, every build), regression (full, nightly), sanity, and feature groups like cart.