1010
1111import java .io .FileInputStream ;
1212import java .io .IOException ;
13+ import java .nio .file .Files ;
14+ import java .nio .file .Path ;
15+ import java .nio .file .Paths ;
16+ import java .util .Comparator ;
17+ import java .util .Properties ;
1318
1419public class Listeners extends SharedMethods implements ITestListener {
1520
@@ -19,7 +24,8 @@ public class Listeners extends SharedMethods implements ITestListener {
1924
2025 @ Override
2126 public void onTestStart (ITestResult result ) {
22- test = extent .createTest (result .getMethod ().getMethodName ());
27+ String testName = result .getTestClass ().getName () + " - " + result .getMethod ().getMethodName ();
28+ test = extent .createTest (testName );
2329 extentTest .set (test ); // to support parallel execution
2430 }
2531
@@ -54,10 +60,47 @@ public void onTestSkipped(ITestResult result) {
5460 }
5561 }
5662
63+ @ Override
64+ public void onStart (ITestContext context ) {
65+ if (shouldClearAllureResults ()) {
66+ clearAllureResultsDirectory ();
67+ }
68+ }
69+
5770 @ Override
5871 public void onFinish (ITestContext context ) {
5972 extent .flush ();
6073 extentTest .remove ();
6174 }
6275
76+ private boolean shouldClearAllureResults () {
77+ Properties properties = new Properties ();
78+ try {
79+ FileInputStream fileInputStream = new FileInputStream ("src/main/resources/settings.properties" );
80+ properties .load (fileInputStream );
81+ return Boolean .parseBoolean (properties .getProperty ("clear.allure.results" ));
82+ } catch (IOException e ) {
83+ e .printStackTrace ();
84+ }
85+ return false ; // Default to not clearing if the property cannot be read
86+ }
87+
88+ private void clearAllureResultsDirectory () {
89+ Path allureResultsPath = Paths .get ("target/allure-results" );
90+ if (Files .exists (allureResultsPath )) {
91+ try (var paths = Files .walk (allureResultsPath )) {
92+ paths .sorted (Comparator .reverseOrder ())
93+ .forEach (path -> {
94+ try {
95+ Files .delete (path );
96+ } catch (IOException e ) {
97+ log .warn ("Failed to delete file: {}" , path .toAbsolutePath (), e );
98+ }
99+ });
100+ } catch (IOException e ) {
101+ log .error ("Failed to clear allure results directory" , e );
102+ }
103+ }
104+ }
105+
63106}
0 commit comments