Adoptable Cookbooks List

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

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
files/default/test/_test.rb
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 files/default/test/*_test.rb

If you have any helper libraries, they should match files/default/test/helper.rb

Attributes

node[:minitest][:recipes] - defaults to empty and is populated with
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.

node[:minitest][:filter] - filter test names on a pattern

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

Using minitest/spec

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

Testing this cookbook

This cookbook currently uses test-kitchen 1.0 and the
kitchen-lxc driver to run
tests. The easiest way to put everything in place for proper lxc
functioning is to install the vagabond gem and execute vagabond
init. This command will run chef-solo to configure LXC and put the
proper LXC templates in place.

All tests are written using
BATS, which is essentially
bash. I did this because I did not want to use minitest-handler or
minitest-chef-handler to test itself. For more examples of bats than are in this cookbook, see
the chef-rvm, chef-ruby_build, and chef-rbenv cookbooks.