使用rspec进行Puppet Code覆盖测试

时间:2016-05-26 15:26:50

标签: ruby code-coverage rspec-puppet

我的模块结构就是这个。

install_logging
├── files
│   └── install_logging.sh
├── Gemfile
├── Gemfile.lock
├── manifests
│   ├── \
│   ├── empty.rb
│   └── init.pp
├── Modulefile
├── Rakefile
├── README
├── spec
│   ├── chkcls_sec.rb
│   ├── classes
│   │   ├── init1_spec.rb
│   │   ├── init_spec.rb
│   │   └── spec_helper.rb
│   ├── coverage_spec.rb
│   ├── defines
│   ├── fixtures
│   │   ├── manifests
│   │   │   └── site.pp
│   │   └── modules
│   │       └── install_logging
│   │           ├── files -> ../../../../files
│   │           ├── manifests -> ../../../../manifests
│   │           └── templates -> ../../../../templates
│   ├── functions
│   ├── hosts
│   └── spec_helper.rb
├── templates
│   └── agent.sh.erb
└── tests
    └── init.pp

manifest / init.pp文件代码。

class install_logging {
  file { '/tmp/install_logging.sh':
    ensure => 'present',
    mode   => '0644',
    source => 'puppet:///modules/install_logging/install_logging.sh'
  }-> exec { 'Install Logging Agent':
    provider  => shell,
    command   => 'bash /tmp/install_logging.sh',
    logoutput => on_failure,
  }
}

$ua_module_name = 'VivekMishra01/Google_Cloud_Logging1'  
$ua_module_version = "${ua_module_name}/1.1.0" 

file { '/tmp/agent.sh':
  ensure  => file,
  mode    => '0755',
  content => template('gcloudsdk/agent.sh.erb'),
  require => Exec['Remove Components'],
}-> exec { 'Agent':
  provider  => shell,
  command   => 'sh /tmp/agent.sh',
  logoutput => on_failure,
}

spec / classes / init_spec.rb文件代码

require 'spec_helper'
describe 'contains install_logging' do
  it { File.exist?('File.join(File.dirname(__FILE__),init.pp)') }
end
at_exit { RSpec::Puppet::Coverage.report! }

这就是我想要做的。

root@ubuntu-14-04:/home/vivekkumarmishra17/Mymodule/install_logging# rspec spec/classes/init_spec.rb 
.
Finished in 0.00164 seconds (files took 0.59198 seconds to load)

    1 example, 0 failures
    Total resources:   0
    Touched resources: 0
    Resource coverage:   NaN%
    Untouched resources:

问题是为什么它无法找到任何资源,尽管成功测试了一个例子。

    Total resources:   0
    Touched resources: 0
    Resource coverage:   NaN%
    Untouched resources:

任何帮助都将受到高度赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

请使用Puppet Development Kit生成您的模块和课程。 PDK将为这些人生成工作单元测试。

使用rspec-puppet编写单元测试时,请参阅docsite,在本例中,请参阅testing classesresources