anandhu
anandhu

Reputation: 760

Will inherited @BeforeTest Method run multiple times?

When using TestNG, If multiple test classes inherit a class containing a @BeforeTest method, will it run only once or everytime when each of the classes are called in the test case?

When I run the below code, the text "BEFORE TEST EXECUTED" is printed only once. Though both the test classes have this method inherited.

public class masterclass
{

@BeforeTest
public void show()
 {
 sout("BEFORE TEST EXECUTED")
 }
}

Test Class-1:

public class TestClass1 extends masterclass
 {
    @Test
    public void testA1() { }
}

Test Class-2:

public class TestClass2 extends masterclass
{
    @Test
    public void testB1() {}    
}

XML of the test Case :

<suite  name="testSuite">
<test name="MytestCase" >
    <classes>
        <class name="com.ui.test.TestClass1" />
        <class name="com.ui.test.TestClass2" />
    </classes>
</test>
</suite>

Upvotes: 0

Views: 1328

Answers (1)

Muzzamil
Muzzamil

Reputation: 2881

In your case, @BeforeTest will run one time. It will see to Testng.xml and will run before all test cases under <test> tag.

Master Test Class:

public class MasterClass {
    @BeforeTest
    public void show()
     {
     System.out.println("BEFORE TEST EXECUTED");
     }

}

Test Class-1:

public class TestClass1 extends MasterClass{

      @Test
       public void test()
          {
          System.out.println("Priority 0 (Default in Class 1)");
          }
   }

Test Class-2:

public class TestClass2 extends MasterClass{


      @Test(priority = 0)
       public void testin_LearningTestNGTest2_Class()
          {
          System.out.println("Priority 0 (Class 2)");
          }
   }

TestNG.xml:

<suite  name="testSuite">
<test name="MytestCase">
    <classes>
        <class name="com.ui.test.TestClass1" />
        <class name="com.ui.test.TestClass2" />
    </classes>
</test>
</suite>

Output:

BEFORE TEST EXECUTED
Priority 0 (Default in Class 1)
Priority 0 (Class 2)

Hope it will help you.

Upvotes: 3

Related Questions