1
1
package cucumber .runtime .junit ;
2
2
3
+ import static cucumber .runtime .junit .PickleRunners .withNoStepDescriptions ;
4
+ import static cucumber .runtime .junit .PickleRunners .withStepDescriptions ;
5
+
3
6
import cucumber .runtime .CucumberException ;
4
7
import cucumber .runtime .Runtime ;
8
+ import cucumber .runtime .junit .PickleRunners .PickleRunner ;
5
9
import cucumber .runtime .model .CucumberFeature ;
6
10
import gherkin .ast .Feature ;
7
11
import gherkin .events .PickleEvent ;
16
20
import java .util .ArrayList ;
17
21
import java .util .List ;
18
22
19
- public class FeatureRunner extends ParentRunner <ParentRunner > {
20
- private final List <ParentRunner > children = new ArrayList <ParentRunner >();
23
+ public class FeatureRunner extends ParentRunner <PickleRunner > {
24
+ private final List <PickleRunner > children = new ArrayList <PickleRunner >();
21
25
22
26
private final CucumberFeature cucumberFeature ;
23
27
private Description description ;
@@ -38,7 +42,7 @@ public String getName() {
38
42
public Description getDescription () {
39
43
if (description == null ) {
40
44
description = Description .createSuiteDescription (getName (), new FeatureId (cucumberFeature ));
41
- for (ParentRunner child : getChildren ()) {
45
+ for (PickleRunner child : getChildren ()) {
42
46
description .addChild (describeChild (child ));
43
47
}
44
48
}
@@ -50,17 +54,17 @@ public boolean isEmpty() {
50
54
}
51
55
52
56
@ Override
53
- protected List <ParentRunner > getChildren () {
57
+ protected List <PickleRunner > getChildren () {
54
58
return children ;
55
59
}
56
60
57
61
@ Override
58
- protected Description describeChild (ParentRunner child ) {
62
+ protected Description describeChild (PickleRunner child ) {
59
63
return child .getDescription ();
60
64
}
61
65
62
66
@ Override
63
- protected void runChild (ParentRunner child , RunNotifier notifier ) {
67
+ protected void runChild (PickleRunner child , RunNotifier notifier ) {
64
68
child .run (notifier );
65
69
}
66
70
@@ -78,9 +82,15 @@ private void buildFeatureElementRunners(Runtime runtime, JUnitReporter jUnitRepo
78
82
for (PickleEvent pickleEvent : pickleEvents ) {
79
83
if (runtime .matchesFilters (pickleEvent )) {
80
84
try {
81
- ParentRunner pickleRunner ;
82
- pickleRunner = new ExecutionUnitRunner (runtime .getRunner (), pickleEvent , jUnitReporter );
83
- children .add (pickleRunner );
85
+ if (jUnitReporter .stepNotifications ()) {
86
+ PickleRunner picklePickleRunner ;
87
+ picklePickleRunner = withStepDescriptions (runtime .getRunner (), pickleEvent , jUnitReporter );
88
+ children .add (picklePickleRunner );
89
+ } else {
90
+ PickleRunner picklePickleRunner ;
91
+ picklePickleRunner = withNoStepDescriptions (runtime .getRunner (), pickleEvent , jUnitReporter );
92
+ children .add (picklePickleRunner );
93
+ }
84
94
} catch (InitializationError e ) {
85
95
throw new CucumberException ("Failed to create scenario runner" , e );
86
96
}
0 commit comments