3
Мое требование состоит в том, что мне нужно запустить утилиту, установленную другим пользователем, и я должен проверить вывод, возвращенный с этого сеанса, и проверить его. Пример:Как использовать Serverspec для проверки утилиты, установленной у другого пользователя?
- Я установил Java, как srijava пользователя
- Сейчас в Serverspec я написал команду, чтобы проверить версию Java (Предположим, что
java -version
работает только в этом пользователя, а не как корень). - если я использую
su srijava
, то я не получаю вывод, возвращенный обратно в корневую сессию, и тест завершается с ошибкой. - Если я бегу без
su srijava
тогда моя утилита выдаст ошибку , что пользователь не SriJava
Код с su
:
describe command('su srijava ; cd /app/java; ./java --version') do
its(:stdout) { should contain('1.7') }
end
код без su
:
describe command('cd /app/java; ./java --version') do
its(:stdout) { should contain('1.7') }
end
Если приемник не является устаревшим, AFAIK, это 'object.should', который был взломан. – coderanger
@coderanger Я ничего не говорил об устаревших вещах. Что вы имеете в виду? –
Вы сказали «Rspec 2» и «устарели», я думаю, потому что вы путаете две формы использования 'should'. Получатель-приемник по-прежнему присутствует в Rspec 3 и не устарел (и используется во всех примерах Serverspec). Таким образом, вы должны удалить эту часть ответа, поскольку она неверна :) – coderanger