Quantcast
Channel: Active questions tagged retry-logic - Stack Overflow
Viewing all articles
Browse latest Browse all 950

Retry Logic - retry whole class if one tests fails - selenium

$
0
0

Following are the classes used to implement retry logic

TestRetry Class:

public class TestRetry implements IRetryAnalyzer {    int counter=0;    int retryLimit=2;    @Override    public boolean retry(ITestResult result) {         if (counter < retryLimit) {              TestReporter.logStep("Retrying Test "+result.getName()+" for number of times: "+(counter+1));              counter++;              return true;         }         return false;    }

RetryListener Class:

public class RetryListener implements IAnnotationTransformer {    @Override    public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) {        // TODO Auto-generated method stub         IRetryAnalyzer retry = annotation.getRetryAnalyzer();            if (retry == null) {                annotation.setRetryAnalyzer(TestRetry.class);    }}}

SampleTest:

@Listeners(RetryListener.class)public class SampleTest {    @BeforeSuite(alwaysRun = true)    public void beforeSuite(ITestContext context) {       for (ITestNGMethod method : context.getAllTestMethods()) {              method.setRetryAnalyzer(new TestRetry());       }    }    @Test(priority=0)    public void firsttest() {        System.out.println();        TestReporter.assertEquals("Test", "Test", "pass");    }    @Test(priority=1, dependsOnMethods="firsttest")    public void secondtest() {        TestReporter.assertEquals("Test", "Test1", "fail");    }    @Test(priority=2,dependsOnMethods="secondtest")    public void thirdtest() {        TestReporter.assertEquals("Test", "Test", "pass");    }}

When I execute the above test, following is the outputfirsttest gets executed and passessecondtest depends on firsttest and gets executed, its failed - Retried 3 times and failed againthirdtest skipped because it depends on secondtest.

Output achieved as expected.

Question:Since the tests are dependent. If one of the tests fails, I want to execute the whole class from first. is there a way to do it?

Examples: If secondtest fails, I want to execute the whole class SampleTest again.

Thanks!


Viewing all articles
Browse latest Browse all 950

Trending Articles