2015-11-06 5 views
1

Я считаю, что этот вопрос, вероятно, является дубликатом serverspec service test returns incorrect failure, но я включаю немного больше информации о моей среде выполнения.Тест rspec/serverspec всегда терпит неудачу

У меня есть куча успешных тестов серверов, выполняемых против виртуальной машины RHEL6 на AWS.

Однако любой «сервисный» тест, похоже, терпит неудачу с помощью сокетов 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 

Я попытался изучить настройку некоторой отладки ging с pry-byebug, но это выглядит не так просто, поэтому я вроде бы отказался от этого на данный момент.

Я бегу рубин 2.0, serverspec 2,24, RSpec 3,3

Может кто-нибудь помочь мне точку в правильном направлении?

ответ

1

Мне нужно было указать уровень запуска, чтобы проверить, а затем все сработало. Я предполагаю, что это некоторая проблема обратной совместимости между RHEL6/7 и systemV/systemD, поскольку документация указывает, что тесты, описанные выше, должны работать.

describe service('ntpd') do 
    it { should be_enabled.with_level(2) } 
    it { should be_enabled.with_level(3) } 
    it { should be_enabled.with_level(4) } 
    it { should be_enabled.with_level(5) } 
    it { should be_running } 
end 
+0

Это решение не сработало для меня. Любые альтернативы? – fiunchinho

0

если с раствором на уровне не помогает, я также обнаружил, что вам нужно установить переменную PATH в файле spec_helper.rb включить/SBIN и/USR/SBIN. Это сделал трюк для меня лично.

Смежные вопросы