【问题标题】:Capistrano test run failed, but deployment successfulCapistrano 测试运行失败,但部署成功
【发布时间】:2017-05-03 05:07:24
【问题描述】:

我已经为我的 rails 项目部署设置了 Capistrano,并且我正在从自定义 cap 任务运行我的单元测试,如下所示。

namespace :deploy do
  desc "Runs test before deploying, can't deploy unless they pass"
  task :run_tests do

    puts "--> Running tests, please wait ..."
    unless system "bundle exec rake > log/capistrano.log 2>&1" #' > /dev/null'
      puts "--> Tests failed. Run `cat log/capistrano.log` to see what went wrong."
      exit
    else
      puts "--> Tests passed"
    end

    puts "--> All tests passed"
  end
end

如果系统中的单元测试失败,部署将不会继续进行,但在jenkins 中,构建显示为蓝色。这意味着构建成功。

我如何通知 jenkins 构建以错误结束?

【问题讨论】:

    标签: ruby-on-rails jenkins capistrano


    【解决方案1】:

    您正在“测试失败”分支中运行 exit,这会以状态码为零(成功!)结束 ruby​​ 程序。

    如果你 exit 1(或任何非零值)来自 ruby​​,jenkins 就会知道发生了不好的事情。

    在 ruby​​ 中还有其他“不成功退出”的方法(如 raise),但 exit 的工作方式与 bash 中一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-23
      • 2015-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多