You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular单元测试用Puppeteer v19.7.0后弹窗及Karma调试异常

Angular + Karma + Puppeteer v19.7.0+ 弹窗及调试器附加问题

我们在Angular项目中借助Puppeteer引入Headless Chrome二进制文件,用于CI等场景,此前运行完全正常。但自Puppeteer v19.7.0升级Chromium二进制版本后,执行npm test会弹出命令行窗口,同时导致WebStorm中的Karma调试器无法正常附加。v19.6.3及更早版本无此问题。

已尝试以下排查手段,但均未解决问题:

  • 核查新版本Chromium的破坏性变更,未找到相关内容;单独启动Headless模式运行正常
  • 修改karma-chrome-launcher配置
  • 切换回Puppeteer v19.7.0之前的版本(仅该版本前可正常工作)
  • 清理npm缓存、删除Chrome二进制文件

为复现问题,我创建了全新的空Angular项目,同步依赖版本并配置Karma引入Puppeteer Chrome,相关文件如下:

package.json

{"name": "angular-karma-puppeteer-issue","version": "0.0.0","scripts": {"ng": "ng","start": "ng serve","build": "ng build","watch": "ng build --watch --configuration development","test": "ng test --no-watch"},"private": true,"dependencies": {"@angular/animations": "15.2.1","@angular/common": "15.2.1","@angular/compiler": "15.2.1","@angular/core": "15.2.1","@angular/forms": "15.2.1","@angular/platform-browser": "15.2.1","@angular/platform-browser-dynamic": "15.2.1","@angular/router": "15.2.1","rxjs": "7.8.0","tslib": "2.5.0","zone.js": "0.12.0"},"devDependencies": {"@angular-devkit/build-angular": "15.2.1","@angular/cli": "15.2.1","@angular/compiler-cli": "15.2.1","@types/jasmine": "4.3.1","jasmine-core": "4.5.0","karma": "6.4.1","karma-chrome-launcher": "3.1.1","karma-coverage": "2.2.0","karma-jasmine": "5.1.0","karma-jasmine-html-reporter": "2.0.0","puppeteer": "19.7.5","typescript": "4.8.4"}}

karma.conf.js

// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html

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'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    client: {
      jasmine: {
        // you can add configuration options for Jasmine here
        // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
        // for example, you can disable the random execution with `random: false`
        // or set a specific seed with `seed: 4321`
      },
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    jasmineHtmlReporter: {
      suppressAll: true // removes the duplicated traces
    },
    coverageReporter: {
      dir: require('path').join(__dirname, './coverage/angular-karma-puppeteer-issue'),
      subdir: '.',
      reporters: [
        { type: 'html' },
        { type: 'text-summary' }
      ]
    },
    reporters: ['progress', 'kjhtml'],
    browsers: ['ChromeHeadless'],
    restartOnFileChange: true
  });
};

内容的提问来源于stack exchange,提问作者jsanvi22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:57:02