2017-09-29 5 views
1

私はこれについて全く新しいです。私はビーカーを使って人形モジュールをテストしようとしています。私はこれを得続ける:未定義のローカル変数またはメソッド - ビーカーを使用したパペットモジュールのテスト

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 

すべてのヘルプははるかに高く評価されるだろう! Btw、私は 'puppetlabs_spec_helper/rake_tasks'を使用しています。なぜなら、私が 'spec_helper'を使用したときに、そこにあっても「このようなファイルをロードできませんでした」というエラーが表示されたからです。

はまた、私はどちらかの問題を解決しませんでした

RSpec.Describe 

をやって試してみました。私は次のエラーを取得する -

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

私はしかし、今、私がどのように完全にかなり確実ビーカーを使ってテストしようとしていない午前、このモジュールは以前に人形RSpecの通過試験したとして、これは、RSpecの人形の問題であるかもしれないことを実現します達成する!

+0

'require 'rspec''を追加してみてください。 –

+0

私はそれを試しましたが、まだそれは私に与えています - 'NameError:未定義のローカル変数またはメソッド" on_supported_os "for #Class:0x007f92a61d5e58' –

+0

' on_supported_os'はどこに定義されていますか?あなたは上記のコードで私たちを示していません。 –

答えて

1

ユニットベースのテストとVMベースのテストが混在しています。

  • rspec-puppet(及びrspec-puppet-facts 'on_supported_os)は、カタログベースのユニットテストのためのものです。 VMを必要とせず、モジュールの構文やロジックについての素早いフィードバックを提供できます。

  • および推奨beaker-rspecアドオンは、完全なエンドツーエンドのテスト機能を提供し、実際のVMを使用して、完全なスタック展開をテストします(テストで定義されています)。

通常、既存のモジュールのメインエントリポイントはレーキです。 rake -Tを使用して、モジュール内の既存のレーキタスクを見てください。うまく書かれたモジュールでは、rspec-puppet(通常はspecと呼ばれる)とビーカー(しばしばbeaker、またはacceptanceと呼ばれる)の両方のタスクが必要です。

自分のモジュールの場合は、新しいPuppet Development Kitを調べて、単一のインストーラーで最も重要なツールを入手することもできます。

+0

フィードバックいただきありがとうございます。私は間違いなくこれを調べます。 –

関連する問題