Chef infra 如何使用chefspec包含非厨师资源

Chef infra 如何使用chefspec包含非厨师资源,chef-infra,chefspec,Chef Infra,Chefspec,我想为其中一个配方编写chefspec,其中包含创建jenkins用户的代码,如下所示 jenkins_user 'test1' do full_name 'test user' email 'test1@test.com' password 'testp' end 这里的“jenkins_用户”不是厨师资源。如何编写chefspec来对配方运行单元测试 或者,如果我们有任何其他方法来运行配方的单元测试,请告诉我 当您

我想为其中一个配方编写chefspec,其中包含创建jenkins用户的代码,如下所示

    jenkins_user 'test1' do
      full_name   'test user'
      email     'test1@test.com'
      password      'testp' 
    end
这里的“jenkins_用户”不是厨师资源。如何编写chefspec来对配方运行单元测试


或者,如果我们有任何其他方法来运行配方的单元测试,请告诉我

当您包含在另一本食谱中定义的资源时,如果食谱作者编写了
库/matchers.rb
文件,那么您可以在ChefSpec单元测试中调用这些matcher

例如,如果您正在使用,您将看到已找到一个
matchers.rb
文件。因此,您应该能够创建如下的单元测试:

it 'should create the jenkins user' do
  expect(chef_run).to create_jenkins_user('test1')
end
如果您要包含未定义匹配器的食谱中的资源,那么您必须编写自己的匹配器,具体操作请参见Tensibai链接的文档。

您可以阅读有关的文档