我有一个 Makefile 目标,如下所示
integration-test: git-hooks
java -Djava.library.path=$$(pwd)/test/integration/lib/DynamoDBLocal_lib \
-Djava.util.logging.config.file=/dev/null \
-Dorg.eclipse.jetty.LEVEL=WARN \
-Dlog4j.com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler=OFF \
-jar $$(pwd)/test/integration/lib/DynamoDBLocal.jar \
-inMemory \
-port 8000 &
sleep 3
./node_modules/.bin/mocha --compilers coffee:coffee-script/register \
--reporter spec \
test/integration/main.coffee
ps -ef | grep [D]ynamoDBLocal_lib | awk '{print $$2}' | xargs kill
这就是我正在做的事情:
- Java 命令启动 Amazon DynamoDB 的本地实例。
- 我给它 3 秒开始
- 我运行我的集成测试
- 我杀了数据库
我想要的是杀死数据库,不管测试是否通过。为此,我想我需要 test 命令的退出状态并返回它,无论是测试失败还是成功。
正在发生的事情是,如果测试通过,则数据库被正确杀死,如果测试失败,则不是。
我在文档中读到,如果它产生非零退出状态,您可以-
在命令前面添加一个忽略它的命令,make
如果我这样做的问题是我不知道测试是否失败,因为$?
将始终返回 0。
在这种情况下,通常的做法是什么?如果可以解决我的问题,我可以将目标拆分为更多目标。
谢谢你。