检查Serverspec是否存在隐藏文件

时间:2014-06-23 19:42:18

标签: ruby integration-testing hidden-files dotfiles test-kitchen

我正在使用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文件视为普通文件?

1 个答案:

答案 0 :(得分:0)

~简写是许多流行shell支持的路径扩展,但它不是真正的文件系统路径。实际上,您要求文件资源在名为.gemrc的实际子目录中查找文件~(来自未指定的工作目录,无论在规范运行时它是什么)。

我认为您需要指定文件的绝对路径(例如,file('/home/username/.gemrc'))。