0

統合テストに Test-Kitchen と Serverspec を使用しています。Serverspec ファイル リソースを使用して、隠しファイルが存在するかどうかを確認したいと考えています。この場合は.gemrc. これが私の仕様構成です:

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 ファイルを通常のファイルとして認識しないのはなぜですか?

4

1 に答える 1

0

短縮形は、~多くの一般的なシェルでサポートされているパス展開ですが、実際のファイルシステム パスではありません。.gemrc実際には、指定された実際のサブディレクトリ内のファイルを検索するようにファイル リソースに要求しています~(指定されていない作業ディレクトリから)。

ファイルへの絶対パスを指定する必要があると思います (例: file('/home/username/.gemrc'))。

于 2014-07-16T18:06:04.720 に答える