2014-01-29 53 views
0

我是新來的,所以這對我來說不是那麼明顯。我試圖從testNG實現IRetryAnalyzer,重新運行失敗的測試用例。IRetryAnalyzer幫助,不能使它工作

這就是我所做的,但不能使它工作。請注意我從互聯網複製的所有代碼。

public class Retry implements IRetryAnalyzer { 

private int retryCount = 0; 
private int maxRetryCount = 2; 

@Override 
public boolean retry(ITestResult result) { 

    if (retryCount < maxRetryCount) { 
     System.out.println("Entre"); 
     retryCount++; 
     return true; 
    } 
    return false; 

} 

這是我的測試方法,它應該失敗並重新運行測試。

@Parameters({ "nombrePlan", "nombreBuild", "nomTL_verificacionUIHomePageIssuer" }) 
@Test(retryAnalyzer = Retry.class) 
    public void verificacionUIHomePageIssuer(String nombrePlan, String nombreBuild, String nomTL_verificacionUIHomePageIssuer) throws Exception { 
    HomePageIssuer homePage = new HomePageIssuer(driver); 
    //Assert.assertTrue(homePage.validacionLogin(), homePage.getError()); 
    Assert.assertTrue(false); 
} 

事情是,當我運行它不起作用驅動程序關閉,測試再也不會開始。 任何幫助,將不勝感激。 在此先感謝。

+0

你有什麼異常嗎?如何設置參數值。除了HomePageIssuer初始化之外,我使用完全相同的代碼,並重試。你是什​​麼版本的testng? –

+0

我得到一個空指針異常,因爲當測試完成時,驅動程序實例關閉,所以當它試圖重新運行測試時,它不會實例化一個新的驅動程序。而我無法弄清楚如何讓它實例化一個新的驅動程序。 – elcharrua

+0

我在6.3.1 testng版本上。它可能是一個版本錯誤? – elcharrua

回答

1

基於評論,@BeforeTest被用於驅動程序初始化,因此Retry沒有再次調用它。

BeforeTest只會針對整個標籤調用一次。嘗試使用@beforemethod,但這會在每個測試用例之後初始化。

+0

感謝您的幫助,非常感謝。 – elcharrua