My Chef 요리 책은 특정 사용자를 위해 Ruby를 로컬에 설치합니다. Ruby의 특정 버전이 사용 가능한지와 보석이 문서없이 설치되었는지 확인하는 InSpec 테스트를 작성하려고합니다.InSpec + TestKitchen : 특정 사용자를 대신하여 명령을 실행하는 방법은 무엇입니까?
분명히 나는 어떻게 든 rbenv 설치가있는 사용자를 대신하여 명령을 실행해야합니다. 나는 sudo su -c
으로 고집하기로 결심했다.
describe command('su - rbenv_user -c "ruby -v"') do
its('stdout') {should match ('ruby 2.3.1')}
end
을하지만 설치하려고 할 때 보석 : 버전에 대한 테스트가 제대로 작동
describe command('su - rbenv_user -c "gem install bundler"') do
its('stderr') {should match ('Successfully installed')}
its('stderr') {should_not match ('Parsing documentation for')}
end
나는 오류가 발생 :
ERROR: While executing gem ... (Errno::EACCES) Permission denied @ rb_sysopen - /apps/rbenv_user/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/.codeclimate.yml
나는 또한 runuser -l user -c ...
와 su - user -c ...
의 교체 시도 그것은 같은 결과를 낳는다.
왜 이런 일이 일어나고 다른 사용자로 다른 옵션을 테스트해야하는지 잘 모르겠습니다.