【发布时间】:2015-07-31 16:38:52
【问题描述】:
我创建了一个 Chef 资源,它“扩展”了 chef 的部署资源。基本思想是检查要部署的源中是否存在类似于机制deploy/after_restart.rb 的文件deploy/crontab,并从中创建cronjobs。
虽然此机制按应有的方式工作(请参阅https://github.com/fh/easybib-cookbooks/blob/t/cron-tests/easybib/providers/deploy.rb#L11-L14),但我正在努力进行基于 ChefSpec 的测试。我目前正在尝试使用 FakeFS 创建模拟 - 但是当我在 Chef 运行之前模拟文件系统时,运行失败,因为没有找到食谱,因为它们在模拟的文件系统中不存在。如果我不这样做,则显然找不到模拟文件deploy/crontab,因此提供者不会做任何事情。我目前的做法是在 chef_run 中直接在 runner.converge(described_recipe) 之前触发 FakeFS.activate!。
我很想听听一些关于如何在此处进行适当测试的建议:是否有可能仅在部署资源运行之前直接启用 FakeFS,或者仅部分模拟文件系统?
【问题讨论】:
标签: rspec chef-infra chefspec