首页 > 解决方案 > 在运行“npm test”时处理后台进程

问题描述

我需要在 Node.js 中运行 Mocha 测试之前和之后执行一组操作。

package.json,

"scripts": {
    "start": "node index.js",
    "test": "node createAccounts.js && (sleep 10 && mocha -t 60000 ./*spec.js); node deleteAccounts.js"
  }

运行时的问题npm test是,测试通过后,进程并没有终止。我想出的一种解决方法是使用node createAccounts.js & (sleep 10 && mocha -t 60000 ./*spec.js); node deleteAccounts.js &以便其他进程在后台运行并且测试正确终止。

标签: javascriptnode.jsshell

解决方案


我最终选择了以下测试脚本,该脚本在后台运行非终止进程并将退出代码保存在$s. 只有一个问题:后台进程没有被终止:(

"test": "node createAccounts.js & (sleep 10 && mocha -t 60000 ./*spec.js --exit) && s=0 || s=$? ; node deleteAccounts.js & sleep 5 && exit $s"

推荐阅读