首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rspec找不到来自木偶的要求包,我可以跳过“定义类型”中的“要求”吗?

Rspec找不到来自木偶的要求包,我可以跳过“定义类型”中的“要求”吗?
EN

Stack Overflow用户
提问于 2020-12-05 02:45:33
回答 1查看 235关注 0票数 0

我正在尝试编写rspec测试傀儡代码。在我的傀儡中,我调用了一个定义类型,它不是这个类的一部分。(先前定义)在分支测试中可以找到傀儡代码,但是rspec无法通过"reuire“。木偶:

代码语言:javascript
复制
$gluster_path = '/usr/libexec/zabbix-gluster'
  $gluster_discovery_script = "${gluster_path}/gstatus_discovery.py"
  $user_param_lines = [
    "UserParameter=gluster_volume_info[*],${gluster_discovery_script} \$1 \$2\n",
    "UserParameter=gluster_storage_info[*],${gluster_discovery_script} \$1\n",
    "UserParameter=gluster_volume_name.discovery,${gluster_discovery_script}\n",
  ]
...
zabbix::agent::userparam { 'glusterfs':
    content => join($user_param_lines, ''),
  }

Rspec:

代码语言:javascript
复制
...
 it {
    is_expected.to contain_zabbix__agent__userparam('cnvr-zabbix-gluster')
  }

定义类型:

代码语言:javascript
复制
define zabbix::agent::userparam($content = undef, $source = undef) {
...
  file { "/etc/zabbix/zabbix_agentd.d/userparameter_${title}.conf":
...
    require => [
        Package['zabbix-agent'],
        File['zabbix_agentd_dir'],
      ],
    content => $content,
    source  => $_source,
    notify  => Service['zabbix-agent'],
  }

zabbix代理已从其他模块安装。但是错误不断地提示:

错误:在节点上找不到资源‘Packagezabbix代理’在参数'require‘(文件: /home/edwu/puppet/modules/zabbix/manifests/agent/userparam.pp,行: 17)

有什么方法可以跳过rspec中的这个需求检查吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-05 06:21:48

有什么方法可以跳过rspec中的这个需求检查吗?

RSpec测试中报告的错误是目录编译错误。它绝不是特定于RSpec的。实际上,它指出了zabbix::agent::userparam中的一个真正的弱点,以及被测试的类中可能存在的缺陷。这正是编写RSpec测试的原因之一!

问题是zabbix::agent::userparam并不是独立存在的。它需要声明Package['zabbix-agent'],但它既不声明它自己,也不声明一个这样做的类。被测试的类继承了这个弱点,尽管离问题中心越远,你就越倾向于称它为bug,而不是简单的弱点。您的类也可以声明所需的其他类,而且它可能会这样做。

您不能让目录构建器让对不存在的资源的需求不被注意到,您也不应该这样做,因为这是您希望您的测试向您展示的事情之一。但是,如果希望允许类中的此弱点持续存在,则可以使用一种RSpec预条件使RSpec为您声明适当的类,从而实际满足需求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65153278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档