2017-03-01 36 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 /接受如何? ;) –