mirror of
https://github.com/TracksApp/tracks.git
synced 2025-09-22 05:50:47 +02:00
47 lines
1.3 KiB
Bash
Executable file
47 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# script/test: Run test suite for application. Optionally pass in a path to an
|
|
# individual test file to run a single test.
|
|
|
|
set -e
|
|
|
|
docker_compose="docker-compose --file docker-compose.yml"
|
|
|
|
function cleanup() {
|
|
$docker_compose down
|
|
}
|
|
|
|
function die() {
|
|
echo $@
|
|
exit 1
|
|
}
|
|
|
|
trap cleanup EXIT
|
|
|
|
script/poll-for-db
|
|
|
|
if [ "$RAILS_ENV" = "test" ] || [ "$RACK_ENV" = "test" ]; then
|
|
# if executed and the environment is already set to `test`, then we want a
|
|
# clean from scratch application. This almost always means a ci environment,
|
|
# since we set the environment to `test` directly in `script/cibuild`.
|
|
script/setup
|
|
else
|
|
# if the environment isn't set to `test`, set it to `test` and update the
|
|
# application to ensure all dependencies are met as well as any other things
|
|
# that need to be up to date, like db migrations. The environment not having
|
|
# already been set to `test` almost always means this is being called on its
|
|
# own from a `development` environment.
|
|
export RAILS_ENV="test" RACK_ENV="test"
|
|
|
|
script/update
|
|
fi
|
|
|
|
echo "==> Running tests…"
|
|
|
|
if [ -n "$1" ]; then
|
|
# pass arguments to test call. This is useful for calling a single test.
|
|
$docker_compose run web bin/rake test "$1"
|
|
else
|
|
$docker_compose run web bin/rake test
|
|
fi
|
|
|