Retry Fail test method 'N' No of times:
if test method fails, we want to retry 1 time
2 times
3 times
Define class
which implements IRetryAnalyzer:
//IRetryAnalyzer is predefined interface in TestNG -
// which can be
used to run failed test with given No of
Times
package TestNGBasics3;
import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;
public class MyRetry implements IRetryAnalyzer
{
private int retryCount = 0;
private static final int maxRetryCount = 3;
// just change this count
@Override
public boolean retry(ITestResult result) {
if (retryCount < maxRetryCount) {
retryCount++;
return true;
}
return false;
}
}
----------------------------
package TestNGBasics3;
import org.testng.Assert;
import org.testng.annotations.Test;
public class TestClass {
// @Test(retryAnalyzer
= MyRetry.class)
@Test(retryAnalyzer
= MyRetry.class) // 3 = 1
(intially) + retry 3 = 4
public void
testA()
{
System.out.println("test
A stmt-1");
// puprose fully I am failing this test method
Assert.assertEquals("TOm",
"jerry");// Fail --testA()
}
}
run class :
o/p:
[RemoteTestNG] detected TestNG version 7.0.0
test A stmt-1
test A stmt-1
test A stmt-1
test A stmt-1
FAILED: testA
java.lang.AssertionError: expected [jerry] but found [TOm]
at
org.testng.Assert.fail(Assert.java:97)
at
org.testng.Assert.assertEqualsImpl(Assert.java:136)
at org.testng.Assert.assertEquals(Assert.java:118)
at
org.testng.Assert.assertEquals(Assert.java:575)
at
org.testng.Assert.assertEquals(Assert.java:585)
at
TestNGBasics3.TestClass.testA(TestClass.java:15)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
java.base/java.lang.reflect.Method.invoke(Method.java:564)
at
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at
org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
at
org.testng.internal.TestInvoker.retryFailed(TestInvoker.java:204)
at
org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:58)
at
org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
at
org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at
java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.testng.TestRunner.privateRun(TestRunner.java:770)
at
org.testng.TestRunner.run(TestRunner.java:591)
at
org.testng.SuiteRunner.runTest(SuiteRunner.java:402)
at
org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396)
at
org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)
at
org.testng.SuiteRunner.run(SuiteRunner.java:304)
at
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at
org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at
org.testng.TestNG.runSuitesSequentially(TestNG.java:1180)
at
org.testng.TestNG.runSuitesLocally(TestNG.java:1102)
at
org.testng.TestNG.runSuites(TestNG.java:1032)
at
org.testng.TestNG.run(TestNG.java:1000)
at
org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at
org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
RETRIED: testA
java.lang.AssertionError: expected [jerry] but found [TOm]
at
org.testng.Assert.fail(Assert.java:97)
at org.testng.Assert.assertEqualsImpl(Assert.java:136)
at
org.testng.Assert.assertEquals(Assert.java:118)
at
org.testng.Assert.assertEquals(Assert.java:575)
at
org.testng.Assert.assertEquals(Assert.java:585)
at
TestNGBasics3.TestClass.testA(TestClass.java:15)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
java.base/java.lang.reflect.Method.invoke(Method.java:564)
at
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
at
org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)
at
org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
at
org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
at
org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at
java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at
org.testng.TestRunner.privateRun(TestRunner.java:770)
at
org.testng.TestRunner.run(TestRunner.java:591)
at
org.testng.SuiteRunner.runTest(SuiteRunner.java:402)
at
org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396)
at
org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)
at
org.testng.SuiteRunner.run(SuiteRunner.java:304)
at
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at
org.testng.TestNG.runSuitesSequentially(TestNG.java:1180)
at
org.testng.TestNG.runSuitesLocally(TestNG.java:1102)
at
org.testng.TestNG.runSuites(TestNG.java:1032)
at
org.testng.TestNG.run(TestNG.java:1000)
at
org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at
org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at
org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
RETRIED: testA
java.lang.AssertionError: expected [jerry] but found [TOm]
at
org.testng.Assert.fail(Assert.java:97)
at
org.testng.Assert.assertEqualsImpl(Assert.java:136)
at
org.testng.Assert.assertEquals(Assert.java:118)
at
org.testng.Assert.assertEquals(Assert.java:575)
at org.testng.Assert.assertEquals(Assert.java:585)
at
TestNGBasics3.TestClass.testA(TestClass.java:15)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
java.base/java.lang.reflect.Method.invoke(Method.java:564)
at
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at
org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
at
org.testng.internal.TestInvoker.retryFailed(TestInvoker.java:204)
at
org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:58)
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
at
org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at
java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at
org.testng.TestRunner.privateRun(TestRunner.java:770)
at
org.testng.TestRunner.run(TestRunner.java:591)
at
org.testng.SuiteRunner.runTest(SuiteRunner.java:402)
at
org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396)
at
org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)
at
org.testng.SuiteRunner.run(SuiteRunner.java:304)
at
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at
org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at
org.testng.TestNG.runSuitesSequentially(TestNG.java:1180)
at
org.testng.TestNG.runSuitesLocally(TestNG.java:1102)
at org.testng.TestNG.runSuites(TestNG.java:1032)
at
org.testng.TestNG.run(TestNG.java:1000)
at
org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at
org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at
org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
RETRIED: testA
java.lang.AssertionError: expected [jerry] but found [TOm]
at
org.testng.Assert.fail(Assert.java:97)
at
org.testng.Assert.assertEqualsImpl(Assert.java:136)
at
org.testng.Assert.assertEquals(Assert.java:118)
at
org.testng.Assert.assertEquals(Assert.java:575)
at
org.testng.Assert.assertEquals(Assert.java:585)
at
TestNGBasics3.TestClass.testA(TestClass.java:15)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
java.base/java.lang.reflect.Method.invoke(Method.java:564)
at
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at
org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
at
org.testng.internal.TestInvoker.retryFailed(TestInvoker.java:204)
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:58)
at
org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
at
org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at
java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at
org.testng.TestRunner.privateRun(TestRunner.java:770)
at org.testng.TestRunner.run(TestRunner.java:591)
at
org.testng.SuiteRunner.runTest(SuiteRunner.java:402)
at
org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396)
at
org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)
at org.testng.SuiteRunner.run(SuiteRunner.java:304)
at
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at
org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at
org.testng.TestNG.runSuitesSequentially(TestNG.java:1180)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1102)
at
org.testng.TestNG.runSuites(TestNG.java:1032)
at
org.testng.TestNG.run(TestNG.java:1000)
at
org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at
org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at
org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
===============================================
Default test
Tests run: 4, Failures:
1, Skips: 0, Retries: 3
===============================================
===============================================
Default suite
Total tests run: 4, Passes: 0, Failures: 1, Skips: 0, Retries: 3
===============================================
===============================================
No comments:
Post a Comment