【问题标题】:How to debug HeadlessChrome 0.0.0 (Linux 0.0.0) ERROR { "isTrusted": true } in Angular 6 unit test?如何在 Angular 6 单元测试中调试 HeadlessChrome 0.0.0 (Linux 0.0.0) ERROR { "isTrusted": true }?
【发布时间】:2019-01-22 14:43:17
【问题描述】:

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

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

如果我注释掉某些测试,比如在 A 类中,另一个测试在组件 B 中失败。如果我注释掉这些,另一个测试在组件 C 中失败。这些测试最近都没有更新,所以它们都没有应该失败了。

我在this question 看到有人将此问题归咎于 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,

【问题讨论】:

    标签: angular unit-testing jasmine karma-jasmine karma-runner


    【解决方案1】:

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

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

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

    【讨论】:

    • 对此有任何更新,或者您是否能够解决?
    • 我不是。我相信当源映射标志设置为 true 时它会发生更多:--source-map=true。然而,除此之外,我没有线索。您可以尝试在--source-map=true--source-map=false 之间切换以检查并查看是否存在源映射标志由于某种原因而隐藏的任何隐藏错误,或者错误是否在其中一种情况下消失。如果您发现更多信息,请在此处发布,以便我也可以了解有关此问题的更多信息。
    • 嗯,我根本没有那个标志。如果我们解决了什么问题,我会告诉你的。
    猜你喜欢
    • 2019-04-25
    • 2019-03-24
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    相关资源
    最近更新 更多