Skip to content

Commit

Permalink
allure-testng: add property to disable configuration failures logging (
Browse files Browse the repository at this point in the history
…fixes #356, via #920)
  • Loading branch information
iFatRain authored Jun 28, 2023
1 parent f9dab79 commit 3e3f173
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@
*/
@SuppressWarnings({
"PMD.ExcessiveImports", "PMD.TooManyMethods", "PMD.GodClass", "PMD.CyclomaticComplexity",
"ClassFanOutComplexity", "ClassDataAbstractionCoupling", "PMD.ExcessiveClassLength"
"ClassFanOutComplexity", "ClassDataAbstractionCoupling", "PMD.ExcessiveClassLength",
"PMD.NcssCount"
})
public class AllureTestNg implements
ISuiteListener,
Expand Down Expand Up @@ -141,6 +142,17 @@ public class AllureTestNg implements

private final AllureTestNgConfig config;

/**
* Package private constructor to allow custom configurations for unit tests.
*/
AllureTestNg(final AllureLifecycle lifecycle,
final AllureTestNgTestFilter testFilter,
final AllureTestNgConfig config) {
this.lifecycle = lifecycle;
this.testFilter = testFilter;
this.config = config;
}

public AllureTestNg(final AllureLifecycle lifecycle,
final AllureTestNgTestFilter testFilter) {
this.lifecycle = lifecycle;
Expand Down Expand Up @@ -537,6 +549,10 @@ public void onConfigurationSuccess(final ITestResult itr) {

@Override
public void onConfigurationFailure(final ITestResult itr) {
if (config.isHideConfigurationFailures()) {
return; //do nothing
}

final String uuid = UUID.randomUUID().toString();
final String parentUuid = UUID.randomUUID().toString();

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

stopTestCase(uuid, itr.getThrowable(), getStatus(itr.getThrowable()));
//do nothing
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,15 @@
public class AllureTestNgConfig {

public static final String ALLURE_TESTNG_HIDE_DISABLED_TESTS = "allure.testng.hide.disabled.tests";
public static final String ALLURE_TESTNG_HIDE_CONFIGURATION_FAILURES = "allure.testng.hide.configuration.failures";
private boolean hideDisabledTests;
private boolean hideConfigurationFailures;

public AllureTestNgConfig(final Properties properties) {
this.hideDisabledTests = parseBoolean(properties.getProperty(ALLURE_TESTNG_HIDE_DISABLED_TESTS));
this.hideConfigurationFailures = parseBoolean(
properties.getProperty(ALLURE_TESTNG_HIDE_CONFIGURATION_FAILURES)
);
}

public boolean isHideDisabledTests() {
Expand All @@ -39,6 +44,15 @@ public AllureTestNgConfig setHideDisabledTests(final boolean hide) {
return this;
}

public boolean isHideConfigurationFailures() {
return hideConfigurationFailures;
}

public AllureTestNgConfig setHideConfigurationFailures(final boolean hideConfigurationFailure) {
this.hideConfigurationFailures = hideConfigurationFailure;
return this;
}

public static AllureTestNgConfig loadConfigProperties() {
final Properties properties = PropertiesUtils.loadAllureProperties();
return new AllureTestNgConfig(properties);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@
import java.util.function.Predicate;
import java.util.stream.Collectors;

import static io.qameta.allure.testng.config.AllureTestNgConfig.ALLURE_TESTNG_HIDE_DISABLED_TESTS;
import static io.qameta.allure.util.ResultsUtils.ALLURE_SEPARATE_LINES_SYSPROP;
import static java.lang.String.format;
import static java.util.Arrays.asList;
Expand Down Expand Up @@ -109,6 +108,28 @@ public static Object[][] parallelConfiguration() {
};
}

@AllureFeatures.Fixtures
@Issue("356")
@Test
public void shouldSetHideConfigFailProperty() {
AllureTestNgConfig allureTestNgConfig = AllureTestNgConfig.loadConfigProperties();
assertThat(allureTestNgConfig.isHideConfigurationFailures()).isFalse();
allureTestNgConfig.setHideConfigurationFailures(true);
assertThat(allureTestNgConfig.isHideConfigurationFailures()).isTrue();
}

@AllureFeatures.Fixtures
@Issue("356")
@Test
public void shouldNotDisplayConfigurationFailsAsTests() {
AllureTestNgConfig allureTestNgConfig = AllureTestNgConfig.loadConfigProperties();
allureTestNgConfig.setHideConfigurationFailures(true);
final AllureResults results = runTestNgSuites(allureTestNgConfig, "suites/gh-135.xml");
assertThat(results.getTestResults())
.extracting(TestResult::getName, TestResult::getStatus)
.containsOnly(tuple("someTest", Status.SKIPPED));
}

@Test
public void shouldSetConfigurationProperty() {
AllureTestNgConfig allureTestNgConfig = AllureTestNgConfig.loadConfigProperties();
Expand Down Expand Up @@ -1083,12 +1104,12 @@ public void shouldDisplayDisabledTests() {
@Issue("369")
@Test
public void shouldNotDisplayDisabledTests() {
System.setProperty(ALLURE_TESTNG_HIDE_DISABLED_TESTS, "true");
final AllureResults results = runTestNgSuites("suites/gh-369.xml");
AllureTestNgConfig allureTestNgConfig = AllureTestNgConfig.loadConfigProperties();
allureTestNgConfig.setHideDisabledTests(true);
final AllureResults results = runTestNgSuites(allureTestNgConfig,"suites/gh-369.xml");
assertThat(results.getTestResults())
.extracting(TestResult::getName, TestResult::getStatus)
.containsOnly(tuple("enabled", Status.PASSED));
System.setProperty(ALLURE_TESTNG_HIDE_DISABLED_TESTS, "false");
}

@SuppressWarnings("unchecked")
Expand Down Expand Up @@ -1164,12 +1185,6 @@ public void shouldOverrideParameters() {
);
}

private AllureResults runTestNgSuites(final String... suites) {
final Consumer<TestNG> emptyConfigurer = testNg -> {
};
return runTestNgSuites(emptyConfigurer, suites);
}

@SuppressWarnings("unchecked")
@AllureFeatures.Parameters
@Issue("141")
Expand Down Expand Up @@ -1225,8 +1240,26 @@ public void shouldOrderTests() {
.containsExactly("zTest", "yTest", "xTest", "wTest", "vTest", "vTest");
}

private AllureResults runTestNgSuites(final String... suites) {
final Consumer<TestNG> emptyConfigurer = testNg -> {
};
return runTestNgSuites(emptyConfigurer, suites);
}

private AllureResults runTestNgSuites(AllureTestNgConfig config, final String... suites) {
final Consumer<TestNG> emptyConfigurer = testNg -> {
};
return runTestNgSuites(emptyConfigurer, config, suites);
}

private AllureResults runTestNgSuites(final Consumer<TestNG> configurer,
final String... suites) {;
return runTestNgSuites(configurer, AllureTestNgConfig.loadConfigProperties(), suites);
}

@Step("Run testng suites {suites}")
private AllureResults runTestNgSuites(final Consumer<TestNG> configurer,
final AllureTestNgConfig config,
final String... suites) {
final ClassLoader classLoader = getClass().getClassLoader();
List<String> suiteFiles = Arrays.stream(suites)
Expand All @@ -1241,7 +1274,9 @@ private AllureResults runTestNgSuites(final Consumer<TestNG> configurer,

final AllureResultsWriterStub results = new AllureResultsWriterStub();
final AllureLifecycle lifecycle = new AllureLifecycle(results);
final AllureTestNg adapter = new AllureTestNg(lifecycle);
final AllureTestNg adapter = new AllureTestNg(lifecycle,
new AllureTestNgTestFilter(),
config);
final TestNG testNg = new TestNG(false);
testNg.addListener((ITestNGListener) adapter);
testNg.setTestSuites(suiteFiles);
Expand Down

0 comments on commit 3e3f173

Please sign in to comment.