Karma 超时前断开重连失败噩梦

问题描述 投票:0回答:2

我的 Angular 应用程序有超过 5000 个测试用例。

在升级到 Angular 13 和 Karma 6.3、Jasmin 3.6 之前一直运行正常

升级后,我在运行“ng test”时收到此错误。

在 960000ms 超时(传输关闭)之前断开连接重新连接失败

这就是我的业力配置之后的样子

const process = require("process");
process.env.CHROME_BIN = require("puppeteer").executablePath();

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma'),
      require('karma-junit-reporter')
    ],
    client: {
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, '../coverage'),
      reports: ['html', 'lcovonly','text-summary', 'cobertura'],
      fixWebpackSourcePaths: true,
    },
    reporters: ['progress', 'kjhtml','coverage-istanbul'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    // autoWatch: true,
    // browsers: ['ChromeHeadless'],
    autoWatch: false,
    browsers: ['ChromeHeadlessNoSandbox'],
    singleRun: true,
    customLaunchers: {
      ChromeHeadlessNoSandbox: {
        base: 'ChromeHeadless',
        flags: [
          '--no-sandbox',
          '--disable-gpu',
          '--js-flags=--max-old-space-size=80196',
          '--disable-web-security'
        ],
      },
    },
    browserNoActivityTimeout: 960000,
        browserDisconnectTimeout: 960000,
    proxies: {
      '/assets/': '/base/src/assets/',
    },
  });

};

以及 package.json 的一部分

"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "^6.3.13",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "^2.0.6",
"karma-jasmine": "~4.0.0",

我尝试了几乎所有的github和stackoverflow以及其他建议,与许多专家交谈过,但没有成功。

angular-cli karma-jasmine karma-runner
2个回答
4
投票

经过更多阅读后,这就是我解决问题的方法。

我确保所有测试包的版本都正确更新并且彼此兼容。

这就是现在的样子,

"jasmine-core": "4.0.1",
"jasmine-spec-reporter": "7.0.0",
"karma": "6.3.17",
"karma-chrome-launcher": "3.1.1",
"karma-coverage-istanbul-reporter": "3.0.3",
"karma-jasmine": "4.0.2"

此后,我能够运行所有测试用例。


0
投票

您还可以在 karma.conf.js 中输入 concurrency: 5

module.exports = function (config) {
  config.set({
    // other settings...

    concurrency: 5, // allow up to 5 browser instances in parallel

    // other settings...
  });
};

可以更改并发值来控制测试期间可以并行运行的浏览器实例的数量

© www.soinside.com 2019 - 2024. All rights reserved.