gpt4 book ai didi

ruby - 未定义的局部变量或方法 - 使用 Beaker 测试 Puppet 模块

转载 作者:行者123 更新时间:2023-11-28 20:37:59 24 4
gpt4 key购买 nike

我对这一切都很陌生。我正在尝试使用 Beaker 测试 puppet 模块。我不断得到这个:

 NoMethodError: undefined method `describe' for 
#Beaker::TestCase:0x007fd6f95e6460
/Users/user1/beaker/Puppet/puppet-files/spec/classes/unit_spec.rb:3
/Users/user1/.rvm/gems/ruby-2.2.7/gems/beaker-3.24.0/bin/beaker:9
/Users/user1/.rvm/gems/ruby-2.2.7/bin/ruby_executable_hooks:15
/Users/user1/.rvm/gems/ruby-2.2.7/bin/ruby_executable_hooks:15.
This is the command that I'm running - "beaker --hosts myhost.yaml --pre-suite spec".

我的 unit_spec.rb 包含这个:

  require 'puppetlabs_spec_helper/rake_tasks'

describe 'application' do
context 'applied to supported operating system' do
on_supported_os.each do |os, facts|
context "#{os}" do
let(:facts) do
facts
end

context "without any parameters" do
let(:params) {{ }}

it { is_expected.to compile.with_all_deps }
it { is_expected.to contain_class('files') }
end
end
end
end


context 'applied to unsupported operating system' do
describe 'ubuntu-14-x86_64' do
let(:facts) {{
:osfamily => 'Debian',
:operatingsystem => 'Ubuntu'
}}

it { is_expected.to raise_error(Puppet::Error, /Ubuntu not supported/) }
end
end
end

任何帮助将不胜感激!顺便说一句,我正在使用“puppetlabs_spec_helper/rake_tasks”,因为当我刚刚使用“spec_helper”时,它给了我一个错误,即使它在那里也无法“加载这样的文件”。

另外,我也试过

RSpec.Describe

这也没有解决问题。我收到以下错误 -

 NameError: undefined local variable or method `on_supported_os' for #Class:0x007f92a61d5e58

我意识到这可能是一个 RSpec Puppet 问题,因为这个模块之前是通过 puppet RSpec 测试的,但是现在我正在尝试使用 Beaker 进行测试,但不太确定如何完全实现它!

最佳答案

您混淆了基于单元的测试和基于 VM 的测试。

  • rspec-puppet (和 rspec-puppet-facts ' on_supported_os)用于基于目录的单元测试。它们不需要 VM,并且可以为您提供有关模块的语法和逻辑的快速反馈。

  • beaker , 以及推荐的 beaker-rspec附加组件,提供完整的端到端测试功能,使用实际 VM 并测试完整的堆栈部署(如您的测试中所定义)。

现有模块的主要入口点通常是 rake。使用 rake -T 查看模块中现有的 rake 任务。在一个写得很好的模块中,它应该有 rspec-puppet(通常称为 spec)和 beaker(通常称为 beaker,或 acceptance)的任务>).

如果它是您自己的模块,您可能还想查看新的 Puppet Development Kit在单个安装程序中获取最重要的工具。

关于ruby - 未定义的局部变量或方法 - 使用 Beaker 测试 Puppet 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46486634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com