|
|
# Configure e2e tests for gitlab runner
|
|
|
|
|
|
1. Create another Protractor config file `e2e-tests/protractor-ci.conf.js` that will be used by gitlab-runner. In this configuration we will use `puppeteer` instead of usual Chrome browser:
|
|
|
|
|
|
e2e-tests/protractor-ci.conf.js
|
|
|
```
|
|
|
process.env.CHROME_BIN = process.env.CHROME_BIN || require('puppeteer').executablePath();
|
|
|
|
|
|
exports.config = {
|
|
|
allScriptsTimeout: 11000,
|
|
|
specs: [
|
|
|
'*.js'
|
|
|
],
|
|
|
exclude: [
|
|
|
'*.conf.js'
|
|
|
],
|
|
|
capabilities: {
|
|
|
browserName: 'chrome',
|
|
|
chromeOptions: {
|
|
|
args: ['--headless', '--no-sandbox'],
|
|
|
binary: process.env.CHROME_BIN
|
|
|
}
|
|
|
},
|
|
|
baseUrl: 'http://localhost:8000/',
|
|
|
framework: 'jasmine',
|
|
|
jasmineNodeOpts: {
|
|
|
defaultTimeoutInterval: 30000
|
|
|
}
|
|
|
};
|
|
|
```
|
|
|
|
|
|
2. Add `test-ci` and `http-server-ci` commands to `package.json`. We need to run http server as a background process:
|
|
|
|
|
|
```
|
|
|
"scripts": {
|
|
|
"test": "karma start karma.conf.js",
|
|
|
"protractor": "protractor e2e-tests/protractor.conf.js",
|
|
|
"start": "http-server . -a localhost -p 8000 -c-1",
|
|
|
"test-ci": "karma start karma-ci.conf.js",
|
|
|
"protractor-ci": "protractor e2e-tests/protractor-ci.conf.js",
|
|
|
"http-server-ci": "http-server . -a localhost -p 8000 -c-1 &"
|
|
|
},
|
|
|
```
|
|
|
|
|
|
3. Push changes to the repository, then you can see a new pipeline:
|
|
|
|
|
|
![e2e-pipeline](uploads/e1eb47f2820bbd85ffe55119ec68a72b/e2e-pipeline.png)
|
|
|
|
|
|
![e2e-passed](uploads/af1ae08455654761d292704b967ff081/e2e-passed.png) |
|
|
\ No newline at end of file |