【发布时间】:2018-09-04 04:58:36
【问题描述】:
在我的 .rb 文件中,我正在尝试针对这行代码编写规范测试(我没有编写此代码):
execute "lvcreate -L #{node['ami_base']['opt']} -n opt vgpool"
在我的 _spec.rb 文件中,对于这段特定的代码,我的测试如下所示:
it 'executes lvcreate... -n opt vgpool' do
expect(chef_run).to run_execute("lvcreate -L #{node['ami_base']['opt']} -n opt vgpool")
end
当我尝试时:
chef exec rspec....._spec.rb
我收到此错误:
1) ami_base::lvm_drives executes lvcreate... -n opt vgpool
Failure/Error: expect(chef_run).to run_execute("lvcreate -L #{node['ami_base']['opt']} -n opt vgpool")
NameError:
undefined local variable or method `node' for #<RSpec::ExampleGroups::AmiBaseLvmDrives:0x0000000005752268>
# ./spec/unit/recipes/lvm_drives_spec.rb:33:in `block (2 levels) in <top (required)>'
我针对execute 编写了许多测试,并且都成功了。我需要修改规范帮助文件吗?我觉得它是一个命令行输入并创建了一个命令应该不是 run_execute 的卷,但我在搜索任何有效的东西时空手而归。
【问题讨论】:
-
请将错误消息的文本作为文本发布,而不是作为文本照片发布。这是一个编程网站,而不是摄影网站。我们想阅读、复制和粘贴错误,而不是批评它对颜色和透视的使用。 (尽管如果我可以提出批评:黑底红字在我的屏幕上完全不可读。)
-
会的。第一次在网站上发帖,所以我正在学习它是如何工作的。我会整理文字
-
已添加错误消息文本。
标签: ruby ubuntu rspec chef-infra chefspec