Skip to content

Commit be3468c

Browse files
sspotaninbaev
authored andcommitted
added possibility to separate lines in javadoc description (via allure-framework#195)
1 parent 9f4eed6 commit be3468c

4 files changed

Lines changed: 52 additions & 3 deletions

File tree

allure-java-commons/src/main/java/io/qameta/allure/Description.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,5 @@
2626
* @return boolean flag to enable description extraction from javadoc.
2727
*/
2828
boolean useJavaDoc() default false;
29+
2930
}

allure-java-commons/src/main/java/io/qameta/allure/util/ResultsUtils.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
import java.util.stream.Collectors;
3737
import java.util.stream.Stream;
3838

39+
import static io.qameta.allure.util.PropertiesUtils.loadAllureProperties;
40+
import static java.lang.Boolean.parseBoolean;
41+
3942
/**
4043
* The collection of Allure utils methods.
4144
*/
@@ -46,6 +49,7 @@ public final class ResultsUtils {
4649
public static final String ALLURE_HOST_NAME_ENV = "ALLURE_HOST_NAME";
4750
public static final String ALLURE_THREAD_NAME_SYSPROP = "allure.threadName";
4851
public static final String ALLURE_THREAD_NAME_ENV = "ALLURE_THREAD_NAME";
52+
public static final String ALLURE_SEPARATE_LINES_SYSPROP = "allure.description.javadoc.separateLines";
4953

5054
public static final String ISSUE_LINK_TYPE = "issue";
5155
public static final String TMS_LINK_TYPE = "tms";
@@ -217,7 +221,7 @@ public static MessageDigest getMd5Digest() {
217221
}
218222

219223
private static String getLinkUrl(final String name, final String type) {
220-
final Properties properties = PropertiesUtils.loadAllureProperties();
224+
final Properties properties = loadAllureProperties();
221225
final String pattern = properties.getProperty(getLinkTypePatternPropertyName(type));
222226
if (Objects.isNull(pattern)) {
223227
return null;
@@ -264,7 +268,11 @@ public static void processDescription(final ClassLoader classLoader, final Metho
264268
.getResource(ALLURE_DESCRIPTIONS_PACKAGE + signatureHash))
265269
.orElseThrow(IOException::new);
266270
description = Resources.toString(resource, Charset.defaultCharset());
267-
item.withDescriptionHtml(description);
271+
if (separateLines()) {
272+
item.withDescriptionHtml(description.replace("\n", "<br />"));
273+
} else {
274+
item.withDescriptionHtml(description);
275+
}
268276
} catch (IOException e) {
269277
LOGGER.warn("Unable to process description resource file for method {} {}", name, e.getMessage());
270278
}
@@ -275,4 +283,8 @@ public static void processDescription(final ClassLoader classLoader, final Metho
275283
}
276284
}
277285

286+
private static boolean separateLines() {
287+
return parseBoolean(loadAllureProperties().getProperty(ALLURE_SEPARATE_LINES_SYSPROP));
288+
}
289+
278290
}

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

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.util.function.Predicate;
3636
import java.util.stream.Collectors;
3737

38+
import static io.qameta.allure.util.ResultsUtils.ALLURE_SEPARATE_LINES_SYSPROP;
3839
import static java.lang.String.format;
3940
import static java.util.Arrays.asList;
4041
import static java.util.Collections.singletonList;
@@ -127,6 +128,29 @@ public void testWithTimeout() {
127128
"Step of the test with no timeout"));
128129
}
129130

131+
@Feature("Descriptions")
132+
@Test(description = "Javadoc descriptions with line separation")
133+
public void descriptionsWithLineSeparationTest() {
134+
String initialSeparateLines = System.getProperty(ALLURE_SEPARATE_LINES_SYSPROP);
135+
if (!Boolean.parseBoolean(initialSeparateLines)) {
136+
System.setProperty(ALLURE_SEPARATE_LINES_SYSPROP, "true");
137+
}
138+
try {
139+
final String testDescription = "Sample test description<br /> - next line<br /> - another line<br />";
140+
runTestNgSuites("suites/descriptions-test.xml");
141+
List<TestResult> testResult = results.getTestResults();
142+
143+
assertThat(testResult).as("Test case result has not been written")
144+
.hasSize(2)
145+
.filteredOn(result -> result.getName().equals("testSeparated"))
146+
.extracting(result -> result.getDescriptionHtml().trim())
147+
.as("Javadoc description of test case has not been processed correctly")
148+
.contains(testDescription);
149+
} finally {
150+
System.setProperty(ALLURE_SEPARATE_LINES_SYSPROP, String.valueOf(initialSeparateLines));
151+
}
152+
}
153+
130154
@Feature("Descriptions")
131155
@Test(description = "Javadoc descriptions of tests")
132156
public void descriptionsTest() {
@@ -135,7 +159,8 @@ public void descriptionsTest() {
135159
List<TestResult> testResult = results.getTestResults();
136160

137161
assertThat(testResult).as("Test case result has not been written")
138-
.hasSize(1).first()
162+
.hasSize(2)
163+
.filteredOn(result -> result.getName().equals("test"))
139164
.extracting(result -> result.getDescriptionHtml().trim())
140165
.as("Javadoc description of test case has not been processed")
141166
.contains(testDescription);

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,17 @@ public void test() {
1818
step();
1919
}
2020

21+
/**
22+
* Sample test description
23+
* - next line
24+
* - another line
25+
*/
26+
@Description(useJavaDoc = true)
27+
@Test
28+
public void testSeparated() {
29+
step();
30+
}
31+
2132
/**
2233
* Sample step description
2334
*/

0 commit comments

Comments
 (0)