📌

終了していないprocessがいるとJestに怒られるとき

2021/04/24に公開

テスト自体は終了しているっぽいのにJestコマンドが終了せず、こういう警告が表示されるときの対応。

Jest did not exit one second after the test run has completed.

今回遭遇したのはE2E用server(vite serve)をglobalSetupで立ち上げつつ、JestでPlaywrightを走らせ、globalTeardownでserverを片付けるという状況。

spawnの戻り値をkillしたりprocess.exit()を実行したりしてみたが、processがうまく落とせず残ってしまうらしい。

色々探してみた結果tree-killというパッケージに頼ってみたら全processがkillされて警告もなくなった。

https://stackoverflow.com/questions/18694684/spawn-and-kill-a-process-in-node-js

https://www.npmjs.com/package/tree-kill

Discussion