Makefile命令后检查日志的最佳方法

时间:2015-12-01 01:00:42

标签: linux bash unix testing makefile

我的一个项目'Makefile在无头浏览器上运行了一系列测试,用于功能测试步骤。大多数测试是针对前端代码的,但我也检查后端的任何错误/警告。

目前,我们正在清理Web服务器日志,运行所有(非常慢)测试,然后在服务器日志中点击任何错误或警告。

我想知道是否有任何方法让侦听器在后台开始解析日志(例如tail -f | grep),如果在测试运行期间检测到任何错误/警告,则终止make目标。

到目前为止我得到的是

  1. 在后台启动long live grep并存储PID。
  2. 运行测试。
  3. 检查长寿grep的输出
  4. 杀死PID。
  5. 如有任何错误,请失败。
  6. 这只给我带来的好处是,我现在每次都不会丢失我的开发箱上的服务器日志,因为我不必每次都清理它。但是我仍然需要等待很长时间(分钟)才能在第一次发生故障时发生故障。

    有什么解决方案吗?

1 个答案:

答案 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在问什么,我写了答案,因为我不能在评论中加入大量代码。)