1
0
mirror of https://github.com/sstephenson/bats.git synced 2024-11-17 11:42:33 +01:00

Add bad command line option errors

This commit is contained in:
Quentin Neill 2017-11-27 12:15:36 -06:00
parent 03608115df
commit dc0c645723
3 changed files with 15 additions and 5 deletions

View File

@ -6,7 +6,9 @@ version() {
} }
usage() { usage() {
local errmsg="$1"
version version
[ -n "$errmsg" ] && echo "Error: $errmsg"
echo "Usage: bats [-c] [-p | -t] <test> [<test> ...]" echo "Usage: bats [-c] [-p | -t] <test> [<test> ...]"
} }
@ -100,14 +102,14 @@ for option in "${options[@]}"; do
pretty="1" pretty="1"
;; ;;
* ) * )
usage >&2 usage "Bad command line option '-$option'" >&2
exit 1 exit 1
;; ;;
esac esac
done done
if [ "${#arguments[@]}" -eq 0 ]; then if [ "${#arguments[@]}" -eq 0 ]; then
usage >&2 usage "Must specify at least one <test>" >&2
exit 1 exit 1
fi fi

View File

@ -17,7 +17,7 @@ fi
BATS_TEST_FILENAME="$1" BATS_TEST_FILENAME="$1"
if [ -z "$BATS_TEST_FILENAME" ]; then if [ -z "$BATS_TEST_FILENAME" ]; then
echo "usage: bats-exec <filename>" >&2 echo "usage: bats-exec-test <filename>" >&2
exit 1 exit 1
elif [ ! -f "$BATS_TEST_FILENAME" ]; then elif [ ! -f "$BATS_TEST_FILENAME" ]; then
echo "bats: $BATS_TEST_FILENAME does not exist" >&2 echo "bats: $BATS_TEST_FILENAME does not exist" >&2

View File

@ -3,10 +3,18 @@
load test_helper load test_helper
fixtures bats fixtures bats
@test "no arguments prints usage instructions" { @test "no arguments prints message and usage instructions" {
run bats run bats
[ $status -eq 1 ] [ $status -eq 1 ]
[ $(expr "${lines[1]}" : "Usage:") -ne 0 ] [ $(expr "${lines[1]}" : "Error: Must specify at least one") -ne 0 ]
[ $(expr "${lines[2]}" : "Usage:") -ne 0 ]
}
@test "invalid option prints message and usage instructions" {
run bats --invalid-option
[ $status -eq 1 ]
[ $(expr "${lines[1]}" : "Error: Bad command line option") -ne 0 ]
[ $(expr "${lines[2]}" : "Usage:") -ne 0 ]
} }
@test "-v and --version print version number" { @test "-v and --version print version number" {