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

如何解决Mocha运行--inspect-brk时Chrome无法附加全部调试器进程的问题

解决Mocha多调试进程无法被Chrome自动附加的问题

问题原因

Mocha启动多调试进程通常是因为开启了并行测试模式,或者测试代码中主动fork了子进程,每个进程会分配独立的调试端口。Chrome默认只会自动发现第一个默认端口(9229),导致后续进程无法被附加,测试永久挂起。

可行解决方案

1. 禁用Mocha并行模式

如果是并行测试导致的多进程,直接关闭并行即可避免多调试端口:

mocha --inspect-brk --no-parallel

这种方式最简单,适合不需要并行执行的测试场景。

2. 配置Chrome自动监听所有本地调试端口

在Chrome中打开chrome://inspect页面:

  • 点击页面底部的Configure按钮
  • 添加127.0.0.1:0到目标列表(:0表示监听所有本地随机端口)
  • 保存后,Chrome会自动发现所有本地运行的Node调试进程,包括Mocha启动的子进程,你可以在页面中手动点击inspect附加到对应端口的进程。

3. 使用第三方调试工具自动跟踪多进程

用ndb工具替代Chrome直接调试,它会自动捕获所有Mocha启动的子进程调试会话:

# 先全局安装ndb
npm install -g ndb
# 用ndb启动Mocha测试
ndb mocha

ndb的界面和Chrome DevTools一致,会自动管理所有子进程的调试,无需手动处理端口。

4. 手动指定子进程调试端口(自定义子进程场景)

如果是测试代码中主动fork了子进程,在fork时显式指定调试端口:

const { fork } = require('child_process');
// 给子进程指定独立调试端口
fork('./test-child.js', [], {
  execArgv: ['--inspect-brk=9230']
});

然后在Chrome的chrome://inspect中添加127.0.0.1:9230,即可手动附加该子进程。

内容的提问来源于stack exchange,提问作者derpedy-doo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:03:36