问题标签 [chefspec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
771 浏览

chef-infra - 在 chefSpec 中访问环境变量

我正在尝试使用 ChefSpec 为我的食谱编写一些测试。

这是我要测试的一段代码:

这里的值node[:storm_work_gen][:jar_name]来自环境文件。我的 env 文件的内容是:

我的规格看起来像这样:

规范失败并显示消息:

我想知道当 chefSpec 运行时如何从 env 文件中获取 node[:storm_work_gen][:jar_name]

0 投票
1 回答
189 浏览

ruby - 在任何存储库中都找不到有效的 gem 'fauxhai' (~> 3.2)

我正在尝试在食谱中安装 chefspec(4.6.1) 和 fauxhai(3.2.0)。我面临以下问题“在任何存储库中都找不到有效的 gem 'fauxhai' (~> 3.2) ”。我已经在其他食谱中安装了 chefspec4.4.0 和 fauxhai2.3.0。帮我解决以下问题。

0 投票
1 回答
243 浏览

testing - 使用 Chefspec 测试 Kitchen 集成测试:使用依赖项测试食谱

我了解测试厨房遵循顺序

创建节点 > 收敛说明书 > 运行测试

创建假设强外部依赖性的测试的最佳实践是什么?

一个例子是 Kafka 食谱https://supermarket.chef.io/cookbooks/kafka。您可能知道,Kafka 是一个依赖于 Zookeeper 的消息代理应用程序,Zookeeper 是一个单独的应用程序,即消息中心。

在适当分离关注点之后,Kafka 食谱不包括 Zookeeper——它可以安装在同一主机或不同的机器上。

然而,为了简单验证 Kafka 是否正常工作(即创建简单消息),您需要运行 Zookeeper 服务器。

例如,测试可以在安装后运行这三个命令

使用 Chefspec,有没有办法存根这个外部服务器(上面的 localhost:2181 部分)?

谢谢!

0 投票
1 回答
494 浏览

arrays - 尝试安装多窗口功能时 Chefspec 无法正常工作

我有一个为 IIS 安装组件的方法。windows_feature由于有很多,它是一个输入安装块的数组。像这样:

我关联的 Chefspec 块具有相同的数组内容馈入其中。块是这样的:

当我在食谱上运行 Chefspec 时,出现错误:

在错误中,它将 -Featurename 显示为“WebServerRole”,它为每一行(30 个条目)执行此操作。表明它只是在那个阶段迭代第一个项目。再加上我肯定在使用 stub_command 块这一事实,我不确定它为什么会出错。有人有什么想法吗?

0 投票
1 回答
825 浏览

ruby - 在配方中使用带有 registry_key 的库模块方法时出现 Chef NoMethodError

我收到错误

收敛厨师食谱时。

这是来自library/hash_operations.rb的代码的简短版本:

这是recipes/default.rb

我猜主要问题来自于尝试在模块内的方法内使用 Chef 资源registry_key,而模块内的方法又从配方中调用。

如果我不使用模块,我有一个工作版本,但如果我想用ChefSpec测试代码,我需要一个模块,正如几篇文章指出的那样(比如这篇文章:Stubbing library class methods in ChefSpec

上面提到的链接是我在模块内部使用end unless defined?(HashOperations)的原因。

我试过使用包含语句,它可以在评论中看到,或者在食谱的第一行中,正如一些 StackOverflow 帖子所建议的那样,没有运气。一篇文章讨论了 LWRP 的使用,但我真的不认为这里是这种情况,因为代码与这个食谱严格相关,不会在其他食谱中使用。

注意:我正在使用self. 为了使def彼此可见,否则我会收到有关generate_reg_keys_for_item_key不可用的错误。

因此,考虑到我花了很多时间寻找解决方案,包括 StackOverflow 建议的解决方案,问题是:解决此错误的最佳方法是什么,并有一个可以用ChefSpec测试的简单解决方案(虽然我并不完全排除 LWRP),我应该包括什么和如何使registry_key在收敛操作中可见?

0 投票
2 回答
442 浏览

chef-infra - Chefspec 与 Hashicorp Vault

我正在尝试使用 ChefSpec 来测试 Chef 和 Hashicorp Vault 的实现

食谱

测试

错误

如何存根 Vault 变量?这是 Hashicorp Vault,而不是 chef-Vault。

0 投票
1 回答
152 浏览

ruby - 在 ChefSpec 上模拟内核版本

我正在尝试测试linux-image-extra-#{node['kernel']['release']}将由我的食谱安装,并且我正在尝试#{node['kernel']['release']使用 Fauxhai 进行模拟。到目前为止,我有;

不幸的是,它没有获取该属性,并且正在产生一个显示此错误的错误;

失败/错误:expect(chef_run).to install_package("linux-image-extra-#{node['kernel']['release']}-generic")

0 投票
1 回答
414 浏览

chef-infra - 您如何使用 ChefSpec 单独对自定义厨师资源进行单元测试?

所以我正在尝试创建一个可重用的自定义资源库。视频解释了如何做到这一点,但它没有解决单独测试资源的问题。

我知道您可以通过配方和收敛来测试资源,但我不想编写新配方只是为了测试我的资源。

我希望有某种方法可以执行具有属性的自定义资源,而无需执行以下操作:

如果你能说类似说的话

那真的很酷。

0 投票
3 回答
426 浏览

ruby - ChefSpec 运行速度超慢

我正在关注这个基本教程,似乎这些测试应该在最多 2 秒内运行,但我得到5 次测试的41 秒

我用 ChefSpec 运行--profile,这就是结果

8 个示例,0 次失败

0 投票
1 回答
389 浏览

rspec - 在 Chef 单元/rspec 测试中模拟 Chef::ReservedNames::Win32::Version.new?[继续]

假设,我有以下食谱:

install_iis:

include_recipe如果方法正在运行(块中的所有内容) ,我希望能够使用 chefspec 进行测试if


看完后:

标准 RSpec 如此allow(Chef::ReservedNames::Win32::Version).to receive(:new).and_return(double('fake version'))或类似地适用。

来源: Chef unit/rspec 测试中的 Mock Chef::ReservedNames::Win32::Version.new?

我试图修改我install_iis_spec的来模拟Chef::ReservedNames::Win32::Version. 我的规范文件现在如下所示:

install_iis_spec:

1假设该should_include_recipe方法按预期工作。

2看到后double('fake version'),我认为我应该把价值'6.3'

虽然,当我运行时,chef exec rspec spec/unit/recipes/install_iis_spec.rb我收到以下错误:

控制台错误:

参考: cookbooks/iis/libraries/helper.rb:44:in 'older_than_windows2008r2?' .


double('fake version')为了定位,我必须输入什么值Windows Server 2012R2

有支持的版本列表吗?