Busser::RunnerPlugin::Minitest
A Busser runner plugin for the minitest testing library
Installation and Setup
Please read the Busser plugin usage page for more details.
Usage
Assume a cookwith with the following structure (some directories omitted for
brevity). This also assumes that your .kitchen.yml has been written with a
suite per recipe.
.
├── Berksfile
├── Berksfile.lock
├── CHANGELOG.md
├── README.md
├── Thorfile
├── attributes
│ └── default.rb
├── chefignore
├── definitions
├── files
│ └── default
│ ├── bar.txt
│ ├── foo.txt
│ └── foobar.txt
├── libraries
├── metadata.rb
├── providers
├── recipes
│ ├── bar.rb
│ ├── default.rb
│ └── foo.rb
├── resources
├── templates
│ └── default
The test directory follows a similar structure to the recipes directory. In the integration directory,
there should be a directory for each recipe, which contains a directory for each busser being used. In
this example, we're only using minitest. Finally, the actual test files themselves live inside the busser
directory. The test files must be named either test_*.rb or *_spec.rb in order to be parsed.
└── test
└── integration
├── bar
│ └── minitest
│ └── test_bar.rb
├── default
│ └── minitest
│ └── test_default.rb
└── foo
└── minitest
└── test_foo.rb
The test files use standard minitest assertions, constructs etc. As an example, the test_default.rb file
listed above might have the following content to check for the existance of a particulare file.
require 'minitest/autorun'
describe "foobar::default" do
it "has created foobar.txt" do
assert File.exists?("/usr/local/foobar.txt")
end
end
Development
Pull requests are very welcome! Make sure your patches are well tested.
Ideally create a topic branch for every separate change you make. For
example:
- Fork the repo
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Authors
Created and maintained by Fletcher Nichol (fnichol@nichol.ca)
License
Apache 2.0 (see LICENSE)