mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-16 10:01:59 +08:00
refactor(e2e-test): wrap the test registration
This commit is contained in:
@ -1,9 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
const glob = require('glob');
|
||||
const Mocha = require('mocha');
|
||||
const path = require('path');
|
||||
|
||||
const mocha = new Mocha();
|
||||
|
||||
function startDevServer() {
|
||||
const server = require('@stencil/dev-server/dist'); // TODO: fix after stencil-dev-server PR #16 is merged
|
||||
const cmdArgs = ['--config', path.join(__dirname, '../stencil.config.js'), '--no-open'];
|
||||
@ -25,11 +25,16 @@ function getTestFiles() {
|
||||
}
|
||||
|
||||
(async () => {
|
||||
const mocha = new Mocha({
|
||||
timeout: 5000,
|
||||
slow: 2000
|
||||
});
|
||||
|
||||
const devServer = await startDevServer();
|
||||
// process.env.takeScreenshots = true;
|
||||
|
||||
const files = await getTestFiles();
|
||||
files.forEach(f => mocha.addFile(f));
|
||||
|
||||
mocha.run(function(failures) {
|
||||
process.on('exit', function() {
|
||||
process.exit(failures); // exit with non-zero status if there were failures
|
||||
|
35
packages/core/scripts/register-e2e-test.js
Normal file
35
packages/core/scripts/register-e2e-test.js
Normal file
@ -0,0 +1,35 @@
|
||||
'use strict';
|
||||
|
||||
const fs = require('fs');
|
||||
const webdriver = require('selenium-webdriver');
|
||||
|
||||
function takeScreenshot(driver, name) {
|
||||
return driver.takeScreenshot().then(function(data) {
|
||||
var base64Data = data.replace(/^data:image\/png;base64,/, '');
|
||||
fs.writeFile(`${name}.png`, base64Data, 'base64', function(err) {
|
||||
if (err) console.log(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function allowForAnnimation() {
|
||||
return new Promise((resolve, reject) => {
|
||||
setTimeout(function() {
|
||||
resolve();
|
||||
}, 300);
|
||||
});
|
||||
}
|
||||
|
||||
function registerE2ETest(desc, tst) {
|
||||
it(desc, async () => {
|
||||
const driver = new webdriver.Builder().forBrowser('chrome').build();
|
||||
await tst(driver);
|
||||
if (process.env.takeScreenshots) {
|
||||
await allowForAnnimation();
|
||||
takeScreenshot(driver, desc);
|
||||
}
|
||||
return driver.quit();
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = registerE2ETest;
|
Reference in New Issue
Block a user