2015-04-20 177 views
0

我实施了重新运行从以下链接失败TestNG的测试类的逻辑:TestNG中重新运行测试,不运行BeforeClass课余方法

https://martinholladay.wordpress.com/2013/11/17/webdriver-2-0-automatically-retry-failed-tests/

不幸的是,它运行的“测试方法“注释,而不是运行BeforeClass(@BeforeClass)和AfterClass(@AfterClass)方法。我试图查看setDependsOnMethods和getDependsOnMethods ITestAnnotations的方法无济于事。

有人知道如何让侦听器类运行BeforeClass和AfterClass方法吗?

public class RetryListener implements IAnnotationTransformer { 
    public void transform(ITestAnnotation annotation, Class testClass, 
      Constructor testConstructor, Method testMethod) { 
     IRetryAnalyzer retry = annotation.getRetryAnalyzer(); 
     if (retry == null) { 
      annotation.setRetryAnalyzer(Retry.class); 
     } 
    } 
} 

//The test begins here.... 

@BeforeClass(alwaysRun = true) 
@Parameters("Environment") 
public void BeforeClass(String sEnv) throws Exception { 
    WebDriver driver = new FirefoxDriver(); 
    driver.get("www.google.com"); 

} 

@Test 
public void TestMethod() { 
    //Some test... 
} 

@AfterClass(alwaysRun = true) 
public void AfterClass() { 
    driver.quit(); 
} 
+0

您可以将相关代码复制到您的问题中吗? –

+0

完成..有帮助吗? – jsmith

+0

@jsmith是的,我一直面临类似的问题,'RetryListener'不运行整个测试类,它只是运行失败的测试。所以它不会执行除了@Test之外的任何事情。要再次运行整个测试课程,您必须使用其他方法你可以从testng-report目录中testng-failed.xml。在出现任何故障时,编写一些代码来运行testng-failed.xml。但它将始终在执行结束时运行。 –

回答

相关问题