TestNG父类的一些方法没有运行

问题描述 投票:0回答:2

我有一个父类

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
相关的代码。

代码如有错误请指出

java testng
2个回答
0
投票

事情远不止你看到的那样。
您的示例在我的计算机上的输出:

BEFORE SUITE : 
BEFORE CLASS
BEFORE METHOD 
After METHOD 
After test 

 After Suite

我打赌你有更多的类,它们继承自

BaseClass
,而不仅仅是一个。 由于类似于this后面的原因,这些方法无法正确执行。实现
InvokedMethodListener
将帮助您克服继承问题。


0
投票
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> 
© www.soinside.com 2019 - 2024. All rights reserved.