Chefspec: загружает ли chefspec все рецепты, библиотеки, пользовательские ресурсы и т. Д. Все изначально - PullRequest
1 голос
/ 02 октября 2019

В моей кулинарной книге (это устаревший код) у меня около 20+ рецептов, около 15 модулей в каталоге библиотек, некоторые пользовательские ресурсы.

Я пытаюсь добавить chefspecs для рецептов, которые я создал package_spec.rb файл спецификаций для рецепта пакет (я использую chef12, поэтому у меня есть файл политики, для которого я добавил запись в spec_helper.rb ). и в рецепте, у меня есть простой код

package'monit' do
  action :install
end

Аналогично, файл спецификации содержит небольшой тест:

it 'installs monit' do
  expect(chef_run).to install_package('monit')
end

Но когда я пытаюсь запустить файл спецификации как:

chef rspec <spec_file_path>

Выдает некоторые ошибки для методов в библиотеках, пользовательских ресурсах и т. Д.

Итак, у меня есть 2 балла :

  1. Загружает ли chefspec все рецепты, библиотеки, пользовательские ресурсы и т. Д. Первоначально каждый раз, даже для запуска теста для одного рецепта?
  2. Если да, как мы можем заставить его загружать только те рецепты / файлы, которые связаны сэтот рецепт?

Спасибо !!

1 Ответ

1 голос
/ 03 октября 2019

На самом деле это не ChefSpec, а сам Chef. Все, что делает ChefSpec, - это переписывает методы действия ресурса, чтобы они ничего не делали, кроме как записали где-нибудь, что действие было вызвано.

ChefSpec вызывает сходство клиента chef, и сам Chef загружает библиотеки, атрибуты и рецепты. из поваренной книги. И, извините, вы не можете изменить это поведение, шеф-повар загружает кулинарную книгу в целом, даже если вам нужен только 1 маленький рецепт из нее.

...