当 Headless Chrome 完成执行 Karma 单元测试时,Docker 任务失败
Docker task fails when Headless Chrome finishes executing Karma unit tests
我的设置如下:
Angular 7,Docker,来自 Puppeteer 的 Karma、Jasmine、Headless Chrome。我有 2 个测试套件,每个测试套件大约有 100 个,运行 并行。在本地一切正常,但是当 Docker 中的 运行 时,整个构建过程在第一套测试完成时失败。
14-Jan-2019 11:46:02 [INFO] HeadlessChrome 72.0.3617 (Linux 0.0.0):成功执行 12 次,共 12 次(2.03 秒/1.828 秒)
是我看到的可用日志的最后一行,有时甚至会被删掉几个字母,具体取决于构建。
const config = {
basePath: '',
frameworks: ['parallel', 'jasmine', '@angular-devkit/build-angular'],
browserNoActivityTimeout: 50000,
browserDisconnectTolerance: 2,
plugins: [
require('karma-parallel'),
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
browsers: ['customChromeHeadless'],
port: 9241,
singleRun: true,
autoWatch: false,
parallelOptions: {
executors: 2,
shardStrategy: 'round-robin'
},
reporters: ['kjhtml'],
coverageIstanbulReporter: {
dir: join(__dirname, '../../coverage'),
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true
},
customLaunchers: {
customChromeHeadless: {
base: 'ChromeHeadless',
flags: [
'--no-sandbox',
'--disable-gpu',
'--remote-debugging-port=9222'
]
}
},
proxies: {}
};
为了回答我自己的问题,dumb-init 包是解决方案,运行 整个构建都是通过它进行的。
我的设置如下: Angular 7,Docker,来自 Puppeteer 的 Karma、Jasmine、Headless Chrome。我有 2 个测试套件,每个测试套件大约有 100 个,运行 并行。在本地一切正常,但是当 Docker 中的 运行 时,整个构建过程在第一套测试完成时失败。
14-Jan-2019 11:46:02 [INFO] HeadlessChrome 72.0.3617 (Linux 0.0.0):成功执行 12 次,共 12 次(2.03 秒/1.828 秒)
是我看到的可用日志的最后一行,有时甚至会被删掉几个字母,具体取决于构建。
const config = {
basePath: '',
frameworks: ['parallel', 'jasmine', '@angular-devkit/build-angular'],
browserNoActivityTimeout: 50000,
browserDisconnectTolerance: 2,
plugins: [
require('karma-parallel'),
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
browsers: ['customChromeHeadless'],
port: 9241,
singleRun: true,
autoWatch: false,
parallelOptions: {
executors: 2,
shardStrategy: 'round-robin'
},
reporters: ['kjhtml'],
coverageIstanbulReporter: {
dir: join(__dirname, '../../coverage'),
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true
},
customLaunchers: {
customChromeHeadless: {
base: 'ChromeHeadless',
flags: [
'--no-sandbox',
'--disable-gpu',
'--remote-debugging-port=9222'
]
}
},
proxies: {}
};
为了回答我自己的问题,dumb-init 包是解决方案,运行 整个构建都是通过它进行的。