我的一个项目'Makefile在无头浏览器上运行了一系列测试,用于功能测试步骤。大多数测试是针对前端代码的,但我也检查后端的任何错误/警告。
目前,我们正在清理Web服务器日志,运行所有(非常慢)测试,然后在服务器日志中点击任何错误或警告。
我想知道是否有任何方法让侦听器在后台开始解析日志(例如tail -f | grep
),如果在测试运行期间检测到任何错误/警告,则终止make目标。
这只给我带来的好处是,我现在每次都不会丢失我的开发箱上的服务器日志,因为我不必每次都清理它。但是我仍然需要等待很长时间(分钟)才能在第一次发生故障时发生故障。
有什么解决方案吗?
答案 0 :(得分:2)
我想知道是否有任何方法让侦听器在后台开始解析日志(例如
tail -f | grep
),如果在测试运行期间检测到任何错误/警告,则终止make目标。
您是否尝试过简单明了的方式?像这样,例如:
# make is started somehow, e.g.:
make target >make-target.log 2>&1 &
PIDOFMAKE=$!
# we know its PID and the log file name
tail -f make-target.log | grep 'ERROR!' |
while read DUMMY; do
# error was detected, kill the make:
kill $PIDOFMAKE
break
done
(虽然我不清楚OP在问什么,我写了答案,因为我不能在评论中加入大量代码。)