Skip to content

Commit be199b4

Browse files
committed
Streaming working of listener comparator
Closes #3117 The listener comparator was NOT getting wired in when specified as a property in maven surefire plugin.
1 parent fe24aa2 commit be199b4

File tree

3 files changed

+115
-0
lines changed

3 files changed

+115
-0
lines changed

CHANGES.txt

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
Current (7.11.0)
22

3+
Fixed: GITHUB-3117: ListenerComparator doesn't work (Krishnan Mahadevan)
4+
35
7.10.1
46
Fixed: GITHUB-3110: Update from testng 7.9.0 to 7.10.0 break maven build with junit5 (Krishnan Mahadevan)
57

testng-core/src/main/java/org/testng/TestNG.java

+4
Original file line numberDiff line numberDiff line change
@@ -1773,6 +1773,10 @@ public void configure(Map cmdLineArgs) {
17731773
Boolean.parseBoolean(
17741774
cmdLineArgs.getOrDefault(CommandLineArgs.GENERATE_RESULTS_PER_SUITE, false).toString());
17751775

1776+
Optional.ofNullable(cmdLineArgs.get(CommandLineArgs.LISTENER_COMPARATOR))
1777+
.map(Object::toString)
1778+
.ifPresent(it -> result.listenerComparator = it);
1779+
17761780
configure(result);
17771781
}
17781782

testng-core/src/test/java/test/listeners/ListenersTest.java

+109
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.Map;
1313
import org.assertj.core.api.Assertions;
1414
import org.assertj.core.api.SoftAssertions;
15+
import org.testng.CommandLineArgs;
1516
import org.testng.ITestNGListener;
1617
import org.testng.TestNG;
1718
import org.testng.annotations.DataProvider;
@@ -63,6 +64,14 @@ public class ListenersTest extends SimpleBaseTest {
6364
"test.listeners.issue2638.TestClassBSample.testMethod"
6465
};
6566

67+
@Test(description = "GITHUB-3117")
68+
public void ensureOrderingForExecutionListenersViaMaven() {
69+
Ensure.orderingViaMap(
70+
ExecutionListenerHolder.LOGS,
71+
ExecutionListenerHolder.ALL,
72+
ExecutionListenerHolder.EXPECTED_LOGS);
73+
}
74+
6675
@Test(description = "GITHUB-2916")
6776
public void ensureOrderingForExecutionListenersViaApi() {
6877
Ensure.orderingViaApi(
@@ -71,6 +80,14 @@ public void ensureOrderingForExecutionListenersViaApi() {
7180
ExecutionListenerHolder.EXPECTED_LOGS);
7281
}
7382

83+
@Test(description = "GITHUB-3117")
84+
public void ensureOrderingForAlterSuiteListenersViaMaven() {
85+
Ensure.orderingViaMap(
86+
AlterSuiteListenerHolder.LOGS,
87+
AlterSuiteListenerHolder.ALL,
88+
AlterSuiteListenerHolder.EXPECTED_LOGS);
89+
}
90+
7491
@Test(description = "GITHUB-2916")
7592
public void ensureOrderingForAlterSuiteListenersViaApi() {
7693
Ensure.orderingViaApi(
@@ -85,6 +102,12 @@ public void ensureOrderingForSuiteListenersViaApi() {
85102
SuiteListenerHolder.LOGS, SuiteListenerHolder.ALL, SuiteListenerHolder.EXPECTED_LOGS);
86103
}
87104

105+
@Test(description = "GITHUB-3117")
106+
public void ensureOrderingForSuiteListenersViaMaven() {
107+
Ensure.orderingViaMap(
108+
SuiteListenerHolder.LOGS, SuiteListenerHolder.ALL, SuiteListenerHolder.EXPECTED_LOGS);
109+
}
110+
88111
@Test(description = "GITHUB-2916")
89112
public void ensureOrderingForTestListenersViaApi() {
90113
Ensure.orderingViaApi(
@@ -94,6 +117,15 @@ public void ensureOrderingForTestListenersViaApi() {
94117
TestListenerHolder.EXPECTED_LOGS);
95118
}
96119

120+
@Test(description = "GITHUB-3117")
121+
public void ensureOrderingForTestListenersViaMaven() {
122+
Ensure.orderingViaMap(
123+
ElaborateSampleTestCase.class,
124+
TestListenerHolder.LOGS,
125+
TestListenerHolder.ALL,
126+
TestListenerHolder.EXPECTED_LOGS);
127+
}
128+
97129
@Test(description = "GITHUB-2916")
98130
public void ensureOrderingForInvokedListenersViaApi() {
99131
Ensure.orderingViaApi(
@@ -102,6 +134,14 @@ public void ensureOrderingForInvokedListenersViaApi() {
102134
InvokedMethodListenerHolder.EXPECTED_LOGS);
103135
}
104136

137+
@Test(description = "GITHUB-3117")
138+
public void ensureOrderingForInvokedListenersViaMaven() {
139+
Ensure.orderingViaMap(
140+
InvokedMethodListenerHolder.LOGS,
141+
InvokedMethodListenerHolder.ALL,
142+
InvokedMethodListenerHolder.EXPECTED_LOGS);
143+
}
144+
105145
@Test(description = "GITHUB-2916")
106146
public void ensureOrderingForConfigurationListenersViaApi() {
107147
Ensure.orderingViaApi(
@@ -111,12 +151,27 @@ public void ensureOrderingForConfigurationListenersViaApi() {
111151
ConfigurationListenerHolder.EXPECTED_LOGS);
112152
}
113153

154+
@Test(description = "GITHUB-3117")
155+
public void ensureOrderingForConfigurationListenersViaMaven() {
156+
Ensure.orderingViaMap(
157+
SimpleConfigTestCase.class,
158+
ConfigurationListenerHolder.LOGS,
159+
ConfigurationListenerHolder.ALL,
160+
ConfigurationListenerHolder.EXPECTED_LOGS);
161+
}
162+
114163
@Test(description = "GITHUB-2916")
115164
public void ensureOrderingForClassListenersViaApi() {
116165
Ensure.orderingViaApi(
117166
ClassListenerHolder.LOGS, ClassListenerHolder.ALL, ClassListenerHolder.EXPECTED_LOGS);
118167
}
119168

169+
@Test(description = "GITHUB-3117")
170+
public void ensureOrderingForClassListenersViaMaven() {
171+
Ensure.orderingViaMap(
172+
ClassListenerHolder.LOGS, ClassListenerHolder.ALL, ClassListenerHolder.EXPECTED_LOGS);
173+
}
174+
120175
@Test(description = "GITHUB-2916")
121176
public void ensureOrderingForDataProviderListenersViaApi() {
122177
Ensure.orderingViaApi(
@@ -126,6 +181,15 @@ public void ensureOrderingForDataProviderListenersViaApi() {
126181
DataProviderListenerHolder.EXPECTED_LOGS);
127182
}
128183

184+
@Test(description = "GITHUB-3117")
185+
public void ensureOrderingForDataProviderListenersViaMaven() {
186+
Ensure.orderingViaMap(
187+
DataProviderSampleTestCase.class,
188+
DataProviderListenerHolder.LOGS,
189+
DataProviderListenerHolder.ALL,
190+
DataProviderListenerHolder.EXPECTED_LOGS);
191+
}
192+
129193
@Test(description = "GITHUB-2916")
130194
public void ensureOrderingForDataProviderInterceptorsViaApi() {
131195
Ensure.orderingViaApi(
@@ -135,6 +199,15 @@ public void ensureOrderingForDataProviderInterceptorsViaApi() {
135199
DataProviderInterceptorHolder.EXPECTED_LOGS);
136200
}
137201

202+
@Test(description = "GITHUB-3117")
203+
public void ensureOrderingForDataProviderInterceptorsViaMaven() {
204+
Ensure.orderingViaMap(
205+
DataProviderSampleTestCase.class,
206+
DataProviderListenerHolder.LOGS,
207+
DataProviderListenerHolder.ALL,
208+
DataProviderListenerHolder.EXPECTED_LOGS);
209+
}
210+
138211
@Test(description = "GITHUB-2916")
139212
public void ensureOrderingForExecutionVisualisersViaApi() {
140213
Ensure.orderingViaApi(
@@ -143,6 +216,14 @@ public void ensureOrderingForExecutionVisualisersViaApi() {
143216
ExecutionVisualiserHolder.EXPECTED_LOGS);
144217
}
145218

219+
@Test(description = "GITHUB-3117")
220+
public void ensureOrderingForExecutionVisualisersViaMaven() {
221+
Ensure.orderingViaMap(
222+
ExecutionVisualiserHolder.LOGS,
223+
ExecutionVisualiserHolder.ALL,
224+
ExecutionVisualiserHolder.EXPECTED_LOGS);
225+
}
226+
146227
@Test(description = "GITHUB-2916")
147228
public void ensureOrderingForMethodInterceptorsViaApi() {
148229
Ensure.orderingViaApi(
@@ -151,6 +232,14 @@ public void ensureOrderingForMethodInterceptorsViaApi() {
151232
MethodInterceptorHolder.EXPECTED_LOGS);
152233
}
153234

235+
@Test(description = "GITHUB-3117")
236+
public void ensureOrderingForMethodInterceptorsViaMaven() {
237+
Ensure.orderingViaMap(
238+
MethodInterceptorHolder.LOGS,
239+
MethodInterceptorHolder.ALL,
240+
MethodInterceptorHolder.EXPECTED_LOGS);
241+
}
242+
154243
@Test(description = "GITHUB-2916")
155244
public void ensureOrderingForExecutionListenersViaXmlTag() {
156245
Ensure.orderingViaXmlTag(
@@ -809,5 +898,25 @@ static void orderingViaApi(
809898
testng.run();
810899
assertThat(logs).containsExactly(expected);
811900
}
901+
902+
static void orderingViaMap(
903+
List<String> logs, List<ITestNGListener> listeners, String[] expected) {
904+
orderingViaMap(NormalSampleTestCase.class, logs, listeners, expected);
905+
}
906+
907+
static void orderingViaMap(
908+
Class<?> clazz, List<String> logs, List<ITestNGListener> listeners, String[] expected) {
909+
logs.clear();
910+
TestNG testng = create(clazz);
911+
listeners.forEach(testng::addListener);
912+
testng.setUseDefaultListeners(false);
913+
Map<String, String> map =
914+
Map.of(
915+
CommandLineArgs.LISTENER_COMPARATOR,
916+
AnnotationBackedListenerComparator.class.getName());
917+
testng.configure(map);
918+
testng.run();
919+
assertThat(logs).containsExactly(expected);
920+
}
812921
}
813922
}

0 commit comments

Comments
 (0)