2015-11-13 3 views
0

Я пытаюсь добавить некоторые модульные тесты для моей поваренной книги (скажем, cookbook1) с ChefSpec::ServerRunner.Укажите Cheffile для ChefSpec Server Runner

Моя структура каталогов выглядит следующим образом:

mycookbooks 
    ->cookbook1  
      ->->recipes 
      ->->spec    
    ->cookbook2 
    -> Cheffile 

Я добавил require 'chefspec/librarian' для решения поваренные зависимостей, но это предполагает, что Cheffile находится в той же директории cookbook1.

Есть ли способ, которым я могу указать путь Шеффила до ChefSpec::ServerRunner.

+0

Да, предполагается, что шеффил находится в корне вашего каталога cookbook_path. Поэтому установите cookbook_path для mycookbooks. [см. здесь] (https://github.com/sethvargo/chefspec#configuration) – Tensibai

+0

'config.cookbook_path = 'путь к папке mycookbooks'', вот как я попытался настроить путь поваренной книги (используется как относительная, так и абсолютный путь для этого.) Когда я запускаю 'rspec', я получаю следующую ошибку. '/gems/ruby-2.2.3/gems/librarian-0.1.2/lib/librarian/dsl/receiver.rb:30:in' read ': нет такого файла или каталога @ rb_sysopen -/path/to/cookbook1/Шеффил (Errno :: ENOENT) ' – user3153983

ответ

0

Позвоните Dir.chdir перед созданием объекта бегуна. Соответствующий код в ChefSpec - here, и вы можете увидеть, что он использует Dir.pwd для инициализации библиотекаря.

 Смежные вопросы

  • Нет связанных вопросов^_^