Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

allure-testng: add property to disable configuration failures logging #920

Merged
merged 12 commits into from
Jun 28, 2023
Merged
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) {
iFatRain marked this conversation as resolved.
Show resolved Hide resolved
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