mirror of
https://github.com/wassname/talk.git
synced 2026-08-12 12:30:39 +08:00
Configurable timeout
This commit is contained in:
+4
-1
@@ -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
@@ -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
@@ -11,7 +11,7 @@ module.exports = {
|
||||
shutdown();
|
||||
done();
|
||||
},
|
||||
waitForConditionTimeout: 5000,
|
||||
waitForConditionTimeout: parseInt(process.env.WAIT_FOR_TIMEOUT) || 5000,
|
||||
testData: {
|
||||
admin: {
|
||||
email: 'admin@test.com',
|
||||
|
||||
Reference in New Issue
Block a user