https://github.com/avatsaev/angular-chrome-headless-docker
Docker image with embedded Node 8 and Chrome Headless preconfigured for Angular unit/e2e tests in CI/CD environments
https://github.com/avatsaev/angular-chrome-headless-docker
angular ci docker gitlab karma protractor
Last synced: about 2 months ago
JSON representation
Docker image with embedded Node 8 and Chrome Headless preconfigured for Angular unit/e2e tests in CI/CD environments
- Host: GitHub
- URL: https://github.com/avatsaev/angular-chrome-headless-docker
- Owner: avatsaev
- License: mit
- Created: 2018-03-01T13:20:47.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-09-12T09:12:26.000Z (over 6 years ago)
- Last Synced: 2025-03-27T12:38:28.561Z (2 months ago)
- Topics: angular, ci, docker, gitlab, karma, protractor
- Language: Dockerfile
- Homepage:
- Size: 7.81 KB
- Stars: 29
- Watchers: 5
- Forks: 19
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Angular Chrome Headless Docker
Docker image with embedded Node 9 and Chrome Headless preconfigured for Angular unit/e2e tests on your CI/CD servers### Get the image:
`docker pull avatsaev/angular-chrome-headless`
#### Launch scripts:
- unit tests: `ng test --watch=false --browsers=ChromeHeadless`
- e2e tests: `ng e2e`
### Karma Config:
```javascript
// Karma configuration file, see link for more information
// https://karma-runner.github.io/0.13/config/configuration-file.htmlmodule.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular/cli'],
browserNoActivityTimeout: 50000,
browserDisconnectTolerance: 2,
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular/cli/plugins/karma')
],
client:{
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
reports: [ 'html', 'lcovonly' ],
fixWebpackSourcePaths: true
},
angularCli: {
environment: 'dev'
},
reporters: config.angularCli && config.angularCli.codeCoverage
? ['progress', 'coverage-istanbul']
: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['ChromeHeadless', 'Chrome'],
customLaunchers: {
ChromeHeadless: {
base: 'Chrome',
flags: [
'--headless',
'--disable-gpu',
'--no-sandbox',
'--remote-debugging-port=9222'
]
}
},
singleRun: false
});
};```
#### Protractor Config:
```javascript
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.tsconst { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'args': ['--no-sandbox', '--headless', '--window-size=1024,768']
}
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
onPrepare() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};
```