首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rspec-puppet中的动态值赋值

rspec-puppet中的动态值赋值
EN

Stack Overflow用户
提问于 2015-07-01 20:51:31
回答 1查看 180关注 0票数 0

rspec-puppet中有没有为参数动态赋值的选项?

下面是我的示例rspec-puppet测试用例。现在,我已经硬编码了所有的FQDN和主机名详细信息。

是否可以动态分配这些值?

代码语言:javascript
复制
let :facts do
  {
   :fqdn      => 'puppet.example.com',
   :hostname  => 'puppet',
   :ipaddress => 'xxx.yy.ee.zzz'
 }
end

it do
  should contain_host('puppet.example.com').with(
    'ensure'       => 'present',
    'host_aliases' => 'puppet',
    'ip'           => 'xxx.yy.ee.zzz'
    )
end
EN

回答 1

Stack Overflow用户

发布于 2015-07-07 21:05:33

是的,因为rspec本身就是ruby代码本身,所以你可以这样做:

代码语言:javascript
复制
['1.1.1.1','2.2.2.2'].each do | ip_address |

  context "with an IP Address of #{ip_address}" do
    let :facts do
      {
        :fqdn      => 'puppet.example.com',
        :hostname  => 'puppet',
        :ipaddress => ip_address,
      }
    end

    it do
      is_expected.to contain_host('puppet.example.com').with(
        'ensure'       => 'present',
        'host_aliases' => 'puppet',
        'ip'           => ip_address,
        )
    end
  end
end

您也可以使用shared_examplesshared_contexts执行类似的操作

代码语言:javascript
复制
shared_examples :compile, :compile => true do
  it { should compile.with_all_deps }
end

shared_context 'redhat_facts' do |operatingsystem, operatingsystemrelease|
  let(:facts) { super().merge({
      :osfamily => "RedHat",
      :operatingsystem => operatingsystem,
      :operatingsystemrelease => operatingsystemrelease
  }) }
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31161849

复制
相关文章

相似问题

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