Have a question?
Message sent Close
View Categories

TestNG Dependent

filename.js
public class SingleDependency {

  @Test
  public void initialize() {

    // setup code…

    System.out.println("initialize");

  }

  @Test(dependsOnMethods = "initialize")
  public void performAction() {

    // only runs if initialize() passed

    System.out.println("performAction");

  }

}

filename.js
Require all listed methods to pass before running:

public class MultipleDependencies {

  @Test
  public void stepOne() { /*…*/ }

  @Test
  public void stepTwo() { /*…*/ }

  @Test(dependsOnMethods = { "stepOne", "stepTwo" })
  public void finalStep() {

    // runs only if both stepOne() & stepTwo() passed

  }

}

📄
filename.js
public class BaseTests {

  @Test
  public void baseSetup() { /*…*/ }

}

public class InheritedTests extends BaseTests {

  @Test(dependsOnMethods = "baseSetup")
  public void childTest() {

    // will wait for BaseTests.baseSetup()

  }

}

📄
filename.js
public class GroupDependency {

  @Test(groups = "init")
  public void initDb() { /*…*/ }

  @Test(groups = "init")
  public void initCache() { /*…*/ }

  @Test(dependsOnGroups = "init")
  public void runTests() {

    // runs after all tests in the “init” group have passed

  }

}
📄
filename.js
@Test(dependsOnGroups = { "init", "config" })
public void finalTest() { … }

📄
filename.js
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

<suite name="DependentSuite">

  <test name="XMLDeps">

    <classes>

      <class name="com.example.tests.MyTests">

        <methods>

          <!-- require init() before running runMain() -->

          <include name="runMain">

            <depends-on>

              <method name="init"/>

            </depends-on>

          </include>

        </methods>

      </class>

    </classes>

  </test>

</suite>