この問題はおそらく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 を使用してデバッグを設定する方法を調べてみましたが、それほど単純ではないように見えるので、今のところそれをあきらめました。
Ruby 2.0、serverspec 2.24、rspec 3.3 を実行しています
誰かが私を正しい方向に向けるのを手伝ってくれますか?