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

how do i include non chef resources using chefspec

我想为其中一个食谱编写 chefspec,该食谱具有创建 jenkins 用户的代码,如下所示。

    jenkins_user 'test1' do
      full_name   'test user'
      email     'test1@test.com'
      password      'testp' 
    end

这里"jenkins_user"不是厨师资源。我如何为 运行 食谱的单元测试编写 chefspec。

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

当您包含在另一本说明书中定义的资源时,如果说明书作者编写了 libraries/matchers.rb 文件,那么您可以在 ChefSpec 单元测试中调用这些匹配器。

例如,如果您使用 Jenkins Community Cookbook you will see there is already a matchers.rb file located here。因此,您应该能够像这样创建单元测试:

it 'should create the jenkins user' do
  expect(chef_run).to create_jenkins_user('test1')
end

如果您要包含来自未定义匹配器的食谱中的资源,则您将必须编写自己的匹配器,详细信息请参见 Tensibai 链接到的文档。