No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Automatically generate ChefSpec tests based on your recipes.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
~> 3.0

Runtime

~> 4.0.0
 Project Readme

chefspec-bootstrap

Gem Version Build Status Code Climate

A command line tool to get started with ChefSpec. Generates spec files for your untested recipes.

Given a cookbook called my_cookbook with a recipe called my_recipe.rb:

package 'apache2'

file '/etc/apache2/sites-available/default' do
  action :delete
end

template '/etc/apache2/sites-available/mysite' do
  source 'mysite.conf.erb'
end

The command line tool will output the following to stdout:

require 'chefspec'

describe 'my_cookbook::my_recipe' do
  let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }

  it 'installs the apache2 package' do
    expect(chef_run).to install_package('apache2')
  end

  it 'deletes the /etc/apache2/conf.d/python.conf file' do
    expect(chef_run).to delete_file('/etc/apache2/conf.d/python.conf')
  end

  it 'creates the /etc/apache2/sites-available/mysite template' do
    expect(chef_run).to create_template('/etc/apache2/sites-available/mysite')
  end
end

Getting Started

Install the gem

gem install chefspec-bootstrap

Run the command-line tool, pointing to a recipe:

chefspec-bootstrap my_cookbook/recipes/my_recipe.rb

Options

Usage: chefspec-bootstrap <recipe.rb> [options]
    -t, --template <file>            ERB template file used to generate specs
    -s, --spec-helper <file>         spec_helper.rb file. By default, looks in spec/spec_helper.rb
    -o, --output <file>              File to output spec. Prints to stdout if not specified.
    -c, --cookbook-path <dir>        Cookbook path (directory). Your spec_helper file can override this.

Creating a custom template

A custom erb template can be passsed using the -t flag. See the included default template for an example.

What this project is NOT:

This is not a replacement for writing ChefSpec tests. Rather, this is a way to get started when you have an entirely untested recipe.