2017-03-08 81 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