javascript - 在运行“npm test”时处理后台进程
问题描述
我需要在 Node.js 中运行 Mocha 测试之前和之后执行一组操作。
运行在服务器上创建用户和机器人帐户的脚本。此脚本使用创建与服务器的连接的 API 调用,并且在创建帐户后进程不会终止。
使用上面创建的帐户凭据运行服务器。
运行摩卡测试。
删除在服务器上创建的帐户。
在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 &
以便其他进程在后台运行并且测试正确终止。
解决方案
我最终选择了以下测试脚本,该脚本在后台运行非终止进程并将退出代码保存在$s
. 只有一个问题:后台进程没有被终止:(
"test": "node createAccounts.js & (sleep 10 && mocha -t 60000 ./*spec.js --exit) && s=0 || s=$? ; node deleteAccounts.js & sleep 5 && exit $s"
推荐阅读
- java - 完成应用程序崩溃时发生Java liibgdx
- html - How to make divs have the same height using flexbox properties?
- reactjs - 反应导航焦点事件监听器返回旧状态
- rust - Rust 表达式中的符号“@”是什么意思
- javascript - 在最后一个数组停止自动输入
- javascript - 从base64数据显示pdf
- python - 如何将验证逻辑作为对 SCONS 目标的依赖
- sql - SQL:如何查找出现的字符串,按键随机排序并将它们分配给新属性?
- reactjs - 在主要区域周围设置灰色背景
- java - 如何在不重新启动 JVM 的情况下将外部 JAR 添加到 Spring 应用程序?