【问题标题】:EADDRINUSE 127.0.0.1:5858 during jest test debugging开玩笑测试调试期间的 EADDRINUSE 127.0.0.1:5858
【发布时间】:2018-08-21 23:55:05
【问题描述】:

避免在调试Jest 测试期间引发以下错误:

Error: listen EADDRINUSE 127.0.0.1:5858
    at Object.exports._errnoException (util.js:1022:11)
    at exports._exceptionWithHostPort (util.js:1045:20)
    at Agent.Server._listen2 (net.js:1262:14)
    at listen (net.js:1298:10)
    at doListening (net.js:1397:7)
    at _combinedTickCallback (internal/process/next_tick.js:77:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

我使用

运行我的测试
node --harmony --debug-brk=5858 node_modules/.bin/jest

问题是 Jest 正在派生新进程来运行测试,并且新进程试图绑定到与父进程相同的调试端口(在本例中为 5858),并且该端口已被父进程占用。

奇怪的是,这个错误经常发生,但并非总是如此。有时上面的命令实际上允许调试测试。

【问题讨论】:

  • 用下面的命令试试,但仍然得到同样的错误 "listen EADDRINUSE :::5858" node --debug node_modules/jest/bin/jest.js --runInBain

标签: node.js debugging jestjs


【解决方案1】:

使用--runInBand jest 选项。来自文档:

--runInBand, -i
在当前进程中串行运行所有测试 (而不是创建一个孩子的工人池 运行测试的进程)。这有时是 对调试很有用,但这样的用例是 相当罕见。 [布尔]

它只是阻止 Jest 分叉。

node --harmony --debug-brk=5858 node_modules/.bin/jest --runInBand

【讨论】:

  • czerny 的意思是 --runInBand 而不是 --runInBain
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-16
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 2020-03-25
  • 1970-01-01
相关资源
最近更新 更多