如何在 Angular 6 单元测试中调试 HeadlessChrome 0.0.0 (Linux 0.0.0) ERROR { "isTrusted": true }?

How to debug HeadlessChrome 0.0.0 (Linux 0.0.0) ERROR { "isTrusted": true } in Angular 6 unit test?

当我 运行 我的测试套件时,我在一个与我一直在使用的完全不同的单元测试中遇到错误。我做错了什么?

HeadlessChrome 0.0.0 (Linux 0.0.0) ERROR
{
    "isTrusted": true
}

然后是一些构建步骤,在测试执行期间出现以下错误:

HeadlessChrome 0.0.0 (Linux 0.0.0) ERROR
  An error was thrown in afterAll
  [object ErrorEvent] thrown

如果我注释掉某些测试,比如在 class A 中,另一个测试在组件 B 中失败。如果我注释掉那些,另一个测试在组件 C 中失败。None 最近更新了这些测试,因此 none 应该会失败。

我在看到有人把这个问题归咎于node_modules文件夹。但是,我刚刚通过昨天重新安装 node_modules 文件夹来缓解与此类似的问题。这是常见的错误吗? 开发人员不可能一直删除并重新安装 node_modules 文件夹。我一定是做错了什么,但我一直在做的就是单元像往常一样测试。

如何调试和修复这个 Headless Chrome 错误,以便我可以返回单元测试?

以下是关于我的环境的一些统计数据:

相关依赖版本:

"@angular/cli": "6.0.8",
    "@angular/compiler-cli": "6.0.6",
    "@angular/language-service": "6.0.6",
    "@types/jasmine": "~2.5.53",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "^4.0.1",
    "jasmine-core": "~2.6.2",
    "jasmine-spec-reporter": "~4.1.0",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "ng-diff-match-patch": "^2.0.6",
    "protractor": "~5.1.2",
    "ts-node": "~3.2.0",
    "tslint": "~5.7.0",
    "typescript": "2.7.2",
    "@angular-devkit/build-angular": "~0.6.8"

相关Karma.conf设置:

reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['ChromeHeadless'],
    singleRun: false,
    customLaunchers: {
      ChromeHeadless: {
        base: 'Chrome',
        flags: [
          '--headless',
          // '--disable-gpu',
          '--no-sandbox',
          // Without a remote debugging port, Google Chrome exits immediately.
          '--remote-debugging-port=9222',
        ],
      }
    },
    browserDisconnectTolerance: 8,
    browserNoActivityTimeout: 60000,
    browserDisconnectTimeout: 20000,

我确实通过删除 node_modules 文件夹并重新安装它以及回滚两个提交的单元测试来解决这个问题。我仍然不确定是什么原因导致此问题或为什么卸载并重新安装 node_modules 文件夹有效。但它确实有效。

编辑: 我还注意到,当我进行两个具有相同描述的单元测试时,此错误再次出现。同样,我不确定这是否是唯一原因,但更改单元测试描述似乎也解决了这个问题。我希望该错误更具描述性。

进一步编辑:问题仍然经常发生,答案中列出的问题 none 存在。