首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Test Kitchen中使用类似的“套件”来实现代码重用?

在Test Kitchen中使用类似的“套件”来实现代码重用?
EN

Stack Overflow用户
提问于 2014-04-25 04:39:18
回答 2查看 669关注 0票数 3

如何重用除maven之外的所有attributes部分

代码语言:javascript
运行
复制
     suites:
       - name: DEV

     attributes: 
          'ant': &ant
            'version': '1.9.3'
            'home': '/my/path/ant'
          'maven':  
            'version': 3
            'm2_home': '/my/path/maven'
            '3': 
              'version': '3.2.1'
              'maven_rc': 
            'opts': ''

对于我的TESTING实例,我想继承上面所有的属性,除了maven,我想覆盖它(不同的版本):

代码语言:javascript
运行
复制
    - name: TESTING

     attributes:  
          <<: *ant        # re-use ant as it's the same configuration
          'maven':        # different version for TESTING
            'version': 3
            'm2_home': '/my/path/maven'
            '3': 
              'version': '3.0.5'
              'maven_rc': 
            'opts': ''
EN

回答 2

Stack Overflow用户

发布于 2014-08-07 05:18:04

您将希望在该平台下编辑您的.kitchen.yml,以获得您希望成为通用属性的任何属性。如果您想要更改它们,那么只需将它们放在suites部分下,并使用不同的值。

代码语言:javascript
运行
复制
platforms:
  - name: ubuntu-12.04
    driver_config:
      box: ubuntu-12.04
    run_list:
      - recipe[apt::default]
    attributes:
      ant: &ant
        version: '1.9.3'
        home: '/my/path/ant'
      maven:
        version: 3
        m2_home: '/my/path/maven'
        3:
          version: '3.2.1'
          maven_rc:
        opts: ''

suites:
  - name: default
    run_list:
      - recipe[cookbook::default]
    attributes:

  - name: testing
    run_list:
      - recipe[cookbook::default]
    attributes:
      maven:
        3:
          version: '3.0.5'

然后,您可以通过调用node['maven']['version']来访问配方中的属性,以检索当前值,该值将根据suites部分中是否被覆盖而更改。

票数 2
EN

Stack Overflow用户

发布于 2014-06-20 09:40:35

值得注意的是,您可以在kitchen.yml中使用Erb语法

<% my_attrs = {'foo' => 'bar'} %> suites: - name: one attributes: <%= my_attrs.to_yaml %> - name: two attributes: <%= my_attrs.merge('baz' => 'whatever').to_yaml %>

过度使用它可能很快导致无法读取的配置,但在适度的情况下,它可能是有用的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23279320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档