TestNG - Execution Procedure

Advertisements


This tutorial explains the execution procedure of methods in TestNG which means that which method is called first and which one after that. Here is the execution procedure of the TestNG test API methods with the example.

Create a java class file name TestngAnnotation.java in C:\ > TestNG_WORKSPACE to test annotation.

import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.AfterSuite;

public class TestngAnnotation {
	// test case 1
	@Test
	public void testCase1() {
		System.out.println("in test case 1");
	}

	// test case 2
	@Test
	public void testCase2() {
		System.out.println("in test case 2");
	}

	@BeforeMethod
	public void beforeMethod() {
		System.out.println("in beforeMethod");
	}

	@AfterMethod
	public void afterMethod() {
		System.out.println("in afterMethod");
	}

	@BeforeClass
	public void beforeClass() {
		System.out.println("in beforeClass");
	}

	@AfterClass
	public void afterClass() {
		System.out.println("in afterClass");
	}

	@BeforeTest
	public void beforeTest() {
		System.out.println("in beforeTest");
	}

	@AfterTest
	public void afterTest() {
		System.out.println("in afterTest");
	}

	@BeforeSuite
	public void beforeSuite() {
		System.out.println("in beforeSuite");
	}

	@AfterSuite
	public void afterSuite() {
		System.out.println("in afterSuite");
	}

}

Next, let's create the file testng.xml in C:\ > TestNG_WORKSPACE to execute annotations.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
  <test name="test1">
    <classes>
       <class name="TestngAnnotation"/>
    </classes>
  </test>
</suite>

Compile the Test case class using javac.

C:\TestNG_WORKSPACE>javac TestngAnnotation.java

Now, run the testng.xml, which will run test case defined in provided Test Case class.

C:\TestNG_WORKSPACE>java org.testng.TestNG testng.xml

Verify the output.

in beforeSuite
in beforeTest
in beforeClass
in beforeMethod
in test case 1
in afterMethod
in beforeMethod
in test case 2
in afterMethod
in afterClass
in afterTest
in afterSuite

===============================================
Suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================

See the above output and this is how the TestNG execution procedure is:

  • First of all beforeSuite() method is executed only once.

  • Lastly, the afterSuite() method executes only once.

  • Even the methods beforeTest(), beforeClass(), afterClass() and afterTest() methods are executed only once.

  • beforeMethod() method executes for each test case but before executing the test case.

  • afterMethod() method executes for each test case but after the execution of test case.

  • In between beforeMethod() and afterMethod() each test case executes.



Advertisements
Advertisements