1
0
mirror of https://github.com/sstephenson/bats.git synced 2026-02-26 09:48:10 +01:00

Print test file path and line number after a failing test

This commit is contained in:
Sam Stephenson
2013-05-23 12:47:17 -05:00
parent 1be500e4ff
commit bc72b85871
3 changed files with 35 additions and 9 deletions

View File

@@ -1,5 +1,7 @@
#!/usr/bin/env bash
set -e
set -E
set -T
BATS_COUNT_ONLY=""
if [ "$1" = "-c" ]; then
@@ -32,13 +34,19 @@ load() {
}
run() {
local e
local e E T
[[ ! "$-" =~ e ]] || e=1
[[ ! "$-" =~ E ]] || E=1
[[ ! "$-" =~ T ]] || T=1
set +e
set +E
set +T
output="$("$@" 2>&1)"
status="$?"
IFS=$'\n' lines=($output)
[ -z "$e" ] || set -e
[ -z "$E" ] || set -E
[ -z "$T" ] || set -T
}
setup() {
@@ -51,7 +59,6 @@ teardown() {
bats_test_info() {
BATS_TEST_DESCRIPTION="$1"
BATS_LINE_NUMBER="$2"
}
bats_test_function() {
@@ -59,8 +66,19 @@ bats_test_function() {
BATS_TEST_NAMES["${#BATS_TEST_NAMES[@]}"]="$test_name"
}
bats_debug_trap() {
if [ "$BASH_SOURCE" != "$1" ]; then
BATS_LINE_NUMBER="$BATS_LINE_NUMBER_"
BATS_LINE_NUMBER_="$2"
fi
}
bats_error_trap() {
trap - debug
}
bats_teardown_trap() {
trap bats_exit_trap err exit
trap bats_exit_trap exit
teardown >>"$BATS_OUT" 2>&1
bats_exit_trap
}
@@ -71,7 +89,8 @@ bats_exit_trap() {
if [ -z "$BATS_TEST_COMPLETED" ]; then
echo "not ok $BATS_TEST_NUMBER $BATS_TEST_DESCRIPTION" >&3
sed -e "s/^/ /" < "$BATS_OUT" >&3
echo "# $BATS_TEST_FILENAME:$BATS_LINE_NUMBER" >&3
sed -e "s/^/# /" < "$BATS_OUT" >&3
status=1
else
echo "ok $BATS_TEST_NUMBER $BATS_TEST_DESCRIPTION" >&3
@@ -103,7 +122,10 @@ bats_perform_test() {
fi
BATS_TEST_COMPLETED=""
trap bats_teardown_trap err exit
BATS_ERROR_LINE=""
trap "bats_debug_trap \"\$BASH_SOURCE\" \$LINENO" debug
trap "bats_error_trap" err
trap "bats_teardown_trap" exit
{ setup
"$BATS_TEST_NAME"
} >>"$BATS_OUT" 2>&1