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 'file'. Есть ли лучший способ проверить, чтобы папка была пустой?
1 ответ
Тестовый глобус внутри файлового ресурса
Один из способов сделать это - проверить наличие пустого массива при перемещении по каталогу, в котором не должно быть файлов. Например:
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