【问题标题】:Why NPM run test command fails with npm ERR! code ELIFECYCLE Error?为什么 NPM 运行测试命令因 npm ERR 而失败!代码生命周期错误?
【发布时间】:2020-09-23 07:38:29
【问题描述】:

我的 Angular CI 构建在 NPM 测试任务中失败,我正在 CI 中运行 npm run Test:sonar 命令。

test:sonar 在顶部的 package.json 文件中定义,详细信息如下,

"test:sonar": "node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng test --watch=false --code-coverage --karma-config=src/karma. conf.sonar.js",

目前,我在使用 CI 时遇到以下错误,并且如果为 npm run test:sonar 手动执行,

2020-06-04T10:12:40.5784545Z Browserslist: caniuse-lite is outdated. Please run next command `npm update`
2020-06-04T10:12:41.7505089Z [32m04 06 2020 06:12:41.749:INFO [framework:karma-parallel]: [39msharding specs across 3 browsers
2020-06-04T10:13:03.9245412Z [32m04 06 2020 06:13:03.921:INFO [karma-server]: [39mKarma v4.1.0 server started at http://0.0.0.0:9876/
2020-06-04T10:13:03.9245412Z [32m04 06 2020 06:13:03.921:INFO [launcher]: [39mLaunching browsers Chrome, Chrome, Chrome with concurrency unlimited
2020-06-04T10:13:03.9245412Z [32m04 06 2020 06:13:03.921:INFO [launcher]: [39mStarting browser Chrome
2020-06-04T10:13:04.0026773Z [32m04 06 2020 06:13:03.999:INFO [launcher]: [39mStarting browser Chrome
2020-06-04T10:13:04.0339834Z [32m04 06 2020 06:13:04.030:INFO [launcher]: [39mStarting browser Chrome
2020-06-04T10:13:55.9279235Z [32m04 06 2020 06:13:55.925:INFO [Chrome 83.0.4103 (Windows 10.0.0)]: [39mConnected on socket gpO5ue6BN2Mpg7E1AAAB with id 40174053
2020-06-04T10:13:55.9369226Z [32m04 06 2020 06:13:55.929:INFO [Chrome 83.0.4103 (Windows 10.0.0)]: [39mConnected on socket detlQaSArnTujK4UAAAA with id 82416436
2020-06-04T10:13:55.9369226Z [32m04 06 2020 06:13:55.931:INFO [Chrome 83.0.4103 (Windows 10.0.0)]: [39mConnected on socket mhjlHwvj60_SZr0tAAAC with id 99954543
2020-06-04T10:15:08.0931637Z [33m04 06 2020 06:15:08.091:WARN [launcher]: [39mChrome was not killed in 2000 ms, sending SIGKILL.
2020-06-04T10:15:08.4838243Z npm ERR! code ELIFECYCLE
2020-06-04T10:15:08.4838243Z npm ERR! errno 1
2020-06-04T10:15:08.4838243Z npm ERR! nextgen@0.0.1 test:sonar: `node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng test --watch=false --code-coverage --karma-config=src/karma.conf.sonar.js`
2020-06-04T10:15:08.4994524Z npm ERR! Exit status 1
2020-06-04T10:15:08.4994524Z npm ERR! 
2020-06-04T10:15:08.4994524Z npm ERR! Failed at the nextgen@0.0.1 test:sonar script.
2020-06-04T10:15:08.4994524Z npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2020-06-04T10:15:08.4994524Z 
2020-06-04T10:15:08.4994524Z npm ERR! A complete log of this run can be found in:
2020-06-04T10:15:08.4994524Z npm ERR!     C:\Users\svc_TFSservice\AppData\Roaming\npm-cache\_logs\2020-06-04T10_15_08_499Z-debug.log

还添加了 CMD 提示的屏幕截图,不确定是由于 chrome 超时还是其他导致此错误的原因。几个月以来我一直在使用它,直到今天它都运行良好。 对此的任何建议或帮助都会很棒。

与此同时,我还将寻找导致此错误的任何其他解决方案\原因。

【问题讨论】:

    标签: node.js angular npm angular-cli angular-test


    【解决方案1】:

    我能够通过在 karma.conf.sonar.js 文件中将执行程序的值从 3 更新为 4 来解决此问题。因为它必须执行超过 1700 多个测试用例,我认为 3 个 chrome 无法执行它们,因此将其更新为 4 个停止抛出错误。

    目前 npm test 在 CI 构建和 CMD 提示符下都可以正常工作。

    【讨论】:

      【解决方案2】:

      这个错误往往很令人困惑,但您对 Chrome 位的看法是正确的。实际错误是测试脚本被测试运行者杀死,正如最终警告消息所指出的那样:

      2020-06-04T10:15:08.0931637Z [33m04 06 2020 06:15:08.091:WARN [launcher]: [39mChrome was not killed in 2000 ms, sending SIGKILL.
      

      您可能正在通过npm run <> 命令调用测试,这就是错误消息中提到的“生命周期”脚本。 scripts 可以用作npm 提供的更大挂钩集的一部分,以挂钩到包构建/安装生命周期。这是一条一般性的错误消息,让您感到厌烦。

      【讨论】:

      • 问题已解决,我不再收到该错误。
      猜你喜欢
      • 2018-09-03
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      • 2021-06-26
      • 2020-12-23
      • 2017-12-27
      • 1970-01-01
      • 2019-09-13
      相关资源
      最近更新 更多