【问题标题】:Why does rspec-puppet not find my class?为什么 rspec-puppet 找不到我的班级?
【发布时间】:2016-06-11 09:00:03
【问题描述】:

我创建了一个 Puppet 模块来安装 AWS Cloudwatch 监控脚本并进行设置。 Puppet 模块可用here

当我运行 rake spec 时,我的测试套件失败:

rspec ./spec/classes/init_spec.rb:4 # cloudwatch with default values for all parameters should contain Class[cloudwatch]

我这辈子都无法弄清楚为什么这个测试失败了。我该如何解决?

我尝试在 repo 的根目录中创建一个.fixtures/yml,内容如下:

fixtures:
  symlinks:
    cloudwatch: "../../../../manifests"

fixtures:
  symlinks:
    cloudwatch: "#{source_dir}"

但没有骰子。

我也尝试使用符号链接链接到清单目录:https://github.com/MasterRoot24/puppet-cloudwatch/commit/932970aab085984f2cda44fba841c3bde20f7a2b

【问题讨论】:

    标签: puppet rspec-puppet


    【解决方案1】:

    您最初的问题是缺少.fixtures.yml 文件,该文件需要以下内容:

    fixtures:
      symlinks:
        cloudwatch: "#{source_dir}"
    

    puppetlabs_spec_helper README 中所述。

    如我刚刚提出的 PR here 所示,需要进行其他更改才能通过测试。

    回复您编辑的问题,该问题讨论了一个不在您链接的代码中的夹具文件,我认为您的夹具在语法上无效;我不相信您可以指定多个 fixtures 块。不管怎样,看看我的 PR。

    【讨论】:

    • 他还可以使用 puppet-check,它会自动执行此操作,并且正在被主要公司引入并被高级用户用作 puppetlabs_spec_helper 的替代品。披露:我是作者。
    • 我的理解是这里的符号链接可以满足这一点:github.com/MasterRoot24/puppet-cloudwatch/blob/develop/spec/… 我错了吗?代码 sn-p 准备好逐字复制了吗,还是我需要将 source_dir 更改为什么?
    • 我刚刚尝试了您的建议,但它仍然不起作用 - 请在我的问题末尾查看更新
    • @MasterRoot24 我实际上测试了你的代码,所以显然你的符号链接不起作用。我会发送一个拉取请求。
    • 我刚刚在修复测试后提出了 PR。还需要进行一些其他更改。
    猜你喜欢
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    相关资源
    最近更新 更多