【发布时间】:2016-05-26 01:13:16
【问题描述】:
我有一个用 Rails 编写的应用程序。为了测试它,我构建了一个 docker 映像。一切正常。
但是,当我将 Jenkins 配置为运行这些测试时,就会出现问题。这是我在构建步骤中所做的:
docker-compose up rspec
其中 rspec 是在 docker-compose.yml 中定义的服务,包含以下命令:
command: "rspec spec/"
当 rspec 返回错误时,构建仍然成功。 这里是一个输出示例:
...
21:42:24 [36mrspec_1 |[0m should save second profile
21:42:24 [36mrspec_1 |[0m
21:42:24 [36mrspec_1 |[0m Failures:
21:42:24 [36mrspec_1 |[0m
21:42:24 [36mrspec_1 |[0m 1) New profile Should persist new_profile_pricture
21:42:24 [36mrspec_1 |[0m Failure/Error: jump_to_four_phase_with(new_profile_picture)
21:42:24 [36mrspec_1 |[0m RuntimeError:
21:42:24 [36mrspec_1 |[0m Timeout for '#new_profile' (1) appearance reached!
...
21:42:25 [36mcomposes_rspec_1 exited with code 1
21:42:25 [0m[Profiler] $ /bin/sh -xe /tmp/hudson4606189750126491465.sh
21:42:25 Finished: SUCCESS
36mcomposes_rspec_1 返回 1 并且构建仍然成功。
如果我通过 docker ps -a 的 id 检查容器,我会得到“Exited (1) 2 minutes ago”
你们知道怎么回事吗?
当容器失败时,有没有一种简单的方法让构建失败?
【问题讨论】:
标签: ruby-on-rails jenkins rspec docker continuous-integration