mirror of
https://github.com/sstephenson/bats.git
synced 2024-12-27 06:59:45 +01:00
Test (and fix) that teardown runs once after each test
This commit is contained in:
parent
6e65ef449b
commit
43d1972b0e
|
@ -52,6 +52,12 @@ bats_test_function() {
|
||||||
BATS_TEST_NAMES["${#BATS_TEST_NAMES[@]}"]="$test_name"
|
BATS_TEST_NAMES["${#BATS_TEST_NAMES[@]}"]="$test_name"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bats_teardown_trap() {
|
||||||
|
trap bats_exit_trap err exit
|
||||||
|
teardown
|
||||||
|
bats_exit_trap
|
||||||
|
}
|
||||||
|
|
||||||
bats_exit_trap() {
|
bats_exit_trap() {
|
||||||
trap - err exit
|
trap - err exit
|
||||||
if [ -z "$BATS_TEST_COMPLETED" ]; then
|
if [ -z "$BATS_TEST_COMPLETED" ]; then
|
||||||
|
@ -84,7 +90,7 @@ bats_perform_test() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BATS_TEST_COMPLETED=""
|
BATS_TEST_COMPLETED=""
|
||||||
trap bats_exit_trap err exit
|
trap bats_teardown_trap err exit
|
||||||
setup
|
setup
|
||||||
"$BATS_TEST_NAME"
|
"$BATS_TEST_NAME"
|
||||||
BATS_TEST_COMPLETED=1
|
BATS_TEST_COMPLETED=1
|
||||||
|
|
|
@ -55,6 +55,15 @@ teardown() {
|
||||||
@test "setup is run once before each test" {
|
@test "setup is run once before each test" {
|
||||||
rm -f "$TMP/setup.log"
|
rm -f "$TMP/setup.log"
|
||||||
run bats "$FIXTURE_ROOT/setup.bats"
|
run bats "$FIXTURE_ROOT/setup.bats"
|
||||||
|
[ $status -eq 0 ]
|
||||||
run cat "$TMP/setup.log"
|
run cat "$TMP/setup.log"
|
||||||
[ ${#lines[@]} -eq 3 ]
|
[ ${#lines[@]} -eq 3 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "teardown is run once after each test, even if it fails" {
|
||||||
|
rm -f "$TMP/teardown.log"
|
||||||
|
run bats "$FIXTURE_ROOT/teardown.bats"
|
||||||
|
[ $status -eq 1 ]
|
||||||
|
run cat "$TMP/teardown.log"
|
||||||
|
[ ${#lines[@]} -eq 3 ]
|
||||||
|
}
|
||||||
|
|
10
test/fixtures/setup.bats
vendored
10
test/fixtures/setup.bats
vendored
|
@ -1,15 +1,17 @@
|
||||||
|
LOG="$TMP/setup.log"
|
||||||
|
|
||||||
setup() {
|
setup() {
|
||||||
echo "$BATS_TEST_NAME" >> "$TMP/setup.log"
|
echo "$BATS_TEST_NAME" >> "$LOG"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "one" {
|
@test "one" {
|
||||||
true
|
[ "$(tail -n 1 "$LOG")" = "test_one" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "two" {
|
@test "two" {
|
||||||
true
|
[ "$(tail -n 1 "$LOG")" = "test_two" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "three" {
|
@test "three" {
|
||||||
true
|
[ "$(tail -n 1 "$LOG")" = "test_three" ]
|
||||||
}
|
}
|
||||||
|
|
17
test/fixtures/teardown.bats
vendored
Normal file
17
test/fixtures/teardown.bats
vendored
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
LOG="$TMP/teardown.log"
|
||||||
|
|
||||||
|
teardown() {
|
||||||
|
echo "$BATS_TEST_NAME" >> "$LOG"
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "one" {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "two" {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "three" {
|
||||||
|
true
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user