我正在使用tests和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文件视为普通文件?
发布于 2014-07-16 18:06:04
~速记是许多流行的shell支持的路径扩展,但它不是真正的文件系统路径。实际上,您是在请求文件资源在名为~的实际子目录中查找文件~(从未指定的工作目录,无论在规范运行时它可能是什么)。
我认为您需要指定文件的绝对路径(例如,file('/home/username/.gemrc'))。
https://stackoverflow.com/questions/24374036
复制相似问题