Skip to content

Commit 3d8418e

Browse files
authored
Add Serenity 4 Support (#170)
170: Added Serenity 4 Support
1 parent ef53d55 commit 3d8418e

31 files changed

+333
-158
lines changed

.github/workflows/junit-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Set up Java
1818
uses: actions/setup-java@v3
1919
with:
20-
java-version: '8'
20+
java-version: '11'
2121
distribution: 'adopt'
2222
cache: 'maven'
2323

README.md

Lines changed: 165 additions & 69 deletions
Large diffs are not rendered by default.

pom.xml

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
34
<modelVersion>4.0.0</modelVersion>
45

56
<groupId>com.github.invictum</groupId>
67
<artifactId>serenity-reportportal-integration</artifactId>
7-
<version>1.5.9-SNAPSHOT</version>
8+
<version>1.6.0-SNAPSHOT</version>
89

910
<packaging>jar</packaging>
1011

@@ -37,34 +38,47 @@
3738
<properties>
3839
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3940
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
41+
<serenity.version>4.0.8</serenity.version>
42+
<rp.client.version>5.1.22</rp.client.version>
43+
<rp.commons.version>5.8.1</rp.commons.version>
4044
</properties>
4145

4246
<dependencies>
4347
<dependency>
4448
<groupId>net.serenity-bdd</groupId>
4549
<artifactId>serenity-core</artifactId>
46-
<version>2.3.4</version>
50+
<version>${serenity.version}</version>
4751
</dependency>
4852
<dependency>
4953
<groupId>com.epam.reportportal</groupId>
5054
<artifactId>client-java</artifactId>
51-
<version>5.0.11</version>
55+
<version>${rp.client.version}</version>
5256
</dependency>
5357
<dependency>
5458
<groupId>com.epam.reportportal</groupId>
5559
<artifactId>commons-model</artifactId>
56-
<version>5.3.0</version>
60+
<version>${rp.commons.version}</version>
5761
</dependency>
5862
<dependency>
5963
<groupId>junit</groupId>
6064
<artifactId>junit</artifactId>
6165
<version>4.13.1</version>
6266
<scope>test</scope>
6367
</dependency>
68+
<dependency>
69+
<groupId>com.google.inject</groupId>
70+
<artifactId>guice</artifactId>
71+
<version>7.0.0</version>
72+
</dependency>
73+
<dependency>
74+
<groupId>org.apache.tika</groupId>
75+
<artifactId>tika-core</artifactId>
76+
<version>2.9.0</version>
77+
</dependency>
6478
<dependency>
6579
<groupId>org.mockito</groupId>
6680
<artifactId>mockito-core</artifactId>
67-
<version>3.0.0</version>
81+
<version>5.5.0</version>
6882
<scope>test</scope>
6983
</dependency>
7084
</dependencies>
@@ -125,7 +139,7 @@
125139
<plugin>
126140
<groupId>org.apache.maven.plugins</groupId>
127141
<artifactId>maven-javadoc-plugin</artifactId>
128-
<version>2.10.4</version>
142+
<version>3.6.0</version>
129143
<executions>
130144
<execution>
131145
<id>attach-javadocs</id>
@@ -138,7 +152,7 @@
138152
<plugin>
139153
<groupId>org.apache.maven.plugins</groupId>
140154
<artifactId>maven-source-plugin</artifactId>
141-
<version>3.0.1</version>
155+
<version>3.3.0</version>
142156
<executions>
143157
<execution>
144158
<id>attach-sources</id>
@@ -151,7 +165,7 @@
151165
<plugin>
152166
<groupId>org.apache.maven.plugins</groupId>
153167
<artifactId>maven-gpg-plugin</artifactId>
154-
<version>1.5</version>
168+
<version>3.1.0</version>
155169
<executions>
156170
<execution>
157171
<id>sign-artifacts</id>

src/main/java/com/github/invictum/reportportal/LogUnitsHolder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.epam.reportportal.service.ReportPortal;
44
import com.epam.ta.reportportal.ws.model.log.SaveLogRQ;
5-
import net.thucydides.core.model.TestStep;
5+
import net.thucydides.model.domain.TestStep;
66
import org.slf4j.Logger;
77
import org.slf4j.LoggerFactory;
88

src/main/java/com/github/invictum/reportportal/LogsPreset.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import com.github.invictum.reportportal.log.unit.*;
55
import com.github.invictum.reportportal.log.unit.Error;
66
import com.google.common.base.Preconditions;
7-
import net.thucydides.core.model.TestStep;
7+
import net.thucydides.model.domain.TestStep;
88

99
import java.util.Collection;
1010
import java.util.function.Function;

src/main/java/com/github/invictum/reportportal/NarrativeExtractor.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.github.invictum.reportportal;
22

3-
import net.thucydides.core.annotations.Narrative;
4-
import net.thucydides.core.model.TestOutcome;
5-
import net.thucydides.core.requirements.annotations.NarrativeFinder;
3+
import net.serenitybdd.annotations.Narrative;
4+
import net.thucydides.model.domain.TestOutcome;
5+
import net.thucydides.model.requirements.annotations.NarrativeFinder;
66

77
import java.util.Optional;
88
import java.util.function.Function;
@@ -32,7 +32,7 @@ public Optional<String> extract() {
3232
private String classNarrative() {
3333
Class testCase = test.getTestCase();
3434
//We test if test case is null, in that case narrative extracted from TestOutcome should be empty
35-
if(testCase == null) return "";
35+
if (testCase == null) return "";
3636
return NarrativeFinder.forClass(testCase).map(formatter).orElse(null);
3737
}
3838
}

src/main/java/com/github/invictum/reportportal/ReportIntegrationConfig.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.github.invictum.reportportal;
22

3-
import net.thucydides.core.annotations.Narrative;
3+
4+
import net.serenitybdd.annotations.Narrative;
45

56
import java.util.Objects;
67
import java.util.function.Function;

src/main/java/com/github/invictum/reportportal/ReportPortalListener.java

Lines changed: 81 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,19 @@
33
import com.github.invictum.reportportal.injector.IntegrationInjector;
44
import com.github.invictum.reportportal.recorder.TestRecorder;
55
import com.google.inject.Inject;
6-
import net.thucydides.core.model.DataTable;
7-
import net.thucydides.core.model.Story;
8-
import net.thucydides.core.model.TestOutcome;
9-
import net.thucydides.core.steps.ExecutedStepDescription;
10-
import net.thucydides.core.steps.StepFailure;
11-
import net.thucydides.core.steps.StepListener;
126
import net.thucydides.core.webdriver.ThucydidesWebDriverSupport;
7+
import net.thucydides.model.domain.DataTable;
8+
import net.thucydides.model.domain.Story;
9+
import net.thucydides.model.domain.TestOutcome;
10+
import net.thucydides.model.domain.TestResult;
11+
import net.thucydides.model.screenshots.ScreenshotAndHtmlSource;
12+
import net.thucydides.model.steps.ExecutedStepDescription;
13+
import net.thucydides.model.steps.StepFailure;
14+
import net.thucydides.model.steps.StepListener;
1315
import org.openqa.selenium.logging.Logs;
1416

17+
import java.time.ZonedDateTime;
18+
import java.util.List;
1519
import java.util.Map;
1620

1721
public class ReportPortalListener implements StepListener {
@@ -26,116 +30,173 @@ public ReportPortalListener() {
2630
IntegrationInjector.getInjector().injectMembers(this);
2731
}
2832

29-
public void testSuiteStarted(Class<?> storyClass) {
33+
@Override
34+
public void testSuiteStarted(Class<?> aClass) {
3035
// Not used by listener
3136
}
3237

38+
@Override
3339
public void testSuiteStarted(Story story) {
3440
// Not used by listener
3541
}
3642

43+
@Override
3744
public void testSuiteFinished() {
3845
suiteStorage.finalizeActive();
3946
}
4047

41-
public void testStarted(String description) {
48+
@Override
49+
public void testStarted(String s) {
4250
// Not used by listener
4351
}
4452

45-
public void testStarted(String description, String id) {
53+
@Override
54+
public void testStarted(String s, String s1) {
4655
// Not used by listener
4756
}
4857

49-
public void testFinished(TestOutcome result) {
50-
TestRecorder recorder = TestRecorder.forTest(result);
51-
recorder.record(result);
58+
@Override
59+
public void testStarted(String s, String s1, ZonedDateTime zonedDateTime) {
60+
// Not used by listener
61+
}
62+
63+
@Override
64+
public void testFinished(TestOutcome testOutcome) {
65+
TestRecorder recorder = TestRecorder.forTest(testOutcome);
66+
recorder.record(testOutcome);
5267
logStorage.clean();
5368
}
5469

70+
@Override
71+
public void testFinished(TestOutcome testOutcome, boolean b, ZonedDateTime zonedDateTime) {
72+
testFinished(testOutcome);
73+
}
74+
75+
@Override
5576
public void testRetried() {
5677
// Not used by listener
5778
}
5879

59-
public void stepStarted(ExecutedStepDescription description) {
80+
@Override
81+
public void stepStarted(ExecutedStepDescription executedStepDescription) {
6082
// Not used by listener
6183
}
6284

63-
public void skippedStepStarted(ExecutedStepDescription description) {
85+
@Override
86+
public void skippedStepStarted(ExecutedStepDescription executedStepDescription) {
6487
// Not used by listener
6588
}
6689

67-
public void stepFailed(StepFailure failure) {
90+
@Override
91+
public void stepFailed(StepFailure stepFailure) {
6892
harvestDriverLogs();
6993
}
7094

71-
public void lastStepFailed(StepFailure failure) {
95+
@Override
96+
public void stepFailed(StepFailure stepFailure, List<ScreenshotAndHtmlSource> list) {
97+
harvestDriverLogs();
98+
}
99+
100+
@Override
101+
public void lastStepFailed(StepFailure stepFailure) {
72102
// Not used by listener
73103
}
74104

105+
@Override
75106
public void stepIgnored() {
76107
// Not used by listener
77108
}
78109

110+
@Override
79111
public void stepPending() {
80112
// Not used by listener
81113
}
82114

83-
public void stepPending(String message) {
115+
@Override
116+
public void stepPending(String s) {
84117
// Not used by listener
85118
}
86119

120+
@Override
87121
public void stepFinished() {
88122
harvestDriverLogs();
89123
}
90124

91-
public void testFailed(TestOutcome testOutcome, Throwable cause) {
125+
@Override
126+
public void stepFinished(List<ScreenshotAndHtmlSource> list, ZonedDateTime zonedDateTime) {
127+
harvestDriverLogs();
128+
}
129+
130+
@Override
131+
public void testFailed(TestOutcome testOutcome, Throwable throwable) {
92132
// Not used by listener
93133
}
94134

135+
@Override
95136
public void testIgnored() {
96137
// Not used by listener
97138
}
98139

140+
@Override
99141
public void testSkipped() {
100142
// Not used by listener
101143
}
102144

145+
@Override
103146
public void testPending() {
104147
// Not used by listener
105148
}
106149

150+
@Override
107151
public void testIsManual() {
108152
// Not used by listener
109153
}
110154

155+
@Override
111156
public void notifyScreenChange() {
112157
// Not used by listener
113158
}
114159

115-
public void useExamplesFrom(DataTable table) {
160+
@Override
161+
public void useExamplesFrom(DataTable dataTable) {
116162
// Not used by listener
117163
}
118164

119-
public void addNewExamplesFrom(DataTable table) {
165+
@Override
166+
public void addNewExamplesFrom(DataTable dataTable) {
120167
// Not used by listener
121168
}
122169

170+
@Override
123171
public void exampleStarted(Map<String, String> data) {
124172
// Not used by listener
125173
}
126174

175+
@Override
127176
public void exampleFinished() {
128177
// Not used by listener
129178
}
130179

180+
@Override
131181
public void assumptionViolated(String message) {
132182
// Not used by listener
133183
}
134184

185+
@Override
135186
public void testRunFinished() {
136187
// Not used by listener
137188
}
138189

190+
@Override
191+
public void takeScreenshots(List<ScreenshotAndHtmlSource> list) {
192+
// Not used by listener
193+
}
194+
195+
@Override
196+
public void takeScreenshots(TestResult testResult, List<ScreenshotAndHtmlSource> list) {
197+
// Not used by listener
198+
}
199+
139200
private void harvestDriverLogs() {
140201
boolean harvestLogs = ReportIntegrationConfig.get().harvestSeleniumLogs;
141202
if (harvestLogs && ThucydidesWebDriverSupport.isDriverInstantiated()) {

src/main/java/com/github/invictum/reportportal/StartEventBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import com.epam.ta.reportportal.ws.model.attribute.ItemAttributesRQ;
66
import com.google.common.base.Preconditions;
77
import com.google.common.base.Strings;
8-
import net.thucydides.core.model.DataTable;
9-
import net.thucydides.core.model.TestTag;
8+
import net.thucydides.model.domain.DataTable;
9+
import net.thucydides.model.domain.TestTag;
1010
import org.apache.commons.lang3.StringUtils;
1111

1212
import java.time.ZonedDateTime;

src/main/java/com/github/invictum/reportportal/Status.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.github.invictum.reportportal;
22

3-
import net.thucydides.core.model.TestResult;
3+
4+
import net.thucydides.model.domain.TestResult;
45

56
import java.util.Arrays;
67
import java.util.List;

0 commit comments

Comments
 (0)