刚开始,我对测试我的食谱非常陌生。我已经在烹饪书中工作了几个月并且相当了解事情,但是我们的项目在添加测试时非常松懈。我试图将我们拖入测试中。
我的测试,就像现在一样,检查服务是否已经启动。我的问题是,为了使测试成功,我真的喜欢通过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连接。
有谁知道如何处理这个时间问题?
答案 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和时间问题永远不应该通过睡眠来解决,但我不会假设知道你可能需要什么; - )