Bash脚本在e2e测试运行后卡住了

时间:2020-09-21 09:35:20

标签: node.js bash

我正在使用Nightwatch.js进行e2e测试。我希望它们使用bash脚本运行(最终结果是它们在CI中运行)。 我对bash相当陌生,这是我到目前为止所拥有的:

#!/bin/bash

# exit on errors
set -e 

export NODE_ENV=development
export LIVERELOAD_DISABLED=YES

npm install
NODE_ENV=e2e grunt build
echo "...Starting Node App"
#start app in the background
NODE_ENV=e2e node server.js &
#save node app process id
NODE_PROC=$!
#wait a bit
sleep 10
echo "...Running Frontend Tests"
NODE_ENV=e2e npm run nightwatch
echo "...Tests Finished... Killing Node App"
kill -9 $NODE_PROC
echo "...Node App Killed"

问题是脚本在运行所有测试(行:NODE_ENV=e2e npm run nightwatch)后卡住了

我得到的唯一输出是日志和常规测试输出。无论测试是否通过,失败,是否通过或不通过,脚本都会卡住。 我尝试在无法正常工作的末尾添加exit 0(这很有意义,因为它无法执行到该点)。

此外,将set -e更改为set -ex并不会更改输出。

我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

所以我在错误的地方查看,脚本完全正确,问题是我没有在测试中关闭与数据库的连接。 不知道为什么会导致此问题,但已解决