0

통합 테스트에 Test-Kitchen 및 Serverspec을 사용하고 있습니다. 이 경우 .gemrc에 숨겨진 파일이 있는지 여부를 확인하기 위해 Serverspec 파일 리소스를 사용하고 싶습니다. 여기 내 사양의 구성입니다 :Serverspec에 숨겨진 파일이 있는지 확인

require 'spec_helper' 

describe "Checking the .gemrc" do 

    describe file('~/.gemrc') do 
    it { should be_file } 
    end 
end 

는 그리고 여기 오류 출력 :

 Check .gemrc 
     File "~/.gemrc" 
    should be file (FAILED - 1)  

Failures:  

    1) Check .gemrc File "~/.gemrc" should be file  
    Failure/Error: it { should be_file }  
     test -f \~/.gemrc  
     expected file? to return true, got false  
    # /tmp/busser/suites/serverspec/default/ruby_spec.rb:14:in `block (3 levels) in <top (required)>'  

Finished in 0.06349 seconds  
1 example, 1 failure 

가 왜 file 자원이 정상 파일로 .gemrc 파일을 참조하지 않는 이유는 무엇입니까?

+0

파일이 실제로 있습니까? – sethvargo

+0

예, 파일이 존재합니다. – Robert

+0

그리고 serverspec이 실행중인 사용자가 읽을 수 있습니까? 디렉토리의'ls -al'을 보여줄 수 있습니까? – sethvargo

답변

0

~ 속기 많은 인기 쉘에서 지원하는 경로 확장이지만, 실제 파일 시스템 경로가 아닙니다. 결과적으로 파일 리소스에 ~이라는 실제 하위 디렉토리에있는 파일 ()을 찾도록 요청하고 있습니다 (지정되지 않은 작업 디렉토리에서이 파일을 실행하는 시점에 관계없이).

나는 당신이 (예를 들어, file('/home/username/.gemrc')를) 파일에 절대 경로를 지정해야합니다 생각합니다.