Timeout.timeout(0)在chef server spec(Ruby)中的含义是什么

时间:2017-11-10 14:49:00

标签: ruby rspec serverspec

我正在尝试为某些服务编写服务器规范代码。我想添加超时,以便在给定时间内,命令没有响应,测试用例应该失败。

试用timeout(0)时,测试正在通过。这是否意味着没有超时?

代码:

Timeout.timeout(0) do
  describe 'Check' do
    describe command('echo xxxx | nc localhost xxxx') do
      its(:stdout) { should contain('xxxx') }
      its(:stderr) { should match '' }
    end
  end
end

通常timeout(0)timeout(-1)表示没有超时。是否与serverspec相同。请帮忙。

2 个答案:

答案 0 :(得分:1)

来自Timeout docs:

  

等待块终止的秒数。可以使用任何数字,包括浮点数来指定小数秒。 值为0或nil将执行该块而不会超时。

重点是我的。

答案 1 :(得分:0)

这意味着什么都没有。另一个答案在向您展示原因时更为正确,但是tl; dr是代码无用,当有人错误地尝试使用超时进行测试时,可能习惯于非零。