Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,17 @@
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;

import static io.qameta.allure.util.ResultsUtils.firstNonEmpty;
import static io.qameta.allure.util.ResultsUtils.getHostName;
import static io.qameta.allure.util.ResultsUtils.getStatusDetails;
import static io.qameta.allure.util.ResultsUtils.getThreadName;
import static io.qameta.allure.util.ResultsUtils.processDescription;
import static java.lang.Math.min;
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.Comparator.comparing;
import static java.util.stream.IntStream.range;

/**
* Allure TestNG listener.
Expand Down Expand Up @@ -512,6 +513,10 @@ private static String safeExtractTestClassName(final ITestClass testClass) {
}

private List<Parameter> getParameters(final ITestResult testResult) {
final Stream<Parameter> tagsParameters = testResult.getTestContext()
.getCurrentXmlTest().getAllParameters().entrySet()
.stream()
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why in new line?

Copy link
Copy Markdown
Member Author

@baev baev Jun 28, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

who cares, Checkstyle/PMD are fine with that

.map(entry -> new Parameter().withName(entry.getKey()).withValue(entry.getValue()));
final String[] parameterNames = Optional.of(testResult)
.map(ITestResult::getMethod)
.map(ITestNGMethod::getConstructorOrMethod)
Expand All @@ -524,8 +529,9 @@ private List<Parameter> getParameters(final ITestResult testResult) {
final String[] parameterValues = Stream.of(testResult.getParameters())
.map(Objects::toString)
.toArray(String[]::new);
return IntStream.range(0, Math.min(parameterNames.length, parameterValues.length))
.mapToObj(i -> new Parameter().withName(parameterNames[i]).withValue(parameterValues[i]))
final Stream<Parameter> methodParameters = range(0, min(parameterNames.length, parameterValues.length))
.mapToObj(i -> new Parameter().withName(parameterNames[i]).withValue(parameterValues[i]));
return Stream.concat(tagsParameters, methodParameters)
.collect(Collectors.toList());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import io.qameta.allure.model.FixtureResult;
import io.qameta.allure.model.Label;
import io.qameta.allure.model.Link;
import io.qameta.allure.model.Parameter;
import io.qameta.allure.model.Stage;
import io.qameta.allure.model.Status;
import io.qameta.allure.model.StepResult;
Expand All @@ -32,6 +33,7 @@
import static java.lang.String.format;
import static java.util.Collections.singletonList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;

/**
* @author Egor Borisov [email protected]
Expand Down Expand Up @@ -311,6 +313,22 @@ public void multipleSuites() {
assertContainersChildren(secondSuiteName, testContainers, getUidsByName(testContainers, secondTagName));
}

@Test(description = "Before Suite Parameter")
public void testBeforeSuiteParameter() {
runTestNgSuites("suites/parameterized-suite1.xml", "suites/parameterized-suite2.xml");
List<TestResult> testResults = results.getTestResults();
assertThat(testResults)
.hasSize(2)
.flatExtracting(TestResult::getParameters)
.extracting(Parameter::getName, Parameter::getValue)
.containsExactly(
tuple("param", "first"),
tuple("parameter", "first"),
tuple("param", "second"),
tuple("parameter", "second")
);
}

@Test(description = "Parallel methods")
public void parallelMethods() {
String before1 = "io.qameta.allure.testng.samples.ParallelMethods.beforeMethod";
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package io.qameta.allure.testng.samples;

/*
@author Andrejs Kalnacs [email protected]
*/
import org.testng.ITestContext;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class SuiteParameterTest {
@Parameters("parameter")
@BeforeSuite
public void beforeSuite(String parameter, ITestContext context) {
context.getCurrentXmlTest().addParameter("param", parameter);
}

@Test()
public void simpleTest() {
}
}
12 changes: 12 additions & 0 deletions allure-testng/src/test/resources/suites/parameterized-suite1.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Suite with parameter">
<parameter name="parameter" value="first" />
<test name="Parameter test">
<classes>
<class name="io.qameta.allure.testng.samples.SuiteParameterTest">
</class>
</classes>
</test>
</suite>
12 changes: 12 additions & 0 deletions allure-testng/src/test/resources/suites/parameterized-suite2.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Suite with parameter">
<parameter name="parameter" value="second" />
<test name="Parameter test">
<classes>
<class name="io.qameta.allure.testng.samples.SuiteParameterTest">
</class>
</classes>
</test>
</suite>