mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-09 08:09:32 +08:00
feat(e2e-test): hookup the mocha test runner
This commit is contained in:
74
package-lock.json
generated
74
package-lock.json
generated
@ -612,6 +612,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"browser-stdout": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
|
||||
"integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
|
||||
"dev": true
|
||||
},
|
||||
"bser": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz",
|
||||
@ -832,6 +838,12 @@
|
||||
"integrity": "sha1-Uui5hPSHLZUv8b3IuYOX0nxxRM8=",
|
||||
"dev": true
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
|
||||
"integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
|
||||
"dev": true
|
||||
},
|
||||
"compare-func": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz",
|
||||
@ -1890,6 +1902,12 @@
|
||||
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
|
||||
"dev": true
|
||||
},
|
||||
"growl": {
|
||||
"version": "1.10.3",
|
||||
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
|
||||
"integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
|
||||
"dev": true
|
||||
},
|
||||
"growly": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
|
||||
@ -1980,6 +1998,12 @@
|
||||
"sntp": "1.0.9"
|
||||
}
|
||||
},
|
||||
"he": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
|
||||
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
|
||||
"dev": true
|
||||
},
|
||||
"hoek": {
|
||||
"version": "2.16.3",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
|
||||
@ -3589,6 +3613,56 @@
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
},
|
||||
"mocha": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-4.0.1.tgz",
|
||||
"integrity": "sha512-evDmhkoA+cBNiQQQdSKZa2b9+W2mpLoj50367lhy+Klnx9OV8XlCIhigUnn1gaTFLQCa0kdNhEGDr0hCXOQFDw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"browser-stdout": "1.3.0",
|
||||
"commander": "2.11.0",
|
||||
"debug": "3.1.0",
|
||||
"diff": "3.3.1",
|
||||
"escape-string-regexp": "1.0.5",
|
||||
"glob": "7.1.2",
|
||||
"growl": "1.10.3",
|
||||
"he": "1.1.1",
|
||||
"mkdirp": "0.5.1",
|
||||
"supports-color": "4.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"diff": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
|
||||
"integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
|
||||
"dev": true
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
|
||||
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
|
||||
"integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modify-values": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz",
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
"devDependencies": {
|
||||
"jest": "^20.0.4",
|
||||
"lerna": "^2.0.0-rc.5",
|
||||
"mocha": "^4.0.1",
|
||||
"np": "^2.16.0"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,18 +1,39 @@
|
||||
const glob = require('glob');
|
||||
const Mocha = require('mocha');
|
||||
const path = require('path');
|
||||
const server = require('@stencil/dev-server/dist'); // TODO: fix after stencil-dev-server PR #16 is merged
|
||||
|
||||
const webdriver = require('selenium-webdriver');
|
||||
const driver = new webdriver.Builder().forBrowser('chrome').build();
|
||||
const mocha = new Mocha();
|
||||
|
||||
cmdArgs = [
|
||||
'--config', path.join(__dirname, '../stencil.config.js'),
|
||||
'--no-open'
|
||||
];
|
||||
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'];
|
||||
|
||||
return server.run(cmdArgs);
|
||||
}
|
||||
|
||||
function getTestFiles() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const src = path.join(__dirname, '../src/**/*.e2e-spec.js');
|
||||
glob(src, (err, files) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve(files);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
(async () => {
|
||||
const devServer = await server.run(cmdArgs);
|
||||
await driver.navigate().to('http://localhost:3333/src/components/button/test/basic.html');
|
||||
driver.close();
|
||||
devServer.close();
|
||||
})();
|
||||
const devServer = await startDevServer();
|
||||
|
||||
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
|
||||
});
|
||||
devServer.close();
|
||||
});
|
||||
})();
|
||||
|
||||
12
packages/core/src/components/button/test/basic.e2e-spec.js
Normal file
12
packages/core/src/components/button/test/basic.e2e-spec.js
Normal file
@ -0,0 +1,12 @@
|
||||
const webdriver = require('selenium-webdriver');
|
||||
const driver = new webdriver.Builder().forBrowser('chrome').build();
|
||||
|
||||
describe('basic button', () => {
|
||||
after(() => {
|
||||
return driver.quit();
|
||||
});
|
||||
|
||||
it('navigates', () => {
|
||||
return driver.navigate().to('http://localhost:3333/src/components/button/test/basic.html');
|
||||
});
|
||||
});
|
||||
@ -1,5 +0,0 @@
|
||||
describe('buttons', () => {
|
||||
it('loads', () => {
|
||||
|
||||
});
|
||||
});
|
||||
12
packages/core/src/components/button/test/toolbar.e2e-spec.js
Normal file
12
packages/core/src/components/button/test/toolbar.e2e-spec.js
Normal file
@ -0,0 +1,12 @@
|
||||
const webdriver = require('selenium-webdriver');
|
||||
const driver = new webdriver.Builder().forBrowser('chrome').build();
|
||||
|
||||
describe('toolbar button', () => {
|
||||
after(() => {
|
||||
return driver.quit();
|
||||
});
|
||||
|
||||
it('navigates', () => {
|
||||
return driver.navigate().to('http://localhost:3333/src/components/button/test/toolbar.html');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user