我正在使用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文件视为普通文件?
答案 0 :(得分:0)
~
简写是许多流行shell支持的路径扩展,但它不是真正的文件系统路径。实际上,您要求文件资源在名为.gemrc
的实际子目录中查找文件~
(来自未指定的工作目录,无论在规范运行时它是什么)。
我认为您需要指定文件的绝对路径(例如,file('/home/username/.gemrc')
)。