重新运行TestNG测试不适用于所有测试

时间:2017-05-15 09:55:23

标签: selenium selenium-webdriver webdriver testng

我正在使用 IRetryAnalyzer 界面再次运行失败的测试用例。如果我的TestNG XML文件中只有一个Test,它可以正常工作,但是如果我的XML文件中有多个测试,它只适用于第一次测试。

根本原因:第二次测试的retryCount设置为1,我不知道如何重置它。

现有未解决的问题https://github.com/cbeust/testng/issues/1241

RetryAnalyzer.java

public class RetryAnalyzer implements IRetryAnalyzer {

    private int retryCount = 0;
    private int maxRetryCount = 1;

    public boolean retry(ITestResult result) {
        if (retryCount < maxRetryCount) {
            retryCount++;
            return true;
        }
        return false;
    }

}

AnnotationTransformer.java

public class AnnotationTransformer implements IAnnotationTransformer {

     public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) {
         annotation.setRetryAnalyzer(RetryAnalyzer.class); //to enable for all the methods.
    }
}

TestNG.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="BrowserStack" >

    <listeners>
        <listener class-name="uk.co.gaurang.libs.ResultListener" />
        <listener class-name="uk.co.gaurang.libs.AnnotationTransformer" />

    </listeners>

    <test name="IPhone6S">
        <classes>
            <class name="uk.co.gaurang.tests.Demo"/>
        </classes>
    </test>

    <test name="IPhone6SPlus">
        <classes>
            <class name="uk.co.gaurang.tests.Demo"/>
        </classes>
    </test>
</suite>

0 个答案:

没有答案