我正在尝试编写一个ServerSpec测试,以针对已部署的实例运行。以下是有关的测试:
require 'spec_helper'
describe service('nginx') do
it { should be_enabled }
it { should be_running }
end
describe port(80) do
it { should be_listening }
end
describe port(8085) do
it { should be_listening }
end
describe host('localhost') do
it { should be_reachable.with( :port => 8085, :proto => 'tcp' ) }
end当我尝试运行这个测试时,我第一次发现ncat没有安装(Centos 7最小)。我安装了这个包,现在当我尝试运行测试时,我得到了以下响应:
Failures:
1) Host "localhost" should be reachable
Failure/Error: it { should be_reachable.with( :port => 8085, :proto => 'tcp' ) }
expected Host "localhost" to be reachable
/bin/sh -c nc\ -vvvvzt\ localhost\ 8085\ -w\ 5
nc: invalid option -- 'z'
Ncat: Try `--help' or man(1) ncat for more information, usage options and help. QUITTING.
# /tmp/busser/suites/serverspec/localhost/nginx_spec.rb:17:in `block (2 levels) in <top (required)>'
Finished in 0.08179 seconds (files took 0.2021 seconds to load)
5 examples, 1 failure这只是ServerSpec的一个bug吗?有什么解决办法吗?
发布于 2014-10-07 20:37:36
这似乎是铁丝,所以我认为它是一个bug。不幸的是,serverspec项目最近禁用了对其repos的问题跟踪,因此没有一种很好的方法来检查它是否已知。听起来你的netcat可能太老了,无法支持这个选项,或者已经修补好了。解决办法是不要使用这个匹配器,should be_listening和iptables检查应该是等价的。您还可以使用带有command类型的nc或curl来检查相同的内容。
https://stackoverflow.com/questions/26244193
复制相似问题