@@ -180,15 +180,14 @@ func (r *simpleTestCaseRunner) RunTestCase(testcase *testing.TestCase, dataConte
180
180
r .testReporter .PutRecord (rr )
181
181
}(record )
182
182
183
- if err = r .doPrepare (testcase ); err != nil {
184
- err = fmt .Errorf ("failed to prepare, error: %v" , err )
185
- return
186
- }
187
-
188
183
defer func () {
189
184
if testcase .Clean .CleanPrepare {
190
185
err = r .doCleanPrepare (testcase )
191
186
}
187
+
188
+ if err == nil {
189
+ err = runJob (testcase .After )
190
+ }
192
191
}()
193
192
194
193
client := http.Client {
@@ -216,6 +215,10 @@ func (r *simpleTestCaseRunner) RunTestCase(testcase *testing.TestCase, dataConte
216
215
request .Header .Add (key , val )
217
216
}
218
217
218
+ if err = runJob (testcase .Before ); err != nil {
219
+ return
220
+ }
221
+
219
222
r .log .Info ("start to send request to %s\n " , testcase .Request .API )
220
223
221
224
// TODO only do this for unit testing, should remove it once we have a better way
@@ -285,21 +288,10 @@ func (r *simpleTestCaseRunner) WithExecer(execer fakeruntime.Execer) TestCaseRun
285
288
return r
286
289
}
287
290
288
- func (r * simpleTestCaseRunner ) doPrepare (testcase * testing.TestCase ) (err error ) {
289
- for i := range testcase .Prepare .Kubernetes {
290
- item := testcase .Prepare .Kubernetes [i ]
291
-
292
- if err = r .execer .RunCommand ("kubectl" , "apply" , "-f" , item ); err != nil {
293
- return
294
- }
295
- }
296
- return
297
- }
298
-
299
291
func (r * simpleTestCaseRunner ) doCleanPrepare (testcase * testing.TestCase ) (err error ) {
300
- count := len (testcase .Prepare . Kubernetes )
292
+ count := len (testcase .Before . Items )
301
293
for i := count - 1 ; i >= 0 ; i -- {
302
- item := testcase .Prepare . Kubernetes [i ]
294
+ item := testcase .Before . Items [i ]
303
295
304
296
if err = r .execer .RunCommand ("kubectl" , "delete" , "-f" , item ); err != nil {
305
297
return
@@ -413,3 +405,22 @@ func verifyResponseBodyData(caseName string, expect testing.Response, responseBo
413
405
}
414
406
return
415
407
}
408
+
409
+ func runJob (job testing.Job ) (err error ) {
410
+ var program * vm.Program
411
+ env := struct {}{}
412
+
413
+ for _ , item := range job .Items {
414
+ if program , err = expr .Compile (item , expr .Env (env ),
415
+ expr .Function ("sleep" , ExprFuncSleep )); err != nil {
416
+ fmt .Printf ("failed to compile: %s, %v\n " , item , err )
417
+ return
418
+ }
419
+
420
+ if _ , err = expr .Run (program , env ); err != nil {
421
+ fmt .Printf ("failed to Run: %s, %v\n " , item , err )
422
+ return
423
+ }
424
+ }
425
+ return
426
+ }
0 commit comments