@@ -41,14 +41,14 @@ public class SuiteRunner implements ISuite, ISuiteRunnerListener {
41
41
Maps .newLinkedHashMap ();
42
42
43
43
private String outputDir ;
44
- private XmlSuite xmlSuite ;
44
+ private final XmlSuite xmlSuite ;
45
45
private Injector parentInjector ;
46
46
47
47
private final List <ITestListener > testListeners = Lists .newArrayList ();
48
48
private final Map <Class <? extends IClassListener >, IClassListener > classListeners =
49
49
Maps .newLinkedHashMap ();
50
- private ITestRunnerFactory tmpRunnerFactory ;
51
- private final DataProviderHolder holder = new DataProviderHolder () ;
50
+ private final ITestRunnerFactory tmpRunnerFactory ;
51
+ private final DataProviderHolder holder ;
52
52
53
53
private boolean useDefaultListeners = true ;
54
54
@@ -57,19 +57,19 @@ public class SuiteRunner implements ISuite, ISuiteRunnerListener {
57
57
58
58
// The configuration
59
59
// Note: adjust test.multiplelisteners.SimpleReporter#generateReport test if renaming the field
60
- private IConfiguration configuration ;
60
+ private final IConfiguration configuration ;
61
61
62
62
private ITestObjectFactory objectFactory ;
63
63
private Boolean skipFailedInvocationCounts = Boolean .FALSE ;
64
64
private final List <IReporter > reporters = Lists .newArrayList ();
65
65
66
- private Map <Class <? extends IInvokedMethodListener >, IInvokedMethodListener >
66
+ private final Map <Class <? extends IInvokedMethodListener >, IInvokedMethodListener >
67
67
invokedMethodListeners ;
68
68
69
69
private final SuiteRunState suiteState = new SuiteRunState ();
70
70
private final IAttributes attributes = new Attributes ();
71
71
private final Set <IExecutionVisualiser > visualisers = Sets .newHashSet ();
72
- private ITestListener exitCodeListener ;
72
+ private final ITestListener exitCodeListener ;
73
73
74
74
public SuiteRunner (
75
75
IConfiguration configuration ,
@@ -97,37 +97,11 @@ public SuiteRunner(
97
97
null /* invoked method listeners */ ,
98
98
new TestListenersContainer () /* test listeners */ ,
99
99
null /* class listeners */ ,
100
- new DataProviderHolder (),
100
+ new DataProviderHolder (configuration ),
101
101
comparator );
102
102
}
103
103
104
104
protected SuiteRunner (
105
- IConfiguration configuration ,
106
- XmlSuite suite ,
107
- String outputDir ,
108
- ITestRunnerFactory runnerFactory ,
109
- boolean useDefaultListeners ,
110
- List <IMethodInterceptor > methodInterceptors ,
111
- Collection <IInvokedMethodListener > invokedMethodListeners ,
112
- TestListenersContainer container ,
113
- Collection <IClassListener > classListeners ,
114
- DataProviderHolder holder ,
115
- Comparator <ITestNGMethod > comparator ) {
116
- init (
117
- configuration ,
118
- suite ,
119
- outputDir ,
120
- runnerFactory ,
121
- useDefaultListeners ,
122
- methodInterceptors ,
123
- invokedMethodListeners ,
124
- container ,
125
- classListeners ,
126
- holder ,
127
- comparator );
128
- }
129
-
130
- private void init (
131
105
IConfiguration configuration ,
132
106
XmlSuite suite ,
133
107
String outputDir ,
@@ -137,12 +111,12 @@ private void init(
137
111
Collection <IInvokedMethodListener > invokedMethodListener ,
138
112
TestListenersContainer container ,
139
113
Collection <IClassListener > classListeners ,
140
- DataProviderHolder attribs ,
114
+ DataProviderHolder holder ,
141
115
Comparator <ITestNGMethod > comparator ) {
142
116
if (comparator == null ) {
143
117
throw new IllegalArgumentException ("comparator must not be null" );
144
118
}
145
- this .holder . merge ( attribs ) ;
119
+ this .holder = holder ;
146
120
this .configuration = configuration ;
147
121
this .xmlSuite = suite ;
148
122
this .useDefaultListeners = useDefaultListeners ;
@@ -264,12 +238,14 @@ public ITestListener getExitCodeListener() {
264
238
private void invokeListeners (boolean start ) {
265
239
if (start ) {
266
240
for (ISuiteListener sl :
267
- ListenerOrderDeterminer .order (Lists .newArrayList (listeners .values ()))) {
241
+ ListenerOrderDeterminer .order (
242
+ listeners .values (), this .configuration .getListenerComparator ())) {
268
243
sl .onStart (this );
269
244
}
270
245
} else {
271
246
List <ISuiteListener > suiteListenersReversed =
272
- ListenerOrderDeterminer .reversedOrder (listeners .values ());
247
+ ListenerOrderDeterminer .reversedOrder (
248
+ listeners .values (), this .configuration .getListenerComparator ());
273
249
for (ISuiteListener sl : suiteListenersReversed ) {
274
250
sl .onFinish (this );
275
251
}
@@ -298,7 +274,8 @@ private ITestRunnerFactory buildRunnerFactory(Comparator<ITestNGMethod> comparat
298
274
this );
299
275
} else {
300
276
factory =
301
- new ProxyTestRunnerFactory (testListeners .toArray (new ITestListener [0 ]), tmpRunnerFactory );
277
+ new ProxyTestRunnerFactory (
278
+ testListeners .toArray (new ITestListener [0 ]), tmpRunnerFactory , configuration );
302
279
}
303
280
304
281
return factory ;
@@ -627,7 +604,7 @@ public TestRunner newTestRunner(
627
604
Collection <IInvokedMethodListener > listeners ,
628
605
List <IClassListener > classListeners ,
629
606
Map <Class <? extends IDataProviderListener >, IDataProviderListener > dataProviderListeners ) {
630
- DataProviderHolder holder = new DataProviderHolder ();
607
+ DataProviderHolder holder = new DataProviderHolder (this . configuration );
631
608
holder .addListeners (dataProviderListeners .values ());
632
609
return newTestRunner (suite , test , listeners , classListeners , holder );
633
610
}
@@ -684,9 +661,13 @@ private static class ProxyTestRunnerFactory implements ITestRunnerFactory {
684
661
private final ITestListener [] failureGenerators ;
685
662
private final ITestRunnerFactory target ;
686
663
687
- public ProxyTestRunnerFactory (ITestListener [] failureListeners , ITestRunnerFactory target ) {
664
+ private final IConfiguration configuration ;
665
+
666
+ public ProxyTestRunnerFactory (
667
+ ITestListener [] failureListeners , ITestRunnerFactory target , IConfiguration configuration ) {
688
668
failureGenerators = failureListeners ;
689
669
this .target = target ;
670
+ this .configuration = configuration ;
690
671
}
691
672
692
673
@ Override
@@ -705,7 +686,7 @@ public TestRunner newTestRunner(
705
686
Collection <IInvokedMethodListener > listeners ,
706
687
List <IClassListener > classListeners ,
707
688
Map <Class <? extends IDataProviderListener >, IDataProviderListener > dataProviderListeners ) {
708
- DataProviderHolder holder = new DataProviderHolder ();
689
+ DataProviderHolder holder = new DataProviderHolder (configuration );
709
690
holder .addListeners (dataProviderListeners .values ());
710
691
return newTestRunner (suite , test , listeners , classListeners , holder );
711
692
}
0 commit comments