Skip to content

Commit 470605e

Browse files
committed
refactor(#491): runner::cleanup_on_exit
1 parent 5eac61c commit 470605e

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

src/runner.sh

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -295,21 +295,7 @@ function runner::run_test() {
295295

296296
local test_execution_result=$(
297297
# shellcheck disable=SC2064
298-
# shellcheck disable=SC2154
299-
trap "
300-
exit_code=\$?
301-
set +e
302-
teardown_status=0
303-
runner::run_tear_down \"$test_file\" || teardown_status=\$?
304-
runner::clear_mocks
305-
cleanup_testcase_temp_files
306-
if [[ \$teardown_status -ne 0 ]]; then
307-
state::set_test_exit_code \"\$teardown_status\"
308-
else
309-
state::set_test_exit_code \"\$exit_code\"
310-
fi
311-
state::export_subshell_context
312-
" EXIT
298+
trap "exit_code=\$?; runner::cleanup_on_exit \"$test_file\" \$exit_code" EXIT
313299
state::initialize_assertions_count
314300
if ! runner::run_set_up "$test_file"; then
315301
status=$?
@@ -480,6 +466,25 @@ function runner::run_test() {
480466
internal_log "Test passed" "$label"
481467
}
482468

469+
function runner::cleanup_on_exit() {
470+
local test_file="$1"
471+
local exit_code="$2"
472+
473+
set +e
474+
local teardown_status=0
475+
runner::run_tear_down "$test_file" || teardown_status=$?
476+
runner::clear_mocks
477+
cleanup_testcase_temp_files
478+
479+
if [[ $teardown_status -ne 0 ]]; then
480+
state::set_test_exit_code "$teardown_status"
481+
else
482+
state::set_test_exit_code "$exit_code"
483+
fi
484+
485+
state::export_subshell_context
486+
}
487+
483488
function runner::decode_subshell_output() {
484489
local test_execution_result="$1"
485490

0 commit comments

Comments
 (0)