Fix variable not replaced in "behat.yml" when default value was used

As "selenium.server" is a simulated variable it is not recognized by
Mink, so it must be always replaced by its value in "behat.yml" before
the file is parsed by Behat.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
This commit is contained in:
Daniel Calviño Sánchez 2018-06-28 17:21:12 +02:00
parent a077c129c8
commit ea6b5063b5
1 changed files with 13 additions and 15 deletions

View File

@ -171,21 +171,19 @@ REPLACEMENT="profile: $ACCEPTANCE_TESTS_CONFIG_DIR"
FILE_CONTENTS=$(<$ACCEPTANCE_TESTS_CONFIG_DIR/behat.yml) FILE_CONTENTS=$(<$ACCEPTANCE_TESTS_CONFIG_DIR/behat.yml)
echo "${FILE_CONTENTS//$ORIGINAL/$REPLACEMENT}" > $ACCEPTANCE_TESTS_CONFIG_DIR/behat.yml echo "${FILE_CONTENTS//$ORIGINAL/$REPLACEMENT}" > $ACCEPTANCE_TESTS_CONFIG_DIR/behat.yml
if [ "$SELENIUM_SERVER" != "$DEFAULT_SELENIUM_SERVER" ]; then # Set the Selenium server to be used by Mink. Although Mink sessions can be
# Set the Selenium server to be used by Mink. Although Mink sessions can be # extended through BEHAT_PARAMS this would require adding here too each new
# extended through BEHAT_PARAMS this would require adding here too each new # session added to "behat.yml", including those added in the acceptance
# session added to "behat.yml", including those added in the acceptance # tests of apps. Instead, the default "behat.yml" configuration file is
# tests of apps. Instead, the default "behat.yml" configuration file is # adjusted to replace the simulated "selenium.server" variable by its value
# adjusted to replace the simulated "selenium.server" variable by its value # before the configuration file is parsed by Behat.
# before the configuration file is parsed by Behat. ORIGINAL="wd_host: %selenium.server%"
ORIGINAL="wd_host: %selenium.server%" REPLACEMENT="wd_host: http://$SELENIUM_SERVER/wd/hub"
REPLACEMENT="wd_host: http://$SELENIUM_SERVER/wd/hub" # As the substitution does not involve regular expressions or multilines it
# As the substitution does not involve regular expressions or multilines it # can be done just with Bash. Moreover, this does not require escaping the
# can be done just with Bash. Moreover, this does not require escaping the # regular expression characters that may appear in the URL, like "/".
# regular expression characters that may appear in the URL, like "/". FILE_CONTENTS=$(<$ACCEPTANCE_TESTS_CONFIG_DIR/behat.yml)
FILE_CONTENTS=$(<$ACCEPTANCE_TESTS_CONFIG_DIR/behat.yml) echo "${FILE_CONTENTS//$ORIGINAL/$REPLACEMENT}" > $ACCEPTANCE_TESTS_CONFIG_DIR/behat.yml
echo "${FILE_CONTENTS//$ORIGINAL/$REPLACEMENT}" > $ACCEPTANCE_TESTS_CONFIG_DIR/behat.yml
fi
composer install composer install