Skip to content

Commit 3e3f173

Browse files
authored
allure-testng: add property to disable configuration failures logging (fixes #356, via #920)
1 parent f9dab79 commit 3e3f173

3 files changed

Lines changed: 77 additions & 13 deletions

File tree

allure-testng/src/main/java/io/qameta/allure/testng/AllureTestNg.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@
101101
*/
102102
@SuppressWarnings({
103103
"PMD.ExcessiveImports", "PMD.TooManyMethods", "PMD.GodClass", "PMD.CyclomaticComplexity",
104-
"ClassFanOutComplexity", "ClassDataAbstractionCoupling", "PMD.ExcessiveClassLength"
104+
"ClassFanOutComplexity", "ClassDataAbstractionCoupling", "PMD.ExcessiveClassLength",
105+
"PMD.NcssCount"
105106
})
106107
public class AllureTestNg implements
107108
ISuiteListener,
@@ -141,6 +142,17 @@ public class AllureTestNg implements
141142

142143
private final AllureTestNgConfig config;
143144

145+
/**
146+
* Package private constructor to allow custom configurations for unit tests.
147+
*/
148+
AllureTestNg(final AllureLifecycle lifecycle,
149+
final AllureTestNgTestFilter testFilter,
150+
final AllureTestNgConfig config) {
151+
this.lifecycle = lifecycle;
152+
this.testFilter = testFilter;
153+
this.config = config;
154+
}
155+
144156
public AllureTestNg(final AllureLifecycle lifecycle,
145157
final AllureTestNgTestFilter testFilter) {
146158
this.lifecycle = lifecycle;
@@ -537,6 +549,10 @@ public void onConfigurationSuccess(final ITestResult itr) {
537549

538550
@Override
539551
public void onConfigurationFailure(final ITestResult itr) {
552+
if (config.isHideConfigurationFailures()) {
553+
return; //do nothing
554+
}
555+
540556
final String uuid = UUID.randomUUID().toString();
541557
final String parentUuid = UUID.randomUUID().toString();
542558

@@ -554,7 +570,6 @@ public void onConfigurationFailure(final ITestResult itr) {
554570
);
555571

556572
stopTestCase(uuid, itr.getThrowable(), getStatus(itr.getThrowable()));
557-
//do nothing
558573
}
559574

560575
@Override

allure-testng/src/main/java/io/qameta/allure/testng/config/AllureTestNgConfig.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,15 @@
2424
public class AllureTestNgConfig {
2525

2626
public static final String ALLURE_TESTNG_HIDE_DISABLED_TESTS = "allure.testng.hide.disabled.tests";
27+
public static final String ALLURE_TESTNG_HIDE_CONFIGURATION_FAILURES = "allure.testng.hide.configuration.failures";
2728
private boolean hideDisabledTests;
29+
private boolean hideConfigurationFailures;
2830

2931
public AllureTestNgConfig(final Properties properties) {
3032
this.hideDisabledTests = parseBoolean(properties.getProperty(ALLURE_TESTNG_HIDE_DISABLED_TESTS));
33+
this.hideConfigurationFailures = parseBoolean(
34+
properties.getProperty(ALLURE_TESTNG_HIDE_CONFIGURATION_FAILURES)
35+
);
3136
}
3237

3338
public boolean isHideDisabledTests() {
@@ -39,6 +44,15 @@ public AllureTestNgConfig setHideDisabledTests(final boolean hide) {
3944
return this;
4045
}
4146

47+
public boolean isHideConfigurationFailures() {
48+
return hideConfigurationFailures;
49+
}
50+
51+
public AllureTestNgConfig setHideConfigurationFailures(final boolean hideConfigurationFailure) {
52+
this.hideConfigurationFailures = hideConfigurationFailure;
53+
return this;
54+
}
55+
4256
public static AllureTestNgConfig loadConfigProperties() {
4357
final Properties properties = PropertiesUtils.loadAllureProperties();
4458
return new AllureTestNgConfig(properties);

allure-testng/src/test/java/io/qameta/allure/testng/AllureTestNgTest.java

Lines changed: 46 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060
import java.util.function.Predicate;
6161
import java.util.stream.Collectors;
6262

63-
import static io.qameta.allure.testng.config.AllureTestNgConfig.ALLURE_TESTNG_HIDE_DISABLED_TESTS;
6463
import static io.qameta.allure.util.ResultsUtils.ALLURE_SEPARATE_LINES_SYSPROP;
6564
import static java.lang.String.format;
6665
import static java.util.Arrays.asList;
@@ -109,6 +108,28 @@ public static Object[][] parallelConfiguration() {
109108
};
110109
}
111110

111+
@AllureFeatures.Fixtures
112+
@Issue("356")
113+
@Test
114+
public void shouldSetHideConfigFailProperty() {
115+
AllureTestNgConfig allureTestNgConfig = AllureTestNgConfig.loadConfigProperties();
116+
assertThat(allureTestNgConfig.isHideConfigurationFailures()).isFalse();
117+
allureTestNgConfig.setHideConfigurationFailures(true);
118+
assertThat(allureTestNgConfig.isHideConfigurationFailures()).isTrue();
119+
}
120+
121+
@AllureFeatures.Fixtures
122+
@Issue("356")
123+
@Test
124+
public void shouldNotDisplayConfigurationFailsAsTests() {
125+
AllureTestNgConfig allureTestNgConfig = AllureTestNgConfig.loadConfigProperties();
126+
allureTestNgConfig.setHideConfigurationFailures(true);
127+
final AllureResults results = runTestNgSuites(allureTestNgConfig, "suites/gh-135.xml");
128+
assertThat(results.getTestResults())
129+
.extracting(TestResult::getName, TestResult::getStatus)
130+
.containsOnly(tuple("someTest", Status.SKIPPED));
131+
}
132+
112133
@Test
113134
public void shouldSetConfigurationProperty() {
114135
AllureTestNgConfig allureTestNgConfig = AllureTestNgConfig.loadConfigProperties();
@@ -1083,12 +1104,12 @@ public void shouldDisplayDisabledTests() {
10831104
@Issue("369")
10841105
@Test
10851106
public void shouldNotDisplayDisabledTests() {
1086-
System.setProperty(ALLURE_TESTNG_HIDE_DISABLED_TESTS, "true");
1087-
final AllureResults results = runTestNgSuites("suites/gh-369.xml");
1107+
AllureTestNgConfig allureTestNgConfig = AllureTestNgConfig.loadConfigProperties();
1108+
allureTestNgConfig.setHideDisabledTests(true);
1109+
final AllureResults results = runTestNgSuites(allureTestNgConfig,"suites/gh-369.xml");
10881110
assertThat(results.getTestResults())
10891111
.extracting(TestResult::getName, TestResult::getStatus)
10901112
.containsOnly(tuple("enabled", Status.PASSED));
1091-
System.setProperty(ALLURE_TESTNG_HIDE_DISABLED_TESTS, "false");
10921113
}
10931114

10941115
@SuppressWarnings("unchecked")
@@ -1164,12 +1185,6 @@ public void shouldOverrideParameters() {
11641185
);
11651186
}
11661187

1167-
private AllureResults runTestNgSuites(final String... suites) {
1168-
final Consumer<TestNG> emptyConfigurer = testNg -> {
1169-
};
1170-
return runTestNgSuites(emptyConfigurer, suites);
1171-
}
1172-
11731188
@SuppressWarnings("unchecked")
11741189
@AllureFeatures.Parameters
11751190
@Issue("141")
@@ -1225,8 +1240,26 @@ public void shouldOrderTests() {
12251240
.containsExactly("zTest", "yTest", "xTest", "wTest", "vTest", "vTest");
12261241
}
12271242

1243+
private AllureResults runTestNgSuites(final String... suites) {
1244+
final Consumer<TestNG> emptyConfigurer = testNg -> {
1245+
};
1246+
return runTestNgSuites(emptyConfigurer, suites);
1247+
}
1248+
1249+
private AllureResults runTestNgSuites(AllureTestNgConfig config, final String... suites) {
1250+
final Consumer<TestNG> emptyConfigurer = testNg -> {
1251+
};
1252+
return runTestNgSuites(emptyConfigurer, config, suites);
1253+
}
1254+
1255+
private AllureResults runTestNgSuites(final Consumer<TestNG> configurer,
1256+
final String... suites) {;
1257+
return runTestNgSuites(configurer, AllureTestNgConfig.loadConfigProperties(), suites);
1258+
}
1259+
12281260
@Step("Run testng suites {suites}")
12291261
private AllureResults runTestNgSuites(final Consumer<TestNG> configurer,
1262+
final AllureTestNgConfig config,
12301263
final String... suites) {
12311264
final ClassLoader classLoader = getClass().getClassLoader();
12321265
List<String> suiteFiles = Arrays.stream(suites)
@@ -1241,7 +1274,9 @@ private AllureResults runTestNgSuites(final Consumer<TestNG> configurer,
12411274

12421275
final AllureResultsWriterStub results = new AllureResultsWriterStub();
12431276
final AllureLifecycle lifecycle = new AllureLifecycle(results);
1244-
final AllureTestNg adapter = new AllureTestNg(lifecycle);
1277+
final AllureTestNg adapter = new AllureTestNg(lifecycle,
1278+
new AllureTestNgTestFilter(),
1279+
config);
12451280
final TestNG testNg = new TestNG(false);
12461281
testNg.addListener((ITestNGListener) adapter);
12471282
testNg.setTestSuites(suiteFiles);

0 commit comments

Comments
 (0)