在Travis上的容器中运行测试

时间:2016-11-14 12:47:57

标签: node.js docker travis-ci

在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容器日志的输出,看看测试是否通过,但总是失败。我错过了一些简单的东西吗?

提前谢谢!

1 个答案:

答案 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行。