我创建了一个厨师资源,它“扩展”了厨师的部署资源。基本思想是检查是否存在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,或者仅部分模拟文件系统?