mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-16 10:01:59 +08:00
refactor(e2e-test): move register into the runner
This commit is contained in:
@ -1,8 +1,15 @@
|
||||
'use strict';
|
||||
|
||||
const fs = require('fs');
|
||||
const glob = require('glob');
|
||||
const Mocha = require('mocha');
|
||||
const path = require('path');
|
||||
const webdriver = require('selenium-webdriver');
|
||||
|
||||
const Snapshot = require('./Snapshot');
|
||||
|
||||
let snapshot;
|
||||
let takeScreenshots = false;
|
||||
|
||||
function startDevServer() {
|
||||
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() {
|
||||
process.argv.forEach(arg => {
|
||||
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({
|
||||
timeout: 5000,
|
||||
slow: 2000
|
||||
@ -40,6 +61,15 @@ function processCommandLine() {
|
||||
|
||||
processCommandLine();
|
||||
|
||||
snapshot = new Snapshot({
|
||||
platformDefaults: {
|
||||
params: {
|
||||
height: 800,
|
||||
width: 400
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const devServer = await startDevServer();
|
||||
|
||||
const files = await getTestFiles();
|
||||
@ -50,4 +80,9 @@ function processCommandLine() {
|
||||
});
|
||||
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;
|
Reference in New Issue
Block a user