2017-03-08 74 views
1

我需要測試廚師食譜。這是使用數據包。測試廚師數據包

kitchen正在使用chef_zero來配置機器。所以,它無法讓我的數據包託管在服務器上。然後它告訴我,我的數據包不可用。

我怎樣才能得到一個數據包在測試廚房可用?

我已經創建了一個aws.json文件上test\integration\data_bags

{ 
    "id": "dev", 
    "aws_access_key_id": "----", 
    "aws_secret_access_key": "----" 
} 

當我執行我的收斂我得到這個消息:

INFO: HTTP Request Returned 404 Not Found: Object not found: chefzero://localhost:8889/data/aws/dev

ERROR: Failed to load data bag item: "aws" "dev"

.kitchen.yml文件內容:

--- 
driver: 
    name: vagrant 

provisioner: 
    name: chef_zero 
    always_update_cookbooks: true 

verifier: 
    name: inspec 

platforms: 
    - name: ubuntu-16.04 
    - name: centos-7.2 

suites: 
    - name: default 
    data_bags_path: "test/integration/data_bags" 
    run_list: 
     - recipe[living-development::default] 
    verifier: 
     inspec_tests: 
     - test/smoke/default 
    attributes: 

版本:

$ vagrant -v 
1.9.2 

$ chef -v 
Chef Development Kit Version: 1.2.22 
chef-client version: 12.18.31 
delivery version: master (0b746cafed65a9ea1a79de3cc546e7922de9187c) 
berks version: 2017-03-08T11:19:04.643719 5824] 2017-03-08T11:19:04.643719 5824] 2017-03-08T11:19:04.643719 5824] 2017-03-08T11:19:04.643719 5824] 2017-03-08T11:19:04.700789 5824] 2017-03-08T11:19:04.700789 5824] 5.6.0 
kitchen version: 1.15.0 

回答

3

服務器錯誤指示稱爲aws/dev正在尋找的東西(其中aws是數據包的名稱和dev是數據包內的物品的名稱)。

所以你必須把你的JSON文件放在test/integration/data_bags/aws/dev.json之下。

Btw。您不必手動指定data_bags_path,因爲測試廚房將在此路徑上搜索物品。

+0

謝謝@StephenKing。據我所知,你是在暗示我刪除'data_bags_path'?我已經測試過了,沒有指定'data_bags_path',並且它保持失敗... – Jordi

+0

指定默認值就不需要了:)你可以看看我們的回購庫,就像[this one](https://github.com)/TYPO3-食譜/站點proxytypo3org)。但是你真正的問題是你需要一個名爲'aws'的文件夾和一個名爲'dev.json'的文件。不是名爲'aws.json'的文件。 – StephenKing