Update Testing.md to factor out Strainer
* remove refs to Strainer * add steps for testing * remove knife test as it's not used in gates anymore Change-Id: I7e83aca7a42e53954aa6aa19609064e23e2ccb37 Partial-Bug: #1350470
This commit is contained in:
parent
2ea0234b1f
commit
198ca3aaa5
34
TESTING.md
34
TESTING.md
@ -1,41 +1,29 @@
|
|||||||
# Testing the Cookbook #
|
# Testing the Cookbook #
|
||||||
|
|
||||||
This cookbook uses [bundler](http://gembundler.com/), [berkshelf](http://berkshelf.com/), and [strainer](https://github.com/customink/strainer) to isolate dependencies and run tests.
|
This cookbook uses [bundler](http://gembundler.com/) and [berkshelf](http://berkshelf.com/) to isolate dependencies.
|
||||||
|
|
||||||
Tests are defined in [Strainerfile](Strainerfile), which in turn calls rubocop, knife, foodcritic and chefspec.
|
To setup the dependencies:
|
||||||
|
|
||||||
To run all of the tests with Strainer:
|
|
||||||
|
|
||||||
$ bundle exec strainer test -s Strainerfile
|
|
||||||
|
|
||||||
Or you may run the tests individually:
|
|
||||||
|
|
||||||
$ bundle install --path=.bundle # install gem dependencies
|
$ bundle install --path=.bundle # install gem dependencies
|
||||||
$ bundle exec berks vendor .cookbooks # install cookbook dependencies and create the folder .cookbooks
|
$ bundle exec berks vendor .cookbooks # install cookbook dependencies and create the folder .cookbooks
|
||||||
$ bundle exec strainer test -s Strainerfile # run tests
|
|
||||||
|
To run the tests:
|
||||||
|
|
||||||
|
$ export COOKBOOK='openstack-common'
|
||||||
|
$ bundle exec foodcritic -f any -t ~FC003 -t ~FC023 .cookbooks/$COOKBOOK
|
||||||
|
$ bundle exec rubocop .cookbooks/$COOKBOOK
|
||||||
|
$ bundle exec rspec --format documentation .cookbooks/$COOKBOOK/spec
|
||||||
|
|
||||||
## Rubocop ##
|
## Rubocop ##
|
||||||
|
|
||||||
[Rubocop](https://github.com/bbatsov/rubocop) is a static Ruby code analyzer, based on the community [Ruby style guide](https://github.com/bbatsov/ruby-style-guide). We are attempting to adhere to this where applicable, slowly cleaning up the cookbooks until we can turn on Rubocop for gating the commits.
|
[Rubocop](https://github.com/bbatsov/rubocop) is a static Ruby code analyzer, based on the community [Ruby style guide](https://github.com/bbatsov/ruby-style-guide). We are attempting to adhere to this where applicable, slowly cleaning up the cookbooks until we can turn on Rubocop for gating the commits.
|
||||||
|
|
||||||
### Attribute Rules ###
|
|
||||||
|
|
||||||
Since there are slight style differences between the coding of attributes, recipes and metadata files there are specific `.rubocop.yml` files for each of:
|
|
||||||
|
|
||||||
[Gemfile and metadata.rb](.rubocop.yml)
|
|
||||||
[attributes/*.rb](attributes/.rubocop.yml)
|
|
||||||
[recipes/.rubocop.yml](recipes/.rubocop.yml)
|
|
||||||
[spec/.rubocop.yml](spec/.rubocop.yml)
|
|
||||||
|
|
||||||
## Knife ##
|
|
||||||
|
|
||||||
[knife cookbook test](http://docs.opscode.com/chef/knife.html#test) is used to check the cookbook's Ruby and ERB files for basic syntax errors.
|
|
||||||
|
|
||||||
## Foodcritic ##
|
## Foodcritic ##
|
||||||
|
|
||||||
[Foodcritic](http://acrmp.github.io/foodcritic/) is a lint tool for Chef cookbooks. We ignore the following rules:
|
[Foodcritic](http://acrmp.github.io/foodcritic/) is a lint tool for Chef cookbooks. We ignore the following rules:
|
||||||
|
|
||||||
[FC003](http://acrmp.github.io/foodcritic/#FC003) these cookbooks are not intended for Chef Solo.
|
* [FC003](http://acrmp.github.io/foodcritic/#FC003) These cookbooks are not intended for Chef Solo.
|
||||||
|
* [FC023](http://acrmp.github.io/foodcritic/#FC023) Prefer conditional attributes.
|
||||||
|
|
||||||
## Chefspec
|
## Chefspec
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user