mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-17 10:41:13 +08:00
refactor(e2e-test): move register into the runner
This commit is contained in:
@ -24,8 +24,8 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "stencil build",
|
"build": "stencil build",
|
||||||
"dev": "sd concurrent \"stencil build --dev --watch\" \"stencil-dev-server\"",
|
"dev": "sd concurrent \"stencil build --dev --watch\" \"stencil-dev-server\"",
|
||||||
"e2e": "node ./scripts/e2e-test-runner.js",
|
"e2e": "node ./scripts/e2e.js",
|
||||||
"snapshot": "node ./scripts/e2e-test-runner.js --snapshot",
|
"snapshot": "node ./scripts/e2e.js --snapshot",
|
||||||
"test": "jest --no-cache",
|
"test": "jest --no-cache",
|
||||||
"test.watch": "jest --watch --no-cache",
|
"test.watch": "jest --watch --no-cache",
|
||||||
"clean": "rm -rf dist",
|
"clean": "rm -rf dist",
|
||||||
|
@ -1,8 +1,15 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
const fs = require('fs');
|
||||||
const glob = require('glob');
|
const glob = require('glob');
|
||||||
const Mocha = require('mocha');
|
const Mocha = require('mocha');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
const webdriver = require('selenium-webdriver');
|
||||||
|
|
||||||
|
const Snapshot = require('./Snapshot');
|
||||||
|
|
||||||
|
let snapshot;
|
||||||
|
let takeScreenshots = false;
|
||||||
|
|
||||||
function startDevServer() {
|
function startDevServer() {
|
||||||
const server = require('@stencil/dev-server/dist'); // TODO: fix after stencil-dev-server PR #16 is merged
|
const server = require('@stencil/dev-server/dist'); // TODO: fix after stencil-dev-server PR #16 is merged
|
||||||
@ -27,12 +34,26 @@ function getTestFiles() {
|
|||||||
function processCommandLine() {
|
function processCommandLine() {
|
||||||
process.argv.forEach(arg => {
|
process.argv.forEach(arg => {
|
||||||
if (arg === '--snapshot') {
|
if (arg === '--snapshot') {
|
||||||
process.env.takeScreenshots = true;
|
takeScreenshots = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
(async () => {
|
function registerE2ETest(desc, tst) {
|
||||||
|
// NOTE: Do not use an arrow function here because: https://mochajs.org/#arrow-functions
|
||||||
|
it(desc, async function() {
|
||||||
|
const driver = new webdriver.Builder().forBrowser('chrome').build();
|
||||||
|
await tst(driver);
|
||||||
|
if (takeScreenshots) {
|
||||||
|
await snapshot.takeScreenshot(driver, {
|
||||||
|
name: this.test.fullTitle()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return driver.quit();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function run() {
|
||||||
const mocha = new Mocha({
|
const mocha = new Mocha({
|
||||||
timeout: 5000,
|
timeout: 5000,
|
||||||
slow: 2000
|
slow: 2000
|
||||||
@ -40,6 +61,15 @@ function processCommandLine() {
|
|||||||
|
|
||||||
processCommandLine();
|
processCommandLine();
|
||||||
|
|
||||||
|
snapshot = new Snapshot({
|
||||||
|
platformDefaults: {
|
||||||
|
params: {
|
||||||
|
height: 800,
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
const devServer = await startDevServer();
|
const devServer = await startDevServer();
|
||||||
|
|
||||||
const files = await getTestFiles();
|
const files = await getTestFiles();
|
||||||
@ -50,4 +80,9 @@ function processCommandLine() {
|
|||||||
});
|
});
|
||||||
devServer.close();
|
devServer.close();
|
||||||
});
|
});
|
||||||
})();
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
register: registerE2ETest,
|
||||||
|
run: run
|
||||||
|
};
|
||||||
|
3
packages/core/scripts/e2e.js
Normal file
3
packages/core/scripts/e2e.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
require('./e2e-test-runner').run();
|
@ -1,37 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
const fs = require('fs');
|
|
||||||
const webdriver = require('selenium-webdriver');
|
|
||||||
const Snapshot = require('./Snapshot');
|
|
||||||
|
|
||||||
let snapshotTool;
|
|
||||||
function getSnapshotTool() {
|
|
||||||
if (!snapshotTool) {
|
|
||||||
snapshotTool = new Snapshot({
|
|
||||||
platformDefaults: {
|
|
||||||
params: {
|
|
||||||
height: 800,
|
|
||||||
width: 400
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return snapshotTool;
|
|
||||||
}
|
|
||||||
|
|
||||||
function registerE2ETest(desc, tst) {
|
|
||||||
// NOTE: Do not use an arrow function here because: https://mochajs.org/#arrow-functions
|
|
||||||
it(desc, async function() {
|
|
||||||
const driver = new webdriver.Builder().forBrowser('chrome').build();
|
|
||||||
await tst(driver);
|
|
||||||
if (process.env.takeScreenshots) {
|
|
||||||
const snapshot = getSnapshotTool();
|
|
||||||
await snapshot.takeScreenshot(driver, {
|
|
||||||
name: this.test.fullTitle()
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return driver.quit();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = registerE2ETest;
|
|
@ -4,7 +4,7 @@ const webdriver = require('selenium-webdriver');
|
|||||||
const By = webdriver.By;
|
const By = webdriver.By;
|
||||||
const until = webdriver.until;
|
const until = webdriver.until;
|
||||||
|
|
||||||
const register = require('../../../../scripts/register-e2e-test');
|
const register = require('../../../../scripts/e2e-test-runner').register;
|
||||||
const E2ETestPage = require('../../../../scripts/E2ETestPage');
|
const E2ETestPage = require('../../../../scripts/E2ETestPage');
|
||||||
|
|
||||||
class ActionSheetE2ETestPage extends E2ETestPage {
|
class ActionSheetE2ETestPage extends E2ETestPage {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const register = require('../../../../scripts/register-e2e-test');
|
const register = require('../../../../scripts/e2e-test-runner').register;
|
||||||
const E2ETestPage = require('../../../../scripts/E2ETestPage');
|
const E2ETestPage = require('../../../../scripts/E2ETestPage');
|
||||||
|
|
||||||
describe('button: basic', () => {
|
describe('button: basic', () => {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const register = require('../../../../scripts/register-e2e-test');
|
const register = require('../../../../scripts/e2e-test-runner').register;
|
||||||
const E2ETestPage = require('../../../../scripts/E2ETestPage');
|
const E2ETestPage = require('../../../../scripts/E2ETestPage');
|
||||||
|
|
||||||
describe('button: toolbar', () => {
|
describe('button: toolbar', () => {
|
||||||
|
Reference in New Issue
Block a user