EADDRINUSE 127.0.0.1:5858在jesttesting期间debugging

为了避免在Jesttesting的debugging过程中出现以下错误:

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) 

我运行我的testing使用

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

问题是Jest正在分配一个新的进程来运行testing,新进程试图绑定到同一个debugging端口(在这种情况下是5858),作为父进程,并且该端口已经被父进程占用。

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

使用--runInBain jest选项。 从文档:

–runInBand,-i
在当前进程中连续运行所有testing(而不是创build一个运行testing的subprocess的工作池)。 这对于debugging有时是有用的,但是这种用例很less见。 [布尔]

它只是防止Jest分叉。

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