在Travis上构建我的应用程序时,我试图在Docker容器中运行测试。容器启动并运行测试,当我记录容器输出时,我可以看到它们已经通过。据我所知,我可以使用grep来实现这一点,如下所示。所以这是我的travis脚本:
脚本:
docker-compose up -d
docker logs dockertestapp_app_1
docker logs 2>& 1 dockertestapp_app_1 | grep -q'npm info ok'
我只想grep容器日志的输出,看看测试是否通过,但总是失败。我错过了一些简单的东西吗?
提前谢谢!
答案 0 :(得分:1)
为了避免您在评论中描述的60秒睡眠,请手动开始测试:
docker exec -it dockertestapp_app_1 bash -c 'tests.py > /proc/1/fd/1'
注意我正在执行测试文件(在此示例中为tests.py
)并将输出设置为/proc/1/fd/1
。通过这种方式,您通常可以grep表达式,这意味着您正在进行测试。
提示:您可能无需输出到/proc/1/fd/1
的docker日志,因为您的测试脚本可能会返回非零退出代码以指示测试失败。这样你甚至不需要脚本中的grep行。