当 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 包是解决方案,运行 整个构建都是通过它进行的。