Skip to content

Commit 772edcf

Browse files
authored
remove spock2 system out capture (fixes #866, via #951)
1 parent d14c012 commit 772edcf

File tree

7 files changed

+40
-119
lines changed

7 files changed

+40
-119
lines changed

allure-spock2/src/main/java/io/qameta/allure/spock2/AllureSpock2.java

Lines changed: 10 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,15 @@
2424
import io.qameta.allure.model.Parameter;
2525
import io.qameta.allure.model.Status;
2626
import io.qameta.allure.model.StatusDetails;
27-
import io.qameta.allure.model.StepResult;
2827
import io.qameta.allure.model.TestResult;
2928
import io.qameta.allure.model.TestResultContainer;
3029
import io.qameta.allure.testfilter.FileTestPlanSupplier;
3130
import io.qameta.allure.testfilter.TestPlan;
32-
import io.qameta.allure.testfilter.TestPlanUnknown;
3331
import io.qameta.allure.testfilter.TestPlanV1_0;
3432
import io.qameta.allure.util.AnnotationUtils;
3533
import io.qameta.allure.util.ExceptionUtils;
3634
import io.qameta.allure.util.ResultsUtils;
3735
import org.spockframework.runtime.AbstractRunListener;
38-
import org.spockframework.runtime.IStandardStreamsListener;
39-
import org.spockframework.runtime.StandardStreamsCapturer;
4036
import org.spockframework.runtime.extension.IGlobalExtension;
4137
import org.spockframework.runtime.extension.IMethodInterceptor;
4238
import org.spockframework.runtime.extension.IMethodInvocation;
@@ -86,9 +82,7 @@
8682
@SuppressWarnings({
8783
"PMD.NcssCount"
8884
})
89-
public class AllureSpock2 extends AbstractRunListener implements IGlobalExtension, IStandardStreamsListener {
90-
91-
private final StandardStreamsCapturer streamsCapturer = new StandardStreamsCapturer();
85+
public class AllureSpock2 extends AbstractRunListener implements IGlobalExtension {
9286

9387
private final ThreadLocal<String> testResults = new InheritableThreadLocal<String>() {
9488
@Override
@@ -107,22 +101,14 @@ public AllureSpock2() {
107101
}
108102

109103
public AllureSpock2(final AllureLifecycle lifecycle) {
110-
this.lifecycle = lifecycle;
111-
this.streamsCapturer.addStandardStreamsListener(this);
112-
this.testPlan = new FileTestPlanSupplier().supply().orElse(new TestPlanUnknown());
104+
this(lifecycle, new FileTestPlanSupplier().supply().orElse(null));
113105
}
114106

115107
public AllureSpock2(final AllureLifecycle lifecycle, final TestPlan plan) {
116108
this.lifecycle = lifecycle;
117-
this.streamsCapturer.addStandardStreamsListener(this);
118109
this.testPlan = plan;
119110
}
120111

121-
@Override
122-
public void start() {
123-
//do nothing at this point
124-
}
125-
126112
@Override
127113
public void visitSpec(final SpecInfo spec) {
128114
spec.getAllFeatures().forEach(methodInfo -> methodInfo.setSkipped(this.isSkipped(methodInfo)));
@@ -156,42 +142,6 @@ public void visitSpec(final SpecInfo spec) {
156142
}));
157143
}
158144

159-
@Override
160-
public void stop() {
161-
//do nothing at this point
162-
}
163-
164-
@Override
165-
public void standardOut(final String message) {
166-
logMessage(message, Status.PASSED);
167-
}
168-
169-
@Override
170-
public void standardErr(final String message) {
171-
logMessage(message, Status.BROKEN);
172-
}
173-
174-
private void logMessage(final String message, final Status status) {
175-
if (Objects.isNull(message)) {
176-
return;
177-
}
178-
179-
final String trimmed = message.trim();
180-
if (trimmed.isEmpty()) {
181-
return;
182-
}
183-
184-
getLifecycle().getCurrentTestCaseOrStep().ifPresent(parentUuid -> {
185-
final String uuid = UUID.randomUUID().toString();
186-
getLifecycle().startStep(
187-
parentUuid, uuid,
188-
new StepResult().setName(trimmed).setStatus(status)
189-
);
190-
getLifecycle().stopStep(uuid);
191-
});
192-
}
193-
194-
195145
@Override
196146
public void beforeIteration(final IterationInfo iteration) {
197147
final String uuid = testResults.get();
@@ -299,12 +249,19 @@ private String getHistoryId(final String name, final List<Parameter> parameters)
299249
}
300250

301251
private boolean isSkipped(final FeatureInfo featureInfo) {
252+
if (Objects.isNull(this.testPlan)) {
253+
return false;
254+
}
302255
if (this.testPlan instanceof TestPlanV1_0) {
303256
final TestPlanV1_0 tp = (TestPlanV1_0) testPlan;
304257
return !Objects.isNull(tp.getTests()) && tp.getTests()
305258
.stream()
306259
.filter(Objects::nonNull)
307-
.noneMatch(tc -> this.match(tc, this.getAllureId(featureInfo), this.getQualifiedName(featureInfo)));
260+
.noneMatch(tc -> this.match(
261+
tc,
262+
this.getAllureId(featureInfo),
263+
this.getQualifiedName(featureInfo))
264+
);
308265
}
309266
return false;
310267
}
@@ -344,16 +301,6 @@ public void afterIteration(final IterationInfo iteration) {
344301
getLifecycle().writeTestCase(uuid);
345302
}
346303

347-
@Override
348-
public void beforeSpec(final SpecInfo spec) {
349-
streamsCapturer.start();
350-
}
351-
352-
@Override
353-
public void afterSpec(final SpecInfo spec) {
354-
streamsCapturer.stop();
355-
}
356-
357304
private List<Parameter> getParameters(final List<String> names, final Object... values) {
358305
return IntStream.range(0, Math.min(names.size(), values.length))
359306
.mapToObj(index -> createParameter(names.get(index), values[index]))

allure-spock2/src/test/groovy/io/qameta/allure/spock2/AllureSpock2Test.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import io.qameta.allure.spock2.samples.ParametersTest;
4141
import io.qameta.allure.spock2.samples.SpecFixtures;
4242
import io.qameta.allure.spock2.samples.StepsAndBlocks;
43-
import io.qameta.allure.spock2.samples.StreamsListener;
4443
import io.qameta.allure.spock2.samples.TestWithAnnotations;
4544
import io.qameta.allure.spock2.samples.TestWithAnnotationsOnClass;
4645
import io.qameta.allure.spock2.samples.TestWithCustomAnnotations;
@@ -90,16 +89,6 @@ void shouldStoreTestsInformation() {
9089
.hasSize(1);
9190
}
9291

93-
@Test
94-
void shouldCaptureSystemStreams() {
95-
final AllureResults results = runClasses(StreamsListener.class);
96-
assertThat(results.getTestResults())
97-
.extracting(TestResult::getName, this::printSteps)
98-
.containsExactlyInAnyOrder(
99-
tuple("Streams Test", "step1, error step, expect")
100-
);
101-
}
102-
10392
@Test
10493
void shouldSupportTestsWithStepsAndBlocks() {
10594
final AllureResults results = runClasses(StepsAndBlocks.class);

allure-spock2/src/test/groovy/io/qameta/allure/spock2/samples/OneTest.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@ package io.qameta.allure.spock2.samples
1717

1818
import spock.lang.Specification
1919

20+
import static io.qameta.allure.Allure.step
21+
2022
/**
2123
* @author charlie (Dmitry Baev).
2224
*/
2325
class OneTest extends Specification {
2426

2527
def setup() {
26-
println "OneTest#setup"
28+
step "OneTest#setup"
2729
}
2830

2931
def "Simple Test"() {

allure-spock2/src/test/groovy/io/qameta/allure/spock2/samples/SpecFixtures.groovy

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,19 @@ package io.qameta.allure.spock2.samples
1717

1818
import spock.lang.Specification
1919

20+
import static io.qameta.allure.Allure.step
21+
2022
/**
2123
* @author charlie (Dmitry Baev).
2224
*/
2325
class SpecFixtures extends Specification {
2426

2527
def setupSpec() {
26-
println "SpecFixtures#setupSpec"
28+
step "SpecFixtures#setupSpec"
2729
}
2830

2931
def cleanupSpec() {
30-
println "SpecFixtures#cleanupSpec"
32+
step "SpecFixtures#cleanupSpec"
3133
}
3234

3335
def "test with spec fixtures"() {

allure-spock2/src/test/groovy/io/qameta/allure/spock2/samples/SpecInheritanceSpec.groovy

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,34 @@ package io.qameta.allure.spock2.samples
1717

1818
import spock.lang.Specification
1919

20+
import static io.qameta.allure.Allure.step
21+
2022
abstract class BaseSpec extends Specification {
21-
def setupSpec() { println 'base setupSpec()' }
22-
def cleanupSpec() { println 'base cleanupSpec()' }
23+
def setupSpec() { step 'base setupSpec()' }
24+
25+
def cleanupSpec() { step 'base cleanupSpec()' }
26+
27+
def setup() { step 'base setup()' }
2328

24-
def setup() { println 'base setup()' }
25-
def cleanup() { println 'base cleanup()' }
29+
def cleanup() { step 'base cleanup()' }
2630

27-
def baseSpecMethod() { setup: println 'base spec method' }
31+
def baseSpecMethod() {
32+
setup:
33+
step 'base spec method'
34+
}
2835
}
2936

3037
class DerivedSpec extends BaseSpec {
31-
def setupSpec() { println 'derived setupSpec()' }
32-
def cleanupSpec() { println 'derived cleanupSpec()' }
38+
def setupSpec() { step 'derived setupSpec()' }
39+
40+
def cleanupSpec() { step 'derived cleanupSpec()' }
41+
42+
def setup() { step 'derived setup()' }
3343

34-
def setup() { println 'derived setup()' }
35-
def cleanup() { println 'derived cleanup()' }
44+
def cleanup() { step 'derived cleanup()' }
3645

37-
def derivedSpecMethod() { setup: println 'derived spec method' }
46+
def derivedSpecMethod() {
47+
setup:
48+
step 'derived spec method'
49+
}
3850
}

allure-spock2/src/test/groovy/io/qameta/allure/spock2/samples/StepsAndBlocks.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,6 @@ class StepsAndBlocks extends Specification {
4141

4242
@Step
4343
def "step some"() {
44-
println "yaaa"
44+
step "yaaa"
4545
}
4646
}

allure-spock2/src/test/groovy/io/qameta/allure/spock2/samples/StreamsListener.groovy

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)