我有一个父类
BaseClass
,其TestNG
注释如下
public class BaseClass
{
protected static WebDriver driver;
@BeforeSuite
public void beforeSuite()
{
System.out.println("\nBEFORE SUITE : ");
}
@BeforeTest
public void launch() throws IOException
{
//CODE TO LAUNCH BROWSER
}
@BeforeClass
void beforeclass()
{
System.out.println("BEFORE CLASS");
}
@AfterClass
void afterClass()
{
System.out.println("After test ");
}
@BeforeMethod
void beforeMethod()
{
System.out.println("BEFORE METHOD ");
}
@AfterMethod
void afterMethod ()
{
System.out.println("After METHOD ");
}
@AfterSuite
void afterSuite()
{
System.out.println("\n After Suite");
}
}
和
child class
将其扩展如下
public class SearchQualityRuleTest extends BaseClass
{
@Test
public void searchTest() throws InterruptedException
{
//Assertions
}
}
我的XML文件如下
<suite name="AAD-AED suite" verbose="1" >
<test name="AED tests">
<classes>
<class name="tests.AED_searchQualityRuleTest"/>
</classes>
</test>
</suite>
除了
@BeforeSuite
和 @BeforeTest
方法之外,没有其他方法正在运行。
我在其他未执行的方法中有与
Extent Reports
相关的代码。
代码如有错误请指出
事情远不止你看到的那样。
您的示例在我的计算机上的输出:
BEFORE SUITE :
BEFORE CLASS
BEFORE METHOD
After METHOD
After test
After Suite
我打赌你有更多的类,它们继承自
BaseClass
,而不仅仅是一个。
由于类似于this后面的原因,这些方法无法正确执行。实现 InvokedMethodListener
将帮助您克服继承问题。
Include BaseClass in your testng.xml
<suite name="AAD-AED suite" verbose="1" >
<test name="AED tests">
<classes>
<class name="tests.AED_searchQualityRuleTest"/>
<class name="tests.AED_BaseClass"/>
</classes>
</test>
</suite>