Skip to content

Commit e9b9eab

Browse files
committed
add more utility methods to allure
1 parent 8a03f41 commit e9b9eab

7 files changed

Lines changed: 469 additions & 9 deletions

File tree

allure-java-commons/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ dependencies {
1414
testCompile 'org.slf4j:slf4j-simple'
1515
testCompile 'org.mockito:mockito-core'
1616
testCompile 'org.assertj:assertj-core'
17+
testCompile 'org.apache.commons:commons-lang3'
1718
}

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

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.qameta.allure;
22

3+
import io.qameta.allure.model.Label;
34
import io.qameta.allure.model.Stage;
45
import io.qameta.allure.model.Status;
56
import io.qameta.allure.model.StatusDetails;
@@ -35,8 +36,24 @@ public static AllureLifecycle getLifecycle() {
3536
return lifecycle;
3637
}
3738

39+
public static void addLabels(final Label... labels) {
40+
getLifecycle().updateTestCase(testResult -> testResult.withLabels(labels));
41+
}
42+
43+
public static void addLinks(final io.qameta.allure.model.Link... links) {
44+
getLifecycle().updateTestCase(testResult -> testResult.withLinks(links));
45+
}
46+
47+
public static void addDescription(final String description) {
48+
getLifecycle().updateExecutable(executable -> executable.withDescription(description));
49+
}
50+
51+
public static void addDescriptionHtml(final String descriptionHtml) {
52+
getLifecycle().updateExecutable(executable -> executable.withDescriptionHtml(descriptionHtml));
53+
}
54+
3855
public static void addStep(final String name) {
39-
lifecycle.addStep(new StepResult()
56+
getLifecycle().addStep(new StepResult()
4057
.withName(name)
4158
.withStart(System.currentTimeMillis())
4259
.withStop(System.currentTimeMillis())
@@ -46,7 +63,7 @@ public static void addStep(final String name) {
4663
}
4764

4865
public static void addStep(final String name, final Status status, final StatusDetails statusDetails) {
49-
lifecycle.addStep(new StepResult()
66+
getLifecycle().addStep(new StepResult()
5067
.withName(name)
5168
.withStart(System.currentTimeMillis())
5269
.withStop(System.currentTimeMillis())
@@ -57,27 +74,27 @@ public static void addStep(final String name, final Status status, final StatusD
5774
}
5875

5976
public static void addAttachment(final String name, final String content) {
60-
lifecycle.addAttachment(name, TEXT_PLAIN, TXT_EXTENSION, content.getBytes(StandardCharsets.UTF_8));
77+
getLifecycle().addAttachment(name, TEXT_PLAIN, TXT_EXTENSION, content.getBytes(StandardCharsets.UTF_8));
6178
}
6279

6380
public static void addAttachment(final String name, final String type, final String content) {
64-
lifecycle.addAttachment(name, type, TXT_EXTENSION, content.getBytes(StandardCharsets.UTF_8));
81+
getLifecycle().addAttachment(name, type, TXT_EXTENSION, content.getBytes(StandardCharsets.UTF_8));
6582
}
6683

6784
@SuppressWarnings("PMD.UseObjectForClearerAPI")
6885
public static void addAttachment(final String name, final String type,
6986
final String content, final String fileExtension) {
70-
lifecycle.addAttachment(name, type, fileExtension, content.getBytes(StandardCharsets.UTF_8));
87+
getLifecycle().addAttachment(name, type, fileExtension, content.getBytes(StandardCharsets.UTF_8));
7188
}
7289

7390
public static void addAttachment(final String name, final InputStream content) {
74-
lifecycle.addAttachment(name, null, null, content);
91+
getLifecycle().addAttachment(name, null, null, content);
7592
}
7693

7794
@SuppressWarnings("PMD.UseObjectForClearerAPI")
7895
public static void addAttachment(final String name, final String type,
7996
final InputStream content, final String fileExtension) {
80-
lifecycle.addAttachment(name, type, fileExtension, content);
97+
getLifecycle().addAttachment(name, type, fileExtension, content);
8198
}
8299

83100
public static CompletableFuture<byte[]> addByteAttachmentAsync(
@@ -87,9 +104,9 @@ public static CompletableFuture<byte[]> addByteAttachmentAsync(
87104

88105
public static CompletableFuture<byte[]> addByteAttachmentAsync(
89106
final String name, final String type, final String fileExtension, final Supplier<byte[]> body) {
90-
final String source = lifecycle.prepareAttachment(name, type, fileExtension);
107+
final String source = getLifecycle().prepareAttachment(name, type, fileExtension);
91108
return supplyAsync(body).whenComplete((result, ex) ->
92-
lifecycle.writeAttachment(source, new ByteArrayInputStream(result)));
109+
getLifecycle().writeAttachment(source, new ByteArrayInputStream(result)));
93110
}
94111

95112
public static CompletableFuture<InputStream> addStreamAttachmentAsync(

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.qameta.allure;
22

33
import io.qameta.allure.model.Attachment;
4+
import io.qameta.allure.model.ExecutableItem;
45
import io.qameta.allure.model.FixtureResult;
56
import io.qameta.allure.model.Stage;
67
import io.qameta.allure.model.StepResult;
@@ -103,6 +104,11 @@ private void startFixture(final String parentUuid, final String uuid, final Fixt
103104
currentStepContext.get().push(uuid);
104105
}
105106

107+
public void updateFixture(final Consumer<FixtureResult> update) {
108+
final String uuid = currentStepContext.get().getLast();
109+
updateFixture(uuid, update);
110+
}
111+
106112
public void updateFixture(final String uuid, final Consumer<FixtureResult> update) {
107113
LOGGER.debug("Update test group {}", uuid);
108114
update.accept(get(uuid, FixtureResult.class));
@@ -138,6 +144,11 @@ public void startTestCase(final String uuid) {
138144
currentStepContext.get().push(uuid);
139145
}
140146

147+
public void updateTestCase(final Consumer<TestResult> update) {
148+
final String uuid = currentStepContext.get().getLast();
149+
updateTestCase(uuid, update);
150+
}
151+
141152
public void updateTestCase(final String uuid, final Consumer<TestResult> update) {
142153
LOGGER.debug("Update test case {}", uuid);
143154
update.accept(get(uuid, TestResult.class));
@@ -151,6 +162,16 @@ public void stopTestCase(final String uuid) {
151162
.withStop(System.currentTimeMillis());
152163
}
153164

165+
public void updateExecutable(final Consumer<ExecutableItem> update) {
166+
final String uuid = currentStepContext.get().getLast();
167+
updateExecutable(uuid, update);
168+
}
169+
170+
public void updateExecutable(final String uuid, final Consumer<ExecutableItem> update) {
171+
LOGGER.debug("Update executable {}", uuid);
172+
update.accept(get(uuid, ExecutableItem.class));
173+
}
174+
154175
public void writeTestCase(final String uuid) {
155176
LOGGER.debug("Close test case {}", uuid);
156177
writer.write(remove(uuid, TestResult.class));

0 commit comments

Comments
 (0)