![puppet rspec 没有这样的文件可以加载——rspec-puppet(LoadError)](https://linux22.com/image/971223/puppet%20rspec%20%E6%B2%A1%E6%9C%89%E8%BF%99%E6%A0%B7%E7%9A%84%E6%96%87%E4%BB%B6%E5%8F%AF%E4%BB%A5%E5%8A%A0%E8%BD%BD%E2%80%94%E2%80%94rspec-puppet%EF%BC%88LoadError%EF%BC%89.png)
我之前完全没有使用过 ruby。我对 ruby 不感兴趣(因此对 rails 等一无所知),但我使用 puppet 来管理一组服务器。我编写了一些模块,rspec-puppet 系统看起来非常有用。
但是,我无法让 rspec-puppet 工作
我正在使用 Ubuntu LTS 10.04
我已经按照其网页上的说明安装了 puppet rspec
我实际上做了什么
apt-get install rubygems # (installs 1.8)
gem install rspec-expectations
gem install rspec-puppet
我还安装了 librspec-ruby1.8
然后我在已经创建的 puppet 模块目录中运行了 rspec-puppet-init(这是一个有效的 puppet 模块)
我按照教程中的定义创建了一个文件
$ more spec/defines/rule_spec.rb
require 'spec_helper'
describe 'vanusers::rule' do
let(:title) { 't1' }
it { should contain_class('vanusers::JamieA') }
end
但当我尝试运行它时,出现了一个神秘的依赖问题
$ spec spec/defines/rule_spec.rb
/home/jamie/git/puppet/modules/vanusers/spec/spec_helper.rb:1:in `require': no such file to load -- rspec-puppet (LoadError)
from /home/jamie/git/puppet/modules/vanusers/spec/spec_helper.rb:1
from ./spec/defines/rule_spec.rb:1:in `require'
from ./spec/defines/rule_spec.rb:1
from /usr/lib/ruby/1.8/spec/runner/example_group_runner.rb:15:in `load'
from /usr/lib/ruby/1.8/spec/runner/example_group_runner.rb:15:in `load_files'
from /usr/lib/ruby/1.8/spec/runner/example_group_runner.rb:14:in `each'
from /usr/lib/ruby/1.8/spec/runner/example_group_runner.rb:14:in `load_files'
from /usr/lib/ruby/1.8/spec/runner/options.rb:132:in `run_examples'
from /usr/lib/ruby/1.8/spec/runner/command_line.rb:9:in `run'
from /usr/bin/spec:3
这是我最终想到的解决方案:
apt-get install rubygems
gem install rspec-expectations rspec-puppet puppet-lint puppetlabs_spec_helper
所以你的路径会拾取宝石
export PATH=/var/lib/gems/1.8/bin:$PATH
cd 进入模块并
rm spec/spec_helper.rb
rspec-puppet-init
用以下文件替换 Rakefile
require 'rake'
require 'rspec/core/rake_task'
require 'puppetlabs_spec_helper/rake_tasks'
然后使用“rake spec”运行测试或使用“rake lint”检查文件
http://sysadvent.blogspot.co.uk/2013/12/day-22-getting-started-testing-your.html 是一个很好的信息来源
答案1
我遇到了同样的问题,解决方法是将以下内容放入我的spec_helper.rb
文件中:
require 'rubygems'
在文件顶部。然后我就能$ rake rspec
成功运行了。