@@ -4,6 +4,7 @@ import org.spockframework.runtime.extension.AbstractMethodInterceptor
44import org.spockframework.runtime.extension.IMethodInvocation
55import org.spockframework.runtime.model.FieldInfo
66import org.spockframework.runtime.model.SpecInfo
7+ import org.testcontainers.containers.ComposeContainer
78import org.testcontainers.containers.DockerComposeContainer
89import org.testcontainers.containers.GenericContainer
910import org.testcontainers.lifecycle.TestLifecycleAware
@@ -24,6 +25,9 @@ class TestcontainersMethodInterceptor extends AbstractMethodInterceptor {
2425 def containers = findAllContainers(true )
2526 startContainers(containers, invocation)
2627
28+ def dockerCompose = findAllDockerComposeContainers(true )
29+ startDockerComposeContainers(dockerCompose, invocation)
30+
2731 def compose = findAllComposeContainers(true )
2832 startComposeContainers(compose, invocation)
2933
@@ -35,6 +39,9 @@ class TestcontainersMethodInterceptor extends AbstractMethodInterceptor {
3539 def containers = findAllContainers(true )
3640 stopContainers(containers, invocation)
3741
42+ def dockerCompose = findAllDockerComposeContainers(true )
43+ stopDockerComposeContainers(dockerCompose, invocation)
44+
3845 def compose = findAllComposeContainers(true )
3946 stopComposeContainers(compose, invocation)
4047
@@ -46,6 +53,9 @@ class TestcontainersMethodInterceptor extends AbstractMethodInterceptor {
4653 def containers = findAllContainers(false )
4754 startContainers(containers, invocation)
4855
56+ def dockerCompose = findAllDockerComposeContainers(false )
57+ startDockerComposeContainers(dockerCompose, invocation)
58+
4959 def compose = findAllComposeContainers(false )
5060 startComposeContainers(compose, invocation)
5161
@@ -58,6 +68,9 @@ class TestcontainersMethodInterceptor extends AbstractMethodInterceptor {
5868 def containers = findAllContainers(false )
5969 stopContainers(containers, invocation)
6070
71+ def dockerCompose = findAllDockerComposeContainers(false )
72+ stopDockerComposeContainers(dockerCompose, invocation)
73+
6174 def compose = findAllComposeContainers(false )
6275 stopComposeContainers(compose, invocation)
6376
@@ -70,12 +83,18 @@ class TestcontainersMethodInterceptor extends AbstractMethodInterceptor {
7083 }
7184 }
7285
73- private List<FieldInfo > findAllComposeContainers (boolean shared ) {
86+ private List<FieldInfo > findAllDockerComposeContainers (boolean shared ) {
7487 spec. allFields. findAll { FieldInfo f ->
7588 DockerComposeContainer . isAssignableFrom(f. type) && f. shared == shared
7689 }
7790 }
7891
92+ private List<FieldInfo > findAllComposeContainers (boolean shared ) {
93+ spec. allFields. findAll { FieldInfo f ->
94+ ComposeContainer . isAssignableFrom(f. type) && f. shared == shared
95+ }
96+ }
97+
7998 private static void startContainers (List<FieldInfo > containers , IMethodInvocation invocation ) {
8099 containers. each { FieldInfo f ->
81100 GenericContainer container = readContainerFromField(f, invocation)
@@ -105,20 +124,34 @@ class TestcontainersMethodInterceptor extends AbstractMethodInterceptor {
105124 }
106125 }
107126
108- private static void startComposeContainers (List<FieldInfo > compose , IMethodInvocation invocation ) {
127+ private static void startDockerComposeContainers (List<FieldInfo > compose , IMethodInvocation invocation ) {
109128 compose. each { FieldInfo f ->
110129 DockerComposeContainer c = f. readValue(invocation. instance) as DockerComposeContainer
111130 c. start()
112131 }
113132 }
114133
115- private static void stopComposeContainers (List<FieldInfo > compose , IMethodInvocation invocation ) {
134+ private static void startComposeContainers (List<FieldInfo > compose , IMethodInvocation invocation ) {
135+ compose. each { FieldInfo f ->
136+ ComposeContainer c = f. readValue(invocation. instance) as ComposeContainer
137+ c. start()
138+ }
139+ }
140+
141+ private static void stopDockerComposeContainers (List<FieldInfo > compose , IMethodInvocation invocation ) {
116142 compose. each { FieldInfo f ->
117143 DockerComposeContainer c = f. readValue(invocation. instance) as DockerComposeContainer
118144 c. stop()
119145 }
120146 }
121147
148+ private static void stopComposeContainers (List<FieldInfo > compose , IMethodInvocation invocation ) {
149+ compose. each { FieldInfo f ->
150+ ComposeContainer c = f. readValue(invocation. instance) as ComposeContainer
151+ c. stop()
152+ }
153+ }
154+
122155
123156 private static GenericContainer readContainerFromField (FieldInfo f , IMethodInvocation invocation ) {
124157 f. readValue(invocation. instance) as GenericContainer
0 commit comments