Inspec тестирует несколько объектов

Я пишу тесты inspec для моих рецептов шеф-повара, в которых есть 5 файлов, которые нужно проверить в своем режиме. Все они должны иметь одинаковый режим 0755.

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

Это тот синтаксис, который я использую. Но это тестирует только 1 файл (/dev). Можно ли протестировать несколько файлов, используя один тестовый блок?

1 ответ

Вы можете использовать код ruby ​​для тестирования нескольких объектов

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

Это не совсем "одиночный тестовый блок", но вы можете перебрать список файлов:

%w(/dev /tmp).each do |path|
  describe file(path)
    its(:mode) { should cmp '00755' }
  end
end
Другие вопросы по тегам