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
Другие вопросы по тегам