From 30bc1c8da329f5f4d520726ac123015b4ca05a9a Mon Sep 17 00:00:00 2001 From: Mark Vanderwiel Date: Mon, 18 Aug 2014 15:38:46 -0500 Subject: [PATCH] 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: I429e1633253ea70ed038b3e30e88ca98df61a0bb Partial-Bug: #1350470 --- TESTING.md | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/TESTING.md b/TESTING.md index 5b5fa823..afdc5d44 100644 --- a/TESTING.md +++ b/TESTING.md @@ -1,41 +1,29 @@ # 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 run all of the tests with Strainer: - - $ bundle exec strainer test -s Strainerfile - -Or you may run the tests individually: +To setup the dependencies: $ bundle install --path=.bundle # install gem dependencies - $ bundle exec berks vendor .cookbooks # install cookbook dependencies and create folder .cookbooks - $ bundle exec strainer test -s Strainerfile # run tests + $ bundle exec berks vendor .cookbooks # install cookbook dependencies and create the folder .cookbooks + +To run the tests: + + $ export COOKBOOK='openstack-network' + $ 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](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](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