2017-02-17 6 views
0

私はrspecを使って既に製作された人形のモジュールをテストしようとしていますが、このことは私を怒らせようとしています。Rspec + puppet:ネストされたフィクスチャー?

まず、レーキで「完全」テストを行っています。タスクです:

Rakefile:

desc 'Validate manifests, templates, and ruby files' 
task :validate do 
    Dir['manifests/**/*.pp'].each do |manifest| 
    sh "puppet parser validate --noop #{manifest}" 
    end 
    Dir['spec/**/*.rb', 'lib/**/*.rb'].each do |ruby_file| 
    sh "ruby -C#{ruby_file}" unless ruby_file =~ %r{spec/fixtures} 
    end 
    Dir['templates/**/*.erb'].each do |template| 
    sh "erb -P -x -T '-' #{template} | ruby -c" 
    end 
end 

desc 'Run metadata_lint, lint, validate, and spec tests.' 
task :test do 
    [:metadata_lint, :lint, :validate, :spec].each do |test| 
    Rake::Task[test].invoke 
    end 

は私が持っていた最初の問題は、このエラーが発生しました:しばらくの研究をした後

1) rcphp should contain Package[rcphp] 
    Failure/Error: it { is_expected.to contain_package('rcphp') } 

    Puppet::PreformattedError: 
     Evaluation Error: Error while evaluating a Resource Statement, Could not find declared class rcphp at line 1:1 on node test.example.com 

、私は私がしたモジュールを置く必要があることが分かりました.fixtures.ymlで使用します。シンプルに聞こえたので、私は作った:

fixtures: 
    symlinks: 
    rcphp: "#{source_dir}" 
    repositories: 
    php: "git://github.com/voxpupuli/puppet-php.git" 
    inifile: "git://github.com/puppetlabs/puppetlabs-inifile.git" 
    forge_modules: 
    stdlib: 
     repo: "puppetlabs/stdlib" 
     ref: "4.12.0" 

この時点から、物事は意味をなさない。私はエラーを受け取りました:

Failure/Error: contain "::yum::repo::${yum_repo}" 

Puppet::PreformattedError: 
    Evaluation Error: Error while evaluating a Function Call, Could not find class ::yum::repo::remi_php56 for test.example.com at /home/luis.brandao/git/rcphp/spec/fixtures/modules/php/manifests/repo/redhat.pp:12:3 on node test.example.com 

:: yum :: repoはPHPモジュールによって呼び出されました。 phpモジュールには独自のフィクスチャがあります。私はそれを追加しようとし、別のネストされたモジュールの依存関係がポップアップしました。 これは正しくない、私はそれを把握し、簡単にすべての依存関係のツリーを追加する必要がありますか?

答えて

0

This cant be right, i am supposed to figure it out and add, by hand, ALL the dependency tree to make a simple test??

はい、現時点では正しいです。

+0

R10kとCodeManagerでそれらを解決することはできませんが、図書館員ができることはありませんか?それにもかかわらず、彼はpuppetlabs-spec-helperを使用しているので、まだpuppetlabs-spec-helperを使用している貧しい人々のためにpuppet-check> puppetlabs-spec-helperを実行するべき場所です。 –

+1

そうですね、図書館の人形はできますが、あなたが言うように、puppetlabs_spec_helperはこれを使うことはできません。これは、Forgeからモジュールをインストールすることをサポートしますが、 '--ignore-dependencies'を提供するので、必要なものすべてを取得することはありません。 –

+0

だからこの問題は、照明器具をつかむためにhg/gitを使用することからより多くのものがあります。面白い。 –

関連する問題