2015-11-13 40 views
0

我正在嘗試爲ChefSpec::ServerRunner添加一些我的食譜(比如cookbook1)的單元測試。爲ChefSpec Server Runner指定Cheffile

我的目錄結構如下:

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

我已經加入require 'chefspec/librarian'解決依賴的食譜,但這個假設Cheffile是在同一個目錄cookbook1。

有沒有一種方法可以指定Cheffile的路徑爲 ChefSpec::ServerRunner

+0

是的,該cheffile應該是在你的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/Cheffile(Errno :: ENOENT)' – user3153983

回答

0

在創建運行器對象之前調用Dir.chdir。 ChefSpec中的相關代碼是here,您可以看到它使用Dir.pwd來初始化Librarian。