Create e2e tests runner authored by Taras Gaidukov's avatar Taras Gaidukov
# 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