Configurable timeout

This commit is contained in:
Chi Vinh Le
2017-12-19 14:41:51 +01:00
parent e78f17460f
commit 4116e206a3
3 changed files with 12 additions and 5 deletions
+4 -1
View File
@@ -6,6 +6,9 @@ CIRCLE_BRANCH=${CIRCLE_BRANCH:-master}
# Amount of retries before failure.
E2E_MAX_RETRIES=${E2E_MAX_RETRIES:-1}
# Timeout for WaitForConditions.
E2E_WAIT_FOR_TIMEOUT=${E2E_WAIT_FOR_TIMEOUT:-5000}
# Safari >= 8 has issues connecting to browserstack-local. Safari < 8 is too old.
# IE 64bit has issues with receiving keyboard input. Let's wait for them to fix it.
@@ -15,7 +18,7 @@ BROWSERS="chrome"
if [[ "${CIRCLE_BRANCH}" == "master" && -n "$BROWSERSTACK_KEY" ]]; then
echo Testing on browserstack
yarn e2e --reports-folder "$REPORTS_FOLDER" --bs-key "$BROWSERSTACK_KEY" --retries "$E2E_MAX_RETRIES" --browsers $BROWSERS
yarn e2e --reports-folder "$REPORTS_FOLDER" --bs-key "$BROWSERSTACK_KEY" --retries "$E2E_MAX_RETRIES" --timeout "$E2E_WAIT_FOR_TIMEOUT" --browsers $BROWSERS
else
# When browserstack is not available test locally using chrome headless.
echo Testing locally
+7 -3
View File
@@ -59,7 +59,7 @@ function seleniumInstall() {
});
}
function nightwatch(env, config, reportsFolder, browserstack) {
function nightwatch(env, config, reportsFolder, browserstack, timeout) {
return new Promise((resolve, reject) => {
try {
const nw = childProcess.spawn(
@@ -71,6 +71,7 @@ function nightwatch(env, config, reportsFolder, browserstack) {
'BROWSERSTACK_KEY': browserstack.key,
'BROWSERSTACK_USER': browserstack.user,
'REPORTS_FOLDER': `${reportsFolder}/${env}`,
'WAIT_FOR_TIMEOUT': timeout,
}),
stdio: 'inherit',
});
@@ -111,13 +112,13 @@ function printSection(txt) {
console.log('*****************************'.magenta);
}
async function runBrowserTests(browsers, config, retries = 1, reportsFolder, browserstack) {
async function runBrowserTests(browsers, config, retries = 1, reportsFolder, browserstack, timeout) {
const succeeded = {};
for (let browser of browsers) {
for (let t = 0; t < retries + 1; t++) {
try {
printSection(`e2e test for ${browser} #${t}`);
await nightwatch(browser, config, reportsFolder, browserstack);
await nightwatch(browser, config, reportsFolder, browserstack, timeout);
succeeded[browser] = t;
console.log(`\n==> Succeeded e2e for ${browser} #${t}\n`.green);
break;
@@ -143,6 +144,7 @@ async function start(program) {
const date = new Date().toISOString()
.replace(/[T.]/g, '-')
.replace(/:/g, '');
const timeout = program.timeout;
const reportsFolder = `${program.reportsFolder}/${date}`;
let exitCode = 0;
let config = 'nightwatch.conf.js';
@@ -175,6 +177,7 @@ async function start(program) {
retries,
reportsFolder,
browserstack,
timeout,
);
if (!succeeded) {
exitCode = 1;
@@ -202,6 +205,7 @@ program
.option('-r, --retries [number]', 'Number of retries before failing', '1')
.option('--headless', 'Start in headless mode for local e2e')
.option('--reports-folder [folder]', 'Reports folder', './test/e2e/reports')
.option('--timeout [number]', 'Timeout for WaitForConditions', '5000')
.parse(process.argv);
start(program);
+1 -1
View File
@@ -11,7 +11,7 @@ module.exports = {
shutdown();
done();
},
waitForConditionTimeout: 5000,
waitForConditionTimeout: parseInt(process.env.WAIT_FOR_TIMEOUT) || 5000,
testData: {
admin: {
email: 'admin@test.com',