@@ -136,7 +136,7 @@ public function setUp()
136
136
* @dataProvider yamlProvider
137
137
* @group sync
138
138
*/
139
- public function testIntegration ($ testProcedure , bool $ skip , $ setupProcedure , string $ fileName )
139
+ public function testIntegration ($ testProcedure , bool $ skip , $ setupProcedure , $ teardownProcedure , string $ fileName )
140
140
{
141
141
if ($ skip ) {
142
142
static ::markTestIncomplete ($ testProcedure );
@@ -151,14 +151,21 @@ public function testIntegration($testProcedure, bool $skip, $setupProcedure, str
151
151
$ this ->waitForYellow ();
152
152
}
153
153
154
- $ this ->processProcedure (current ($ testProcedure ), key ($ testProcedure ), $ fileName );
154
+ try {
155
+ $ this ->processProcedure (current ($ testProcedure ), key ($ testProcedure ), $ fileName );
156
+ } finally {
157
+ if (null !== $ teardownProcedure ) {
158
+ $ this ->processProcedure (current ($ teardownProcedure ), 'teardown ' , $ fileName );
159
+ $ this ->waitForYellow ();
160
+ }
161
+ }
155
162
}
156
163
157
164
/**
158
165
* @dataProvider yamlProvider
159
166
* @group async
160
167
*/
161
- public function testAsyncIntegration ($ testProcedure , bool $ skip , $ setupProcedure , string $ fileName )
168
+ public function testAsyncIntegration ($ testProcedure , bool $ skip , $ setupProcedure , $ teardownProcedure , string $ fileName )
162
169
{
163
170
if ($ skip ) {
164
171
static ::markTestIncomplete ($ testProcedure );
@@ -173,7 +180,14 @@ public function testAsyncIntegration($testProcedure, bool $skip, $setupProcedure
173
180
$ this ->waitForYellow ();
174
181
}
175
182
176
- $ this ->processProcedure (current ($ testProcedure ), key ($ testProcedure ), $ fileName , true );
183
+ try {
184
+ $ this ->processProcedure (current ($ testProcedure ), key ($ testProcedure ), $ fileName , true );
185
+ } finally {
186
+ if (null !== $ teardownProcedure ) {
187
+ $ this ->processProcedure (current ($ teardownProcedure ), 'teardown ' , $ fileName );
188
+ $ this ->waitForYellow ();
189
+ }
190
+ }
177
191
}
178
192
179
193
/**
@@ -917,6 +931,7 @@ private function splitDocument(SplFileInfo $file, string $path, string $filter =
917
931
$ documentsParsed = [];
918
932
$ setup = null ;
919
933
$ setupSkip = false ;
934
+ $ teardown = null ;
920
935
$ fileName = str_replace ($ path . '/ ' , '' , $ file );
921
936
922
937
if (array_key_exists ($ fileName , static ::$ fatalFiles )) {
@@ -964,8 +979,10 @@ private function splitDocument(SplFileInfo $file, string $path, string $filter =
964
979
if (!$ skip && key ($ documentParsed ) === 'setup ' ) {
965
980
$ setup = $ documentParsed ;
966
981
$ setupSkip = $ skip ;
967
- } else {
968
- $ documentsParsed [] = [$ documentParsed , $ skip || $ setupSkip , $ setup , $ fileName ];
982
+ } else if (!$ skip && key ($ documentParsed ) === 'teardown ' ) {
983
+ $ teardown = $ documentParsed ;
984
+ } else {
985
+ $ documentsParsed [] = [$ documentParsed , $ skip || $ setupSkip , $ setup , $ teardown , $ fileName ];
969
986
}
970
987
}
971
988
0 commit comments