TestNG @BeforeClass Annotation
March 22, 2023
In TestNG test class, we can have a method that will run just after class initialization. To create such method, we need to use @BeforeClass
annotation. The @BeforeClass
annotated method will run before the first test method in the current class.
Find the code snippet to use
@BeforeClass
annotation.
public class MySimpleTest { @BeforeClass public void setUp() { System.out.println("Test setup completed."); } ------ }
@BeforeClass
can be used to setup some configurations used by all tests such as database connection, creating seed data etc.
Using @BeforeClass
Example-1: In this example, we have a test class containing a method annotated with@BeforeClass
and a method annotated with @Test
. In the output we will see that @BeforeClass
method is running before @Test
method.
MySimpleTestOne.java
package com.concretepage; import static org.testng.Assert.assertEquals; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class MySimpleTestOne { @BeforeClass public void setUp() { System.out.println("MySimpleTestOne: Test setup completed."); } @Test public void divisionTest() { System.out.println("...divisionTest..."); assertEquals(20 / 5, 4); } }
@BeforeClass
method and two @Test
methods. The @BeforeClass
method will run before first test method.
MySimpleTestTwo.java
package com.concretepage; import static org.testng.Assert.assertEquals; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class MySimpleTestTwo { @BeforeClass public void setUp() { System.out.println("MySimpleTestTwo: Test setup completed."); } @Test public void addTest() { System.out.println("...addTest..."); assertEquals(20 + 30, 50); } @Test public void multiplyTest() { System.out.println("...multiplyTest..."); assertEquals(5 * 15, 75); } }
Running Test Classes
Method-1: In eclipse to run test classes, right click on test file -> Run As ->TestNG.Method-2: Create
testng.xml
and configure all test classes that we have created.
src/test/resources/testng.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" > <suite name="Suite1" verbose="1" > <test name="Regression1"> <classes> <class name="com.concretepage.MySimpleTestOne"/> <class name="com.concretepage.MySimpleTestTwo"/> </classes> </test> </suite>
testng.xml
, right click on xml file -> Run As ->TestNG.
Find the output in console.
