Inspec测试多个实体

问题描述 投票:1回答:2

我正在为我的厨师食谱编写inspec测试,其中有5个文件需要测试他们的模式。所有这些都应该具有相同的模式0755。

describe file('/dev') do
 its('mode') { should cmp '00755' }
end

这是我正在使用的语法。但是这只测试了1个文件(/ dev)。是否可以使用单个测试块测试多个文件?

chef inspec
2个回答
5
投票

您可以使用ruby代码来测试多个实体

dirs = ["/lib","/bin","/dev"]
dirs.each do |path|
    describe file(path) do
        its('type') { should eq :directory }
        it { should be_directory }
    end
end

1
投票

它不完全是“单个测试块”,但您可以迭代文件列表:

%w(/dev /tmp).each do |path|
  describe file(path)
    its(:mode) { should cmp '00755' }
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.