问题标签 [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.
chefspec - 在 ChefSpec 中模拟文件内容
我有一本厨师食谱,它将 ubutunu 用户(正在使用的亚马逊 AMI 的默认用户)的授权密钥文件复制到新创建的用户。
我正在尝试chefspec,我想测试一下。我想模拟 ubuntu_public_key_file 及其内容的存在。对此的任何反馈表示赞赏!
chef-infra - 在 chefspec 中模拟外部供应商
我正在尝试使用 ChefSpec 在 Chef 中测试提供程序。在这个提供者中,我正在调用另一个外部提供者,我想模拟/禁用它,以便只执行我的提供者,而不是外部提供者。
我的提供者基本上是这样的:
我想我可以通过使用Chef::Provider::LWRPBase.build_from_file
一个空的提供者来提供外部提供者模拟来模拟这个。虽然显然正在生成资源和提供者,但它显然没有在应有的位置注册,因为测试仍然抱怨缺少外部提供者。
任何想法、提示或示例都会很棒——我发现的所有提供程序测试示例都使用更简单且自包含的提供程序,因此它们在这里并没有真正的帮助。
如果需要更多上下文,可以在此处找到有问题的提供者:https ://github.com/fh/easybib-cookbooks/blob/0a9f7935371d6dc89796e83041cf5092bd96167a/easybib/providers/deploy.rb和(蹩脚,非工作,工作我的测试的进度版本)在这里:https ://github.com/fh/easybib-cookbooks/blob/0a9f7935371d6dc89796e83041cf5092bd96167a/easybib/spec/easybib_deploy_spec.rb
编辑:基本上,这里的问题不是如何用存根“覆盖”我的食谱中的现有提供者,而是如何在 ChefSpec 运行期间以编程方式创建和提供提供者,这在我正在测试的食谱中不存在。
unit-testing - 如何使用 ChefSpec 测试我的 LWRP?
我创建了我的自定义 LWRP,但是当我运行ChefSpec单元测试时。它不知道我的 LWRP 操作。
这是我的资源:
这是我的提供者:
这是我的 ChefSpec 单元测试:
这是控制台输出:
我如何对使用 LWRP 操作运行测试的 ChefSpec 说?
rspec - 在 ChefSpec 运行期间模拟文件
我创建了一个厨师资源,它“扩展”了厨师的部署资源。基本思想是检查是否存在deploy/crontab
类似于deploy/after_restart.rb
要部署的源中的机制的文件,并从中创建 cronjobs。
虽然这种机制可以正常工作(请参阅https://github.com/fh/easybib-cookbooks/blob/t/cron-tests/easybib/providers/deploy.rb#L11-L14),但我正在努力解决基于 ChefSpec 的测试。我目前正在尝试使用创建FakeFS
模拟 - 但是当我在 Chef 运行之前模拟文件系统时,运行失败,因为没有找到食谱,因为它们在模拟的文件系统中不存在。如果我不deploy/crontab
这样做,则显然找不到模拟文件,因此提供者不会做任何事情。我目前的做法是在chef_runFakeFS.activate!
之前直接触发。runner.converge(described_recipe)
我很想听听一些关于如何在这里进行适当测试的建议:是否有可能仅在部署资源运行之前直接启用 FakeFS,或者仅部分模拟文件系统?
chef-infra - chefspec 中多个食谱路径的问题
我的一些食谱在cookbooks-org 文件夹中,有些在cookbooks 文件夹中。当我尝试运行规范时,我收到一条错误消息,提示找不到其中一本食谱的食谱。
在以下情况下,cookbook-org 中存在cookbook,cookbooks 文件夹中存在cookbook1,我得到了cookbook1 的Chef::Exceptions::CookbookNotFound
chef-infra - ChefSpec 和测试厨房
我正在调查是否可以将 ChefSpec 报告(具有覆盖范围)和 Test Kitchen 报告生成为 junit 格式,以便 Jenkins 对其进行解析以发布结果。或者,如果有其他友好的方式,这些结果可以由 Jenkins 发布。
谢谢。
编辑 1:抱歉,如果我解释不正确,但我知道 chefspec 用于单元测试,而测试厨房用于集成测试。我在这个问题中的意思是如何以Jenkins可以解析的格式(例如junit格式)获取测试结果报告(对于chefspec和另一个手动测试厨房)。
search - 无法为chefspec存根partial_search
我正在编写一本运行部分搜索以在其他节点上查找属性的食谱。我的 chefspec 测试因错误而失败ERROR: Connection refused connecting to localhost:443
。搜索实例化如下:
我不正确地存根吗?
ruby - ChefSpec 和 Ark 资源测试
我开始使用 chefspec 进行测试,我认为这是一个非常简单可靠的测试框架。但是我在方舟资源测试方面遇到了一些问题。我有这个 default_spec.rb
这是我想要为我的食谱做的测试df-maven::default
:
但是当我运行测试时出现错误undefined local variable or method 'put_ark'
。
然后我将它添加到我的 spec_helper 中(因为我认为匹配器应该做到这一点):
但我得到一个undefined method resources' for #<ChefSpec::Runner:0x40a2650>
错误
在实际实践中,它做了需要做的事情,但是我被要求开始为我所有的食谱做测试,所以我决定从我的 df-maven 食谱开始。
无论如何,我认为我必须定义匹配器,但我不明白如何去做并使我的测试通过。