我想用 rspec-puppet 和 beaker-rspec 测试我的控制存储库(其中包含配置文件和角色)。我仍然在使用烧杯-rspec 时遇到一些问题:
- 我想单独测试配置文件,例如
profile::postgresql
查看是否已安装数据库。 - 然后我还想单独测试我的角色,例如
role::fileserver
或role::webserver
。
我已经设置了 beaker-rspec 并且它可以工作,但这需要相当长的时间,因为它会一个接一个地应用所有配置文件。我在其中看到以下问题:
- 如果有太多的配置文件被应用到 Vagrant VM,它会被污染(来自另一个运行的剩余包、文件等,因此测试不再具有代表性)
- 一些配置文件没有任何共同点,甚至可能与它们相矛盾(例如 nginx 与 apache;它们永远不会扮演一个角色,但都在 control-repo 中定义)。
我宁愿做的是:
- beaker-rspec 应该检查已经定义了哪些角色,然后为每个角色启动一个单独的虚拟机。
- 这些应该串行或(更好)并行完成。
- 我怎样才能减少每次运行的时间,特别是如果有一个相当大的具有多个角色和不同操作系统版本等的 Puppet 设置。也许选择测试类型(“仅角色测试”或“仅配置文件测试”)。
如果 beaker-rspec 测试新 VM 中的每个配置文件也可以(但我想将测试切换为其他用途)。
我怎样才能做到这一点?谢谢 :)