Skip to content

Commit b8bfe54

Browse files
committed
Fix TempDir not working for inherited fields
fixes #1229
1 parent def6c38 commit b8bfe54

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

Diff for: spock-core/src/main/java/org/spockframework/runtime/extension/builtin/TempDirExtension.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
import org.spockframework.runtime.InvalidSpecException;
44
import org.spockframework.runtime.extension.IAnnotationDrivenExtension;
5-
import org.spockframework.runtime.model.FeatureInfo;
6-
import org.spockframework.runtime.model.FieldInfo;
7-
import org.spockframework.runtime.model.SpecInfo;
5+
import org.spockframework.runtime.model.*;
86
import org.spockframework.tempdir.TempDirConfiguration;
97
import org.spockframework.util.Beta;
108
import spock.lang.TempDir;
@@ -33,7 +31,7 @@ public void visitFieldAnnotation(TempDir annotation, FieldInfo field) {
3331
if (field.isShared()) {
3432
specInfo.addInterceptor(interceptor);
3533
} else {
36-
for (FeatureInfo featureInfo : specInfo.getAllFeatures()) {
34+
for (FeatureInfo featureInfo : specInfo.getBottomSpec().getAllFeatures()) {
3735
featureInfo.addIterationInterceptor(interceptor);
3836
}
3937
}

Diff for: spock-specs/src/test/groovy/org/spockframework/smoke/extension/TempDirExtensionSpec.groovy

+14-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
package org.spockframework.smoke.extension
22

33
import org.spockframework.EmbeddedSpecification
4-
import spock.lang.Shared
5-
import spock.lang.Stepwise
6-
import spock.lang.TempDir
4+
import spock.lang.*
75

8-
import java.nio.file.Files
9-
import java.nio.file.Path
10-
import java.nio.file.Paths
6+
import java.nio.file.*
117

128
/**
139
* @author dqyuan
@@ -121,3 +117,15 @@ def method1() {
121117
}
122118

123119
}
120+
121+
abstract class TempDirBaseSpec extends Specification {
122+
@TempDir Path tmp
123+
}
124+
125+
@Issue("https://github.com/spockframework/spock/issues/1229")
126+
class TempDirInheritedSpec extends TempDirBaseSpec {
127+
void "TempDir works for inherited fields"() {
128+
expect:
129+
tmp != null
130+
}
131+
}

0 commit comments

Comments
 (0)