cookbook 'minitest-handler', '= 1.0.1', :supermarket
Installs and configures minitest-chef-handler
cookbook 'minitest-handler', '= 1.0.1'
knife supermarket install minitest-handler
knife supermarket download minitest-handler
Cookbook: minitest-handler<br/> Author: David Petzel firstname.lastname@example.org<br/> Author: Bryan W. Berry email@example.com<br/> Author: Bryan McLellan firstname.lastname@example.org<br/> Copyright: 2012 Opscode, Inc.<br/> License: Apache 2.0<br/>
This cookbook utilizes the minitest-chef-handler project to facilitate cookbook testing. By default, minitest-handler will collect all the tests in your cookbook_path and run them.
minitest-chef-handler project: https://github.com/calavera/minitest-chef-handler<br/> stable minitest-handler cookbook: http://community.opscode.com/cookbooks/minitest-handler<br/> minitest-handler cookbook development: https://github.com/btm/minitest-handler-cookbook<br/>
Note: Version 0.1.8 deprecated use of
files/default/tests/minitest/*_test.rb and the location of support
files. Test files should now be located in
Note: Version 0.1.0 added a change that breaks backward compatibility. The minitest-handler now only loads<br/>
test files named "<recipe-name>_test.rb" rather than all test files in the path
If you have any helper libraries, they should match
node[:minitest][:gem_version]- The version of the minitest gem to install and use.
- Default: 3.0.1
node[:minitest][:chef_handler_gem_version]- The version of the minitest-chef-handler gem to install and use.
- Default: 1.0.1
node[:minitest][:path]- Location to store and find test files.
node[:minitest][:recipes]- The names of all recipes included during the chef run, whether by insertion to the run_list, inclusion through a role, or added with
include_recipe. If you only want tests for select recipes to run, override this value with the names of the recipes that you want tested.
- Default: 
node[:minitest][:filter]- Filter test names on a pattern (regex)
/apache2/could be used to only run tests for recipes with starting with apache2
node[:minitest][:seed]- Set random seed
node[:minitest][:ci_reports]- Path to write out the result of each test in a JUnit-compatible XML file, parseable by many CI platforms
node[:minitest][:tests]- Test files to run.
- Default to
- Default to
node[:minitest][:verbose]- Display verbose output
- Default: true
recipe[minitest-handler]somewhere on your run_list, preferably last
- Place tests in
files/default/test/with the name your-recipe-name_test.rb (default recipe is named default_test.rb)
- Put any helper functions you have in
files/default/test/spec_helper.rbbut minitest-handler will ensure that you have access to any file that matches the glob
class TestApache2 < MiniTest::Chef::TestCase def test_that_the_package_installed case node[:platform] when "ubuntu","debian" assert system('apt-cache policy apache2 | grep Installed | grep -v none') end end def test_that_the_service_is_running assert system('/etc/init.d/apache2 status') end def test_that_the_service_is_enabled assert File.exists?(Dir.glob("/etc/rc5.d/S*apache2").first) end end
require 'minitest/spec' describe_recipe 'ark::test' do it "installed the unzip package" do package("unzip").must_be_installed end it "dumps the correct files into place with correct owner and group" do file("/usr/local/foo_dump/foo1.txt").must_have(:owner, "foobarbaz").and(:group, "foobarbaz") end end
For more detailed examples, see here
Testing this cookbook
All test are currently written using BATS, which is essentially bash. Using BATS was done so that minitest-handler nor minitest-chef-handler were used to test itself. For more examples of bats than are in this cookbook, see the chef-rvm, chef-ruby_build, and chef-rbenv cookbooks.
NOTE A known limitation of using BATS is that the cookbook is not currently tested on Windows machines. See https://github.com/btm/minitest-handler-cookbook/issues/45 for more of the background on this.
|chef_handler >= 0.0.0|