File tree 3 files changed +61
-1
lines changed
Filter options
src/main/java/org/sayem/webdriver 3 files changed +61
-1
lines changed
Original file line number Diff line number Diff line change 4
4
import org .openqa .selenium .WebDriver ;
5
5
import org .openqa .selenium .support .PageFactory ;
6
6
import org .sayem .webdriver .browsers .config .BrowserThreads ;
7
+ import org .sayem .webdriver .listeners .RetryListener ;
7
8
import org .sayem .webdriver .listeners .ScreenshotListener ;
8
9
import org .sayem .webdriver .properties .PropertiesUtil ;
9
10
import org .sayem .webdriver .properties .Repository ;
19
20
/**
20
21
* Created by sayem on 10/05/15.
21
22
*/
22
- @ Listeners ({ScreenshotListener .class })
23
+ @ Listeners ({ScreenshotListener .class , RetryListener . class })
23
24
public abstract class TestBase {
24
25
25
26
private static List <BrowserThreads > webDriverThreadPool = Collections .synchronizedList (new ArrayList <>());
Original file line number Diff line number Diff line change
1
+ package org .sayem .webdriver .listeners ;
2
+
3
+ import java .lang .reflect .Constructor ;
4
+ import java .lang .reflect .Method ;
5
+
6
+ import org .testng .IAnnotationTransformer ;
7
+ import org .testng .IRetryAnalyzer ;
8
+ import org .testng .annotations .ITestAnnotation ;
9
+
10
+ /**
11
+ * Created by sayem on 2/2/16.
12
+ */
13
+ public class RetryListener implements IAnnotationTransformer {
14
+
15
+ @ Override
16
+ public void transform (ITestAnnotation testannotation , Class testClass ,
17
+ Constructor testConstructor , Method testMethod ) {
18
+ IRetryAnalyzer retry = testannotation .getRetryAnalyzer ();
19
+
20
+ if (retry == null ) {
21
+ testannotation .setRetryAnalyzer (TestNGRetry .class );
22
+ }
23
+ }
24
+ }
Original file line number Diff line number Diff line change
1
+ package org .sayem .webdriver .listeners ;
2
+
3
+ import org .testng .IRetryAnalyzer ;
4
+ import org .testng .ITestResult ;
5
+
6
+ /**
7
+ * Created by sayem on 2/2/16.
8
+ */
9
+ public class TestNGRetry implements IRetryAnalyzer {
10
+ private int retryCount = 0 ;
11
+ private int maxRetryCount = 1 ;
12
+
13
+ // Below method returns 'true' if the test method has to be retried else 'false'
14
+ // and it takes the 'Result' as parameter of the test method that just ran
15
+ public boolean retry (ITestResult result ) {
16
+ if (retryCount < maxRetryCount ) {
17
+ System .out .println ("Retrying test " + result .getName () + " with status "
18
+ + getResultStatusName (result .getStatus ()) + " for the " + (retryCount +1 ) + " time(s)." );
19
+ retryCount ++;
20
+ return true ;
21
+ }
22
+ return false ;
23
+ }
24
+
25
+ public String getResultStatusName (int status ) {
26
+ String resultName = null ;
27
+ if (status ==1 )
28
+ resultName = "SUCCESS" ;
29
+ if (status ==2 )
30
+ resultName = "FAILURE" ;
31
+ if (status ==3 )
32
+ resultName = "SKIP" ;
33
+ return resultName ;
34
+ }
35
+ }
You can’t perform that action at this time.
0 commit comments