2016-11-30 59 views
0

我試圖測試使用sudo社區食譜的食譜。在測試廚房中使用berks食譜時沒有找到資源

我已經在本地安裝伯克斯,我創建了一個Berksfile並添加以下代碼行:

source "https://supermarket.getchef.com" 

metadata 

cookbook 'sudo' 

和發出的命令,berks installberks vendor

儘管如此,我仍然得到錯誤

[2016-11-30T12:32:53+00:00] ERROR: No resource or method named `sudo' for `Chef::Recipe "default"' 

指向我這部分食譜:

49>> sudo 'reboot_bot' do 
50: user 'reboot_bot' 
51: nopasswd true 
52: commands [ 
53:  '/sbin/reboot' 
54: ] 
55: end 

還有什麼需要做的,我失蹤了?我做錯了什麼?

+0

你正在運行哪種測試?如果chefspec你必須在你的spec_helper中包含chefspec/berkshelf。請參閱chefspec – Tensibai

+0

的[文檔](https://github.com/sethvargo/chefspec#berkshelf)實際上並沒有運行測試持久性,只是測試一個配方。我想在運行之前在廚房裏運行它。但配方拒絕運行,因爲你可以在我的問題中看到 –

+1

在廚房裏跑步正在運行功能測試。順便說一句,廚房應該使用berkshelf來解決依賴關係,你確實在你的食譜'metadata.rb'中添加了一個'depends'sudo''嗎? (如果不是,你也有,廚師客戶端不會讀Berksfile,這就是元數據選項的原因,從元數據文件中獲取依賴關係,在下面指定它們是當你希望使用不同的源時頂部默認) – Tensibai

回答

1

您不應該需要將其放入Berksfile中,這僅用於在需要從非標準位置加載時進行覆蓋。在metadata.rb中添加sudo cookbook作爲您自己的烹飪書的依賴,然後Berks會看到它,更重要的是廚師也會看到它(廚師不瞭解Berksfiles),並確保加載自定義資源。