Add option to acceptance test runner to set the Selenium server

By default "127.0.0.1:4444" is used, so nothing needs to be set when the
acceptance tests and the Selenium server share the same network (like
when called by "run.sh").

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
This commit is contained in:
Daniel Calviño Sánchez 2017-07-20 07:56:51 +02:00
parent 2fe8cad710
commit c37329005e
1 changed files with 40 additions and 1 deletions

View File

@ -64,6 +64,16 @@ if [ "$1" = "--nextcloud-server-domain" ]; then
shift 2 shift 2
fi fi
# "--selenium-server XXX" option can be provided to set the domain and port used
# by the acceptance tests to access the Selenium server.
DEFAULT_SELENIUM_SERVER="127.0.0.1:4444"
SELENIUM_SERVER="$DEFAULT_SELENIUM_SERVER"
if [ "$1" = "--selenium-server" ]; then
SELENIUM_SERVER=$2
shift 2
fi
# Safety parameter to prevent executing this script by mistake and messing with # Safety parameter to prevent executing this script by mistake and messing with
# the Git repository. # the Git repository.
if [ "$1" != "allow-git-repository-modifications" ]; then if [ "$1" != "allow-git-repository-modifications" ]; then
@ -107,6 +117,35 @@ if [ "$NEXTCLOUD_SERVER_DOMAIN" != "$DEFAULT_NEXTCLOUD_SERVER_DOMAIN" ]; then
sed --in-place "s/$ORIGINAL/$REPLACEMENT/" config/behat.yml sed --in-place "s/$ORIGINAL/$REPLACEMENT/" config/behat.yml
fi fi
if [ "$SELENIUM_SERVER" != "$DEFAULT_SELENIUM_SERVER" ]; then
# Set the Selenium server to be used by Mink; this extends the default
# configuration from "config/behat.yml".
export BEHAT_PARAMS='
{
"extensions": {
"Behat\\MinkExtension": {
"sessions": {
"default": {
"selenium2": {
"wd_host": "http://'"$SELENIUM_SERVER"'/wd/hub"
}
},
"John": {
"selenium2": {
"wd_host": "http://'"$SELENIUM_SERVER"'/wd/hub"
}
},
"Jane": {
"selenium2": {
"wd_host": "http://'"$SELENIUM_SERVER"'/wd/hub"
}
}
}
}
}
}'
fi
composer install composer install
cd ../../ cd ../../
@ -127,6 +166,6 @@ cd tests/acceptance
# Ensure that the Selenium server is ready before running the tests. # Ensure that the Selenium server is ready before running the tests.
echo "Waiting for Selenium" echo "Waiting for Selenium"
timeout 60s bash -c "while ! curl 127.0.0.1:4444 >/dev/null 2>&1; do sleep 1; done" timeout 60s bash -c "while ! curl $SELENIUM_SERVER >/dev/null 2>&1; do sleep 1; done"
vendor/bin/behat $SCENARIO_TO_RUN vendor/bin/behat $SCENARIO_TO_RUN