2019-01-27 12:54:04 +03:00
|
|
|
#!/usr/bin/env sh
|
|
|
|
export APP_ENV=test
|
2021-02-04 23:27:16 +03:00
|
|
|
export DB_DRIVER=postgres
|
2020-09-26 11:43:50 +03:00
|
|
|
export TEST_ENV=api
|
2022-08-27 10:09:14 +03:00
|
|
|
export TEST_RUNTIME=${TEST_RUNTIME:-"openswoole"}
|
2021-12-11 12:25:58 +03:00
|
|
|
export GENERATE_COVERAGE=${GENERATE_COVERAGE:-"no"}
|
2019-01-27 12:54:04 +03:00
|
|
|
|
2022-01-06 00:14:09 +03:00
|
|
|
# Reset logs
|
2022-08-27 10:09:14 +03:00
|
|
|
OUTPUT_LOGS=data/log/api-tests/output.log
|
2021-02-13 13:40:19 +03:00
|
|
|
rm -rf data/log/api-tests
|
2022-01-06 00:14:09 +03:00
|
|
|
mkdir data/log/api-tests
|
2022-08-27 10:09:14 +03:00
|
|
|
touch $OUTPUT_LOGS
|
2021-02-13 13:40:19 +03:00
|
|
|
|
2019-01-27 12:54:04 +03:00
|
|
|
# Try to stop server just in case it hanged in last execution
|
2022-08-27 10:09:14 +03:00
|
|
|
[[ $TEST_RUNTIME == 'openswoole' ]] && vendor/bin/laminas mezzio:swoole:stop
|
|
|
|
[[ $TEST_RUNTIME == 'rr' ]] && bin/rr stop -f
|
2019-01-27 12:54:04 +03:00
|
|
|
|
|
|
|
echo 'Starting server...'
|
2022-08-27 10:09:14 +03:00
|
|
|
[[ $TEST_RUNTIME == 'openswoole' ]] && vendor/bin/laminas mezzio:swoole:start -d
|
|
|
|
[[ $TEST_RUNTIME == 'rr' ]] && bin/rr serve -p -c=config/roadrunner/.rr.dev.yml \
|
|
|
|
-o=http.address=0.0.0.0:9999 \
|
|
|
|
-o=logs.encoding=json \
|
|
|
|
-o=logs.channels.http.encoding=json \
|
|
|
|
-o=logs.channels.server.encoding=json \
|
|
|
|
-o=logs.output="${PWD}/${OUTPUT_LOGS}" \
|
|
|
|
-o=logs.channels.http.output="${PWD}/${OUTPUT_LOGS}" \
|
|
|
|
-o=logs.channels.server.output="${PWD}/${OUTPUT_LOGS}" &
|
|
|
|
sleep 2 # Let's give the server a couple of seconds to start
|
2019-01-27 12:54:04 +03:00
|
|
|
|
2020-09-26 11:43:50 +03:00
|
|
|
vendor/bin/phpunit --order-by=random -c phpunit-api.xml --testdox --colors=always --log-junit=build/coverage-api/junit.xml $*
|
2019-11-09 13:25:33 +03:00
|
|
|
testsExitCode=$?
|
|
|
|
|
2022-08-27 10:09:14 +03:00
|
|
|
[[ $TEST_RUNTIME == 'openswoole' ]] && vendor/bin/laminas mezzio:swoole:stop
|
|
|
|
[[ $TEST_RUNTIME == 'rr' ]] && bin/rr stop -c config/roadrunner/.rr.dev.yml -o=http.address=0.0.0.0:9999
|
2019-11-09 13:25:33 +03:00
|
|
|
|
|
|
|
# Exit this script with the same code as the tests. If tests failed, this script has to fail
|
2019-11-09 14:08:22 +03:00
|
|
|
exit $testsExitCode
|