mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-18 03:00:58 +08:00
feat(e2e): create basic e2e test runner
This is mostly PoC code that shows how this can be done. This will grow into the actual test runner.
This commit is contained in:
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"private": true,
|
||||||
"name": "ionic2",
|
"name": "@ionic/angular",
|
||||||
"version": "3.3.0",
|
"version": "4.0.0",
|
||||||
"description": "A powerful framework for building mobile and progressive web apps with JavaScript and Angular",
|
"description": "A powerful framework for building mobile and progressive web apps with TypeScript and Angular",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
"framework",
|
"framework",
|
135
packages/core/package-lock.json
generated
135
packages/core/package-lock.json
generated
@ -4,6 +4,15 @@
|
|||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@ionic/discover": {
|
||||||
|
"version": "0.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ionic/discover/-/discover-0.3.3.tgz",
|
||||||
|
"integrity": "sha512-xciPTCEMYHv6sT7e4NwrAGkVQ8prj1NK9xO2z7/MoB+/HhREDsYDreNjU0lZF6G4X/91HcNNPC439D2WkAGd1w==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"netmask": "1.0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@stencil/core": {
|
"@stencil/core": {
|
||||||
"version": "0.0.6",
|
"version": "0.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-0.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-0.0.6.tgz",
|
||||||
@ -22,11 +31,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@stencil/dev-server": {
|
"@stencil/dev-server": {
|
||||||
"version": "0.0.17",
|
"version": "0.0.18-0",
|
||||||
"resolved": "https://registry.npmjs.org/@stencil/dev-server/-/dev-server-0.0.17.tgz",
|
"resolved": "https://registry.npmjs.org/@stencil/dev-server/-/dev-server-0.0.18-0.tgz",
|
||||||
"integrity": "sha512-dVkD4ypNqw7f6GTk217z0v3E4tMA32t5+Ahu/6yBUcO2uMPsA/IUrYVTHaU5FFSyD0txrZ6hAj/1/4scmTUErQ==",
|
"integrity": "sha512-NO61g5gj3dd+103nDr7MIzK0r4GzE370+dZAflWIxUPQPUXlCLetWVZ1L/BlGlNzmjYFaMdiVRdie3NLx2ewjQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
|
"@ionic/discover": "0.3.3",
|
||||||
"chokidar": "1.7.0",
|
"chokidar": "1.7.0",
|
||||||
"ecstatic": "2.2.1",
|
"ecstatic": "2.2.1",
|
||||||
"opn": "5.1.0",
|
"opn": "5.1.0",
|
||||||
@ -1084,6 +1094,12 @@
|
|||||||
"event-emitter": "0.3.5"
|
"event-emitter": "0.3.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"es6-promise": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz",
|
||||||
|
"integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"es6-set": {
|
"es6-set": {
|
||||||
"version": "0.1.5",
|
"version": "0.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
|
||||||
@ -2879,9 +2895,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"http-parser-js": {
|
"http-parser-js": {
|
||||||
"version": "0.4.8",
|
"version": "0.4.9",
|
||||||
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.8.tgz",
|
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz",
|
||||||
"integrity": "sha512-jmHp99g6/fLx0pRNJqzsQgjsclCHAY7NhIeA3/U+bsGNvgbvUCQFQY9m5AYpqpAxY/2VcikfbKpjQozSTiz0jA==",
|
"integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"http-signature": {
|
"http-signature": {
|
||||||
@ -2907,6 +2923,12 @@
|
|||||||
"integrity": "sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==",
|
"integrity": "sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"immediate": {
|
||||||
|
"version": "3.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
||||||
|
"integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"imurmurhash": {
|
"imurmurhash": {
|
||||||
"version": "0.1.4",
|
"version": "0.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
||||||
@ -4471,6 +4493,47 @@
|
|||||||
"verror": "1.10.0"
|
"verror": "1.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"jszip": {
|
||||||
|
"version": "3.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.4.tgz",
|
||||||
|
"integrity": "sha512-z6w8iYIxZ/fcgul0j/OerkYnkomH8BZigvzbxVmr2h5HkZUrPtk2kjYtLkqR9wwQxEP6ecKNoKLsbhd18jfnGA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"core-js": "2.3.0",
|
||||||
|
"es6-promise": "3.0.2",
|
||||||
|
"lie": "3.1.1",
|
||||||
|
"pako": "1.0.6",
|
||||||
|
"readable-stream": "2.0.6"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"core-js": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz",
|
||||||
|
"integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"readable-stream": {
|
||||||
|
"version": "2.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
|
||||||
|
"integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"core-util-is": "1.0.2",
|
||||||
|
"inherits": "2.0.3",
|
||||||
|
"isarray": "1.0.0",
|
||||||
|
"process-nextick-args": "1.0.7",
|
||||||
|
"string_decoder": "0.10.31",
|
||||||
|
"util-deprecate": "1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"string_decoder": {
|
||||||
|
"version": "0.10.31",
|
||||||
|
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||||
|
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"kind-of": {
|
"kind-of": {
|
||||||
"version": "3.2.2",
|
"version": "3.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||||
@ -4518,6 +4581,15 @@
|
|||||||
"type-check": "0.3.2"
|
"type-check": "0.3.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"lie": {
|
||||||
|
"version": "3.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
|
||||||
|
"integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"immediate": "3.0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"livereload-js": {
|
"livereload-js": {
|
||||||
"version": "2.2.2",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz",
|
||||||
@ -4818,6 +4890,12 @@
|
|||||||
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
|
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"netmask": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz",
|
||||||
|
"integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node-gyp": {
|
"node-gyp": {
|
||||||
"version": "3.6.2",
|
"version": "3.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz",
|
||||||
@ -5096,6 +5174,12 @@
|
|||||||
"p-limit": "1.1.0"
|
"p-limit": "1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"pako": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
|
||||||
|
"integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"parse-glob": {
|
"parse-glob": {
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
|
||||||
@ -5737,6 +5821,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"selenium-webdriver": {
|
||||||
|
"version": "3.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz",
|
||||||
|
"integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"jszip": "3.1.4",
|
||||||
|
"rimraf": "2.6.2",
|
||||||
|
"tmp": "0.0.30",
|
||||||
|
"xml2js": "0.4.19"
|
||||||
|
}
|
||||||
|
},
|
||||||
"semver": {
|
"semver": {
|
||||||
"version": "5.4.1",
|
"version": "5.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
|
||||||
@ -6105,6 +6201,15 @@
|
|||||||
"qs": "6.5.1"
|
"qs": "6.5.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"tmp": {
|
||||||
|
"version": "0.0.30",
|
||||||
|
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz",
|
||||||
|
"integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"os-tmpdir": "1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tmpl": {
|
"tmpl": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
|
||||||
@ -6406,7 +6511,7 @@
|
|||||||
"integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
|
"integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"http-parser-js": "0.4.8",
|
"http-parser-js": "0.4.9",
|
||||||
"websocket-extensions": "0.1.2"
|
"websocket-extensions": "0.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -6545,6 +6650,22 @@
|
|||||||
"integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
|
"integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"xml2js": {
|
||||||
|
"version": "0.4.19",
|
||||||
|
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
|
||||||
|
"integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"sax": "1.2.4",
|
||||||
|
"xmlbuilder": "9.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xmlbuilder": {
|
||||||
|
"version": "9.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz",
|
||||||
|
"integrity": "sha1-UZy0ymhtAFqEINNJbz8MruzKWA8=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"xtend": {
|
"xtend": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||||
|
@ -11,18 +11,20 @@
|
|||||||
],
|
],
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@stencil/core": "^0.0.6",
|
"@stencil/core": "^0.0.6",
|
||||||
"@stencil/dev-server": "latest",
|
"@stencil/dev-server": "0.0.18-0",
|
||||||
"@stencil/utils": "latest",
|
"@stencil/utils": "latest",
|
||||||
"@types/jest": "^21.1.0",
|
"@types/jest": "^21.1.0",
|
||||||
"ionicons": "^4.0.0-6",
|
"ionicons": "^4.0.0-6",
|
||||||
"jest": "^21.1.0",
|
"jest": "^21.1.0",
|
||||||
"sass-lint": "^1.11.1",
|
"sass-lint": "^1.11.1",
|
||||||
|
"selenium-webdriver": "^3.6.0",
|
||||||
"tslint": "^5.7.0",
|
"tslint": "^5.7.0",
|
||||||
"tslint-ionic-rules": "0.0.11"
|
"tslint-ionic-rules": "0.0.11"
|
||||||
},
|
},
|
||||||
"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",
|
||||||
"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",
|
||||||
|
18
packages/core/scripts/e2e-test-runner.js
Normal file
18
packages/core/scripts/e2e-test-runner.js
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
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();
|
||||||
|
|
||||||
|
cmdArgs = [
|
||||||
|
'--config', path.join(__dirname, '../stencil.config.js'),
|
||||||
|
'--no-open'
|
||||||
|
];
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
const devServer = await server.run(cmdArgs);
|
||||||
|
await driver.navigate().to('http://localhost:3333/src/components/button/test/basic.html');
|
||||||
|
driver.close();
|
||||||
|
devServer.close();
|
||||||
|
})();
|
||||||
|
|
@ -0,0 +1,5 @@
|
|||||||
|
describe('buttons', () => {
|
||||||
|
it('loads', () => {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
Reference in New Issue
Block a user