我相信這個問題可能是serverspec service test returns incorrect failure的重複,但是我包含了更多關於執行環境的信息。rspec/serverspec服務測試總是失敗
我有一堆成功的針對AWS上的RHEL6 VM執行的serverspec測試。
然而,任何「服務」測試似乎失敗,匹配器be_enabled和be_running。
我已經在我的spec_helper.rb如下:
set :os, :family => 'redhat', :release => '6', :arch => 'x86_64'
我都嘗試serverspec和RSpec語法測試,併爲它們運行相同的命令都失敗:
describe service('ntpd') do
it { should be_enabled }
it { should be_running }
end
it "is running ntpd" do
expect(service("ntpd")).to be_enabled
expect(service("ntpd")).to be_running
end
Failure/Error: it { should be_enabled }
expected Service "ntpd" to be enabled
sudo -p 'Password: ' /bin/sh -c chkconfig\ --list\ ntpd\ \|\ grep\ 3:on
Failure/Error: it { should be_running }
expected Service "ntpd" to be running
sudo -p 'Password: ' /bin/sh -c service\ ntpd\ status
然而,在服務器上本地運行它們將成功:
$ sudo -p 'Password: ' /bin/sh -c chkconfig\ --list\ ntpd\ \|\ grep\ 3:on
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
$ echo $?
0
$ sudo -p 'Password: ' /bin/sh -c service\ ntpd\ status
ntpd (pid 1101) is running...
$ echo $?
0
我試圖調查設置一些調試與pry-byebug一起玩,但看起來並不那麼簡單,所以我現在就放棄了這一點。
我運行紅寶石2.0,serverspec 2.24,RSpec的3.3
誰能幫我指出了正確的方向?
此解決方案對我無效。任何替代品? – fiunchinho