Skip to content

Commit b85e6ae

Browse files
committed
Fix for #893 - param annotation name not coming up in report
1 parent 3d361dd commit b85e6ae

File tree

3 files changed

+53
-10
lines changed

3 files changed

+53
-10
lines changed

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

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import io.qameta.allure.Muted;
2222
import io.qameta.allure.Severity;
2323
import io.qameta.allure.SeverityLevel;
24+
import io.qameta.allure.Param;
2425
import io.qameta.allure.model.FixtureResult;
2526
import io.qameta.allure.model.Label;
2627
import io.qameta.allure.model.Link;
@@ -74,6 +75,7 @@
7475
import java.util.concurrent.locks.ReentrantReadWriteLock;
7576
import java.util.function.Consumer;
7677
import java.util.stream.Collectors;
78+
import java.util.stream.IntStream;
7779
import java.util.stream.Stream;
7880

7981
import static io.qameta.allure.util.ResultsUtils.ALLURE_ID_LABEL_NAME;
@@ -779,9 +781,23 @@ private List<Parameter> getParameters(final ITestContext context,
779781
.map(Parameters::value)
780782
.orElse(new String[]{});
781783

782-
final String[] reflectionNames = Stream.of(m.getParameters())
783-
.map(java.lang.reflect.Parameter::getName)
784-
.toArray(String[]::new);
784+
final List<Parameter> reflectionNames = IntStream
785+
.range(0, parameters.length)
786+
.mapToObj(index -> {
787+
final Parameter parameter = createParameter(m.getParameters()[index].getName(), parameters[index]);
788+
Stream.of(m.getParameters()[index].getAnnotationsByType(Param.class))
789+
.findFirst()
790+
.ifPresent(param -> {
791+
Stream.of(param.name().trim())
792+
.map(String::trim)
793+
.filter(name -> !name.isEmpty())
794+
.findFirst()
795+
.ifPresent(parameter::setName);
796+
parameter.setMode(param.mode());
797+
parameter.setExcluded(param.excluded());
798+
});
799+
return parameter;
800+
}).collect(Collectors.toList());
785801

786802
int skippedCount = 0;
787803
for (int i = 0; i < parameterTypes.length; i++) {
@@ -797,8 +813,8 @@ private List<Parameter> getParameters(final ITestContext context,
797813
continue;
798814
}
799815

800-
if (i < reflectionNames.length) {
801-
result.put(reflectionNames[i], ObjectUtils.toString(parameters[i]));
816+
if (i < reflectionNames.size()) {
817+
result.put(reflectionNames.get(i).getName(), ObjectUtils.toString(parameters[i]));
802818
}
803819
}
804820

allure-testng/src/test/java/io/qameta/allure/testng/samples/ParameterizedTest.java

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@
1515
*/
1616
package io.qameta.allure.testng.samples;
1717

18-
import io.qameta.allure.Step;
18+
import io.qameta.allure.Param;
1919
import org.testng.annotations.BeforeMethod;
2020
import org.testng.annotations.DataProvider;
2121
import org.testng.annotations.Test;
2222

23+
import static io.qameta.allure.Allure.step;
24+
2325
/**
2426
* @author Egor Borisov ehborisov@gmail.com
2527
*/
@@ -38,13 +40,36 @@ public Object[][] testData() {
3840
};
3941
}
4042

43+
@DataProvider
44+
public static Object[][] testDataForParamNames() {
45+
return new Object[][]{
46+
{1, 1, 2, 5},
47+
{2, 2, 4, 5}
48+
};
49+
}
50+
4151
@Test(dataProvider = "testData")
4252
public void parameterizedTest(String param) {
4353
step(param);
4454
}
4555

46-
@Step
47-
public void step(String param) {
56+
@Test(dataProvider = "testDataForParamNames")
57+
public void sumTest(
58+
@Param(name = "First") Integer a,
59+
@Param(name = "Second") Integer b,
60+
@Param(name = "Third") Integer r,
61+
@Param(name = "Fourth") Integer s) {
62+
63+
step(("Arrange"), () -> {
64+
step(String.format("Take collection №[%s] of parameters", a));
65+
});
66+
step(("Act"), () -> {
67+
step(String.format("Add [%s]", a) + String.format("to [%s]", b));
68+
});
69+
step(("Assert"), () -> {
70+
step("Compare the sum");
71+
assert a + b == r;
72+
});
4873

4974
}
5075
}

allure-testng/src/test/resources/suites/parameterized-test.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
33

44
<suite name="Test suite 6">
5+
<listeners>
6+
<listener class-name="io.qameta.allure.testng.AllureTestNg"/>
7+
</listeners>
58
<test name="Test tag 6">
69
<classes>
7-
<class name="io.qameta.allure.testng.samples.ParameterizedTest">
8-
</class>
10+
<class name="io.qameta.allure.testng.samples.ParameterizedTest"/>
911
</classes>
1012
</test>
1113
</suite>

0 commit comments

Comments
 (0)