Вот самый простой способ заставить эти тесты работать:
Шаг 1: создайте текстовый файл с именем cronls.txt
с этими данными:
1 0 * * * ls -al
Шаг 2: Превратите его в задание cron с помощью этой команды:
crontab -a cronls.txt
Шаг 3. В своей поваренной книге шеф-повара добавьте эти элементы управления в default_test.rb
:
control 'cron-1' do
describe crontab do
its('commands') { should include 'ls -al' }
end
end
control 'cron-2' do
describe crontab.commands('ls -al') do
its('minutes') { should cmp '1' }
its('hours') { should cmp '0' }
end
end
Шаг 4. Выполните тесты InSpec:
inspec exec test/integration/default/default_test.rb
Результаты - это то, что вы ожидаете:
✔ cron-1: crontab for current user
✔ crontab for current user commands should include "ls -al"
✔ cron-2: crontab for current user with command == "ls -al"
✔ crontab for current user with command == "ls -al" minutes should cmp == "1"
✔ crontab for current user with command == "ls -al" hours should cmp == "0"
Это не единственный способ сделать это (или даже лучший способ), но он должен помочь вам. Дополнительные сведения о ресурсе crontab
см. В документации InSpec:
https://docs.chef.io/resource_cron.html