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

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

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

于 2014-07-16T18:06:04.720 回答