首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调试业力服务器的错误?

如何调试业力服务器的错误?
EN

Stack Overflow用户
提问于 2019-02-21 14:56:27
回答 1查看 1.6K关注 0票数 3

我使用的是karmakarma-typescript (但这不是一个角度的项目,所以我不使用angular-cli)。

在所有的测试都通过之后,我的测试运行中大约有一半会生成一个错误,我很困惑如何继续。这是输出。

代码语言:javascript
复制
$ karma start karma.conf.js --single-run --jenkins
21 02 2019 09:43:38.104:INFO [compiler.karma-typescript]: Compiling project using Typescript 3.2.4
21 02 2019 09:43:53.795:INFO [compiler.karma-typescript]: Compiled 21 files in 15446 ms.
21 02 2019 09:43:57.633:INFO [bundler.karma-typescript]: Bundled imports for 21 file(s) in 3328 ms.
21 02 2019 09:43:59.695:INFO [karma-server]: Karma v4.0.0 server started at http://0.0.0.0:9876/
21 02 2019 09:43:59.720:INFO [launcher]: Launching browsers ChromeHeadless with concurrency unlimited
21 02 2019 09:43:59.757:INFO [launcher]: Starting browser ChromeHeadless
21 02 2019 09:44:01.220:INFO [HeadlessChrome 72.0.3626 (Windows 10.0.0)]: Connected on socket 16JL3Xy0xm-ri3aBAAAA with id 59122393
HeadlessChrome 72.0.3626 (Windows 10.0.0): Executed 0 of 110 SUCCESS (0 secs / 0 secs)
[1A[2KHeadlessChrome 72.0.3626 (Windows 10.0.0): Executed 1 of 110 SUCCESS (0 secs / 0.061 secs)
...
[1A[2KHeadlessChrome 72.0.3626 (Windows 10.0.0): Executed 110 of 110 SUCCESS (2.695 secs / 2.341 secs)
TOTAL: 110 SUCCESS
21 02 2019 09:44:05.251:ERROR [karma-server]: { Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:111:27) errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' }
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command

( --jenkins标志在我的karma.conf.js中主要用于确定是否使用ChromeHeadless而不是Chrome --参见下面的内容)。

我相当肯定这个错误不是来自我的代码。

相关一揽子计划:

代码语言:javascript
复制
    "@types/jasmine": "^3.3.8",
    "@types/jasminewd2": "^2.0.6",
    "awesome-typescript-loader": "^5.2.1",
    "jasmine": "^3.3.1",
    "jasmine-core": "^3.3.0",
    "karma": "^4.0.0",
    "karma-chrome-launcher": "^2.2.0",
    "karma-cli": "^2.0.0",
    "karma-jasmine": "^2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "karma-junit-reporter": "^1.2.0",
    "karma-typescript": "^4.0.0",
    "ts-loader": "^5.3.3",
    "typescript": "^3.2.4"

最后,这是我的karma.conf.js

代码语言:javascript
复制
module.exports = function(config) {
  const jenkins = config.jenkins;
  config.set({
    basePath: '',
    frameworks: ["jasmine", "karma-typescript"],
    plugins: [
      require('karma-jasmine'),
      require("karma-chrome-launcher"),
      require("karma-typescript"),
      jenkins ? require('karma-junit-reporter') : require('karma-jasmine-html-reporter')
    ],
    client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    files: [
      "src/**/*.ts"
    ],
    preprocessors: {
      "src/**/*.ts": "karma-typescript"
    },
    reporters: [
      'progress', (jenkins ? 'junit' : 'kjhtml'), 'karma-typescript'
    ],
    browsers: [jenkins ? 'ChromeHeadless' : 'Chrome'],
    karmaTypescriptConfig: {
      tsconfig: "./tsconfig.json",
      coverageOptions: {
        exclude: [/mock/, /\.spec\.ts$/, /testing-utils/]
      }
    },
    colors: !jenkins,
    logLevel: config.LOG_INFO,
    autoWatch: !jenkins,
    singleRun: jenkins,
    junitReporter: {
      outputDir: 'karma-results',
      outputFile: 'karma-results.xml'
    }
  });
};
EN

回答 1

Stack Overflow用户

发布于 2022-01-05 16:17:03

我很抱歉,我无法帮助调试错误,在一般情况下,从因果服务器。但是,如果有人遇到类似的错误信息,我可以根据我对此错误的经验提供一些额外的洞察力。

最近,我遇到了一个非常类似的错误(业力6.3.4和茉莉花3.9.0):

代码语言:javascript
复制
04 01 2022 17:37:02.327:ERROR [karma-server]: UncaughtException: Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
04 01 2022 17:37:02.328:ERROR [karma-server]: Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:209:20) {
  errno: -4077,
  code: 'ECONNRESET',
  syscall: 'read'
}

遗憾的是,错误消息并没有指向特定的单元测试。我确定我们的一些单元测试使用的是WEBSOCKETs的提供者:

代码语言:javascript
复制
{ provide: WEBSOCKET, useFactory: (): typeof WebSocket => WebSocket },

简单地将这些修改为使用模拟的提供程序而不是真正的WebSocket似乎解决了这个问题。与…有关的东西:

代码语言:javascript
复制
{ provide: WebSocketService, useClass: WebSocketServiceMock},

因为我们仍然有一些网络套接字使用真正的提供者,似乎不会造成这个问题。我们只需要确保在这些特定单元测试期间正确地关闭我们的网络套接字,而不是等待和让Karma处理我们的垃圾。

另外,在Karma存储库中有一个挂起的拉请求来隐藏此错误消息。但是,提交者似乎已经放弃了在评审中建议的更改,因此代码可能需要很长时间才能进入主服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54809981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档