mirror of
https://github.com/wassname/talk.git
synced 2026-09-11 12:51:33 +08:00
Retry browsers when failed, print summary
This commit is contained in:
+50
-10
@@ -3,22 +3,53 @@
|
||||
CIRCLE_TEST_REPORTS=${CIRCLE_TEST_REPORTS:-./test/e2e/reports}
|
||||
CIRCLE_BRANCH=${CIRCLE_BRANCH:-master}
|
||||
|
||||
MAX_RETRIES=1
|
||||
|
||||
# Safari >= 8 has issues connecting to browserstack-local. Safari < 8 is too old.
|
||||
BROWSERS="chrome firefox ie edge" #safari
|
||||
|
||||
if [[ "${CIRCLE_BRANCH}" == "master" ]]; then
|
||||
|
||||
# List of failed browsers
|
||||
failedBrowsers=
|
||||
|
||||
# List of succeeded browsers
|
||||
succeededBrowsers=
|
||||
|
||||
exitCode=0
|
||||
|
||||
browserstack() {
|
||||
echo "-- Start e2e for $1 --"
|
||||
REPORTS_FOLDER="$CIRCLE_TEST_REPORTS/$1" yarn e2e-browserstack -- --env "$1"
|
||||
|
||||
# Current number of tries.
|
||||
try=${2:-0}
|
||||
|
||||
echo "-- Start e2e for $1 #$try --"
|
||||
|
||||
REPORTS_FOLDER="$CIRCLE_TEST_REPORTS/$1" yarn e2e-browserstack --env "$1"
|
||||
|
||||
# Determine exit code.
|
||||
result=$?
|
||||
if [ "$result" -gt "0" ]
|
||||
then
|
||||
if [ "$result" -gt "0" ]; then
|
||||
echo "-- Failed e2e for $1 --"
|
||||
|
||||
# Try again of MAX_RETRIES is not reached.
|
||||
if [ "$try" -lt $MAX_RETRIES ]; then
|
||||
let try=try+1
|
||||
browserstack "$1" "$try"
|
||||
return
|
||||
fi
|
||||
|
||||
# Failed, add to list of failed browsers.
|
||||
failedBrowsers="$failedBrowsers $1"
|
||||
|
||||
# Remember exit code.
|
||||
exitCode=$result
|
||||
else
|
||||
echo "-- Success e2e for $1 --"
|
||||
|
||||
# Succeeded, add to list of succeeded browsers.
|
||||
succeededBrowsers="$succeededBrowsers $1"
|
||||
eval "browser_${1}_succeeded_at=$try"
|
||||
fi
|
||||
|
||||
# Sleep a bit to let browserstack-local to close properly.
|
||||
@@ -26,14 +57,23 @@ if [[ "${CIRCLE_BRANCH}" == "master" ]]; then
|
||||
}
|
||||
|
||||
# Test using browserstack.
|
||||
browserstack chrome
|
||||
browserstack firefox
|
||||
browserstack ie
|
||||
browserstack edge
|
||||
for browser in $BROWSERS
|
||||
do
|
||||
browserstack "$browser"
|
||||
done
|
||||
|
||||
# Safari >= 8 has issues connecting to browserstack-local. Safari < 8 is too old.
|
||||
# browserstack safari
|
||||
|
||||
# Print information about succeeded browsers.
|
||||
for x in $succeededBrowsers
|
||||
do
|
||||
echo "Succeeded $x at try #$(eval "echo \$browser_${x}_succeeded_at")"
|
||||
done
|
||||
|
||||
# Print information about failed browsers.
|
||||
for x in $failedBrowsers
|
||||
do
|
||||
echo "Failed $x"
|
||||
done
|
||||
exit $exitCode
|
||||
else
|
||||
# When browserstack is not available test locally using chrome headless.
|
||||
|
||||
Reference in New Issue
Block a user