Serverspec:检查目录是否为空

时间:2015-09-14 16:27:44

标签: ruby chef test-kitchen serverspec

我想检查现有目录是否为空(不包含任何文件或子目录)。

我尝试了以下内容:

describe file('/path/to/file') do
    it { should be_empty }
end

但这不起作用。 (当然,正如文档中没有提到的那样。)

重要提示:我不想测试,如果目录存在 - 它确实存在,我无法改变它。

我的解决方案现在看起来如下:

describe command('ls /data/nginx/cache/services | grep -q .') do
    its(:exit_status) { should eq 1 }
end

但那不是使用Serverspec资源类型'文件'。有没有更好的方法来测试文件夹是否为空?

1 个答案:

答案 0 :(得分:5)

文件资源内的测试全局

执行此操作的一种方法是在对应该没有文件的目录进行通配时测试空数组。例如:

describe file('/path/to/dir') do
  it { should be_a_directory }
  it 'should be an empty directory' do
    Dir.glob('/path/to/dir/*').should eq []
  end
end