2017-03-01 88 views
1

我有一个父类BaseClassTestNG注释如下一些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> 

O比@BeforeSuite@BeforeTest方法没有其他方法正在运行。

我在其他非执行方法中涉及Extent Reports代码。

请建议是否有代码中的任何错误

+0

当我编辑你的代码时,分号从'System.out.println'语句中丢失。你能否请用我的编辑代码重新检查这个问题? –

+0

我已经对代码进行了修改,并用S.O.P代替,以便于评估。但在我的项目中我没有错过分号。 –

+0

现在,它对你来说工作得很好吗? –

回答

0

有超过满足的眼睛。我的计算机上的例子
输出:

BEFORE SUITE : 
BEFORE CLASS 
BEFORE METHOD 
After METHOD 
After test 

After Suite 

我敢打赌,你有更多的类,它从BaseClass继承,不只是一个。 由于类似this后面的原因,这些方法未正确执行。实现一个InvokedMethodListener将帮助您解决继承问题。

+0

是的,你说得对,有很多类在BaseClass中定义了webDriver的实例。将尝试使用“InvokedMethodListener”,并让你知道谢谢你 –

+0

@PravallikaEsarla,如果这个答案是有帮助的,upvoting /接受如何? ;) –