minitest处理程序计时问题

时间:2014-01-09 20:42:18

标签: chef minitest

刚开始,我对测试我的食谱非常陌生。我已经在烹饪书中工作了几个月并且相当了解事情,但是我们的项目在添加测试时非常松懈。我试图将我们拖入测试中。

我的测试,就像现在一样,检查服务是否已经启动。我的问题是,为了使测试成功,我真的喜欢通过upstart日志文件检查软件是通过其启动步骤完成的。其中一个步骤是联系RabbitMQ服务器并注册以在四个单独的交换机上收听。这需要一些时间。

我希望使用以下内容:

describe_recipe 'my_cookbook::test' do

  it " testing that the service is running" do
    service('foo').must_be_running
  end

  it " testing that the log file contains We're Up!" do
    file('/var/log/upstart/foo').must_include 'We're Up!'
  end

end

...但是我遇到了失败,因为它尝试在之前检查upstart log 甚至是由服务创建的。即使我可以让它等到文件创建之后,我真的需要创建一个比如5秒的延迟,在此期间将建立RabbitMQ连接。

有谁知道如何处理这个时间问题?

1 个答案:

答案 0 :(得分:0)

虽然我也建议,正如sethvargo为我做的那样,调查Test Kitchen,以防万一其他人需要能够为他们的minitests添加睡眠,可以这样做:

it "sleeping" do; puts "need to say something here or the sleep will not happen at the right time"; sleep 5; end

有点hackish和时间问题永远不应该通过睡眠来解决,但我不会假设知道你可能需要什么; - )