gpt4 book ai didi

ruby - 使用 serverspec 使用相同的测试测试多个主机

转载 作者:数据小太阳 更新时间:2023-10-29 06:50:45 25 4
gpt4 key购买 nike

Serverspec 站点的高级提示部分显示了使用相同测试集测试多个主机的示例。我自己构建了一个示例 ( https://gist.github.com/neilhwatson/81249ad393800a76a8ad ),但存在问题。

第一个问题是测试在第一次失败时停止,而不是通过批处理继续进行并保持计数。第二个是故障输出没有指明故障发生在哪个主机上。我该怎么做才能解决这些问题并为所有房东生成最终报告?

最佳答案

对于第一个问题,默认情况下 ServerSpec 将运行您的所有测试。但是,由于您有一个为每个环境执行 Rake 任务的循环,因此第一个出现故障的环境会导致任务失败,因此会引发异常,而您的其余任务不会跑。

我已经 fork 了你的要点并更新了 Rake task to surround it with a begin/rescue .

...
begin
desc "Run serverspec to #{host}"
RSpec::Core::RakeTask.new(host) do |t|
ENV['TARGET_HOST'] = host
t.pattern = "spec/base,cfengine3/*_spec.rb"
end
rescue
end
...

对于第二个问题,ServerSpec 看起来不会输出测试运行的环境。但是由于更新的 Gist 显示主机在 spec_helper.rb 中设置,我们可以用它来add an RSpec configuration设置一个 after(:each) 并且只在出现错误时输出 host。相关代码更改在 fork of the gist 中,但基本上您只需要在 spec_helper.rb 中添加以下代码段:

RSpec.configure do |c|
c.after(:each) do |example|
if example.exception
puts "Failed on #{host_run_on}"
end
end
end

关于ruby - 使用 serverspec 使用相同的测试测试多个主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30374295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com