diff --git a/.gitignore b/.gitignore index e7903d9..c6ba7b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,2 @@ -*.swp -*~ -.bundle -.cookbooks/ +.bundle/ Berksfile.lock diff --git a/Gemfile b/Gemfile index e5ab73c..e8527c1 100644 --- a/Gemfile +++ b/Gemfile @@ -2,6 +2,7 @@ source "https://rubygems.org" gem "chef", "~> 11.4.4" gem "json", "<= 1.7.7" # chef 11 dependency -gem "berkshelf", "~> 1.4.0" +gem "berkshelf", "~> 1.4.5" gem "chefspec", "~> 1.2.0" -gem "foodcritic", "~> 2.1.0" +gem "foodcritic" +gem "strainer" diff --git a/Gemfile.lock b/Gemfile.lock index c81dc1c..0af241a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -164,6 +164,8 @@ GEM wasabi (~> 1.0) solve (0.4.4) json + strainer (2.1.0) + berkshelf (~> 1.3) systemu (2.5.2) thor (0.18.1) timers (1.1.0) @@ -187,8 +189,9 @@ PLATFORMS ruby DEPENDENCIES - berkshelf (~> 1.4.0) + berkshelf (~> 1.4.5) chef (~> 11.4.4) chefspec (~> 1.2.0) - foodcritic (~> 2.1.0) + foodcritic json (<= 1.7.7) + strainer diff --git a/README.md b/README.md index 6adf00f..e56d839 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,19 @@ None * `openstack['database']['service']` - which service to use, defaults to 'mysql' * `openstack['database']['platform']['mysql_python_packages']` - platform-specific mysql python packages to install +Testing +===== + +This cookbook uses [bundler](http://gembundler.com/), [berkshelf](http://berkshelf.com/), and [strainer](https://github.com/customink/strainer) to isolate dependencies and run tests. + +Tests are defined in Strainerfile. + +To run tests: + + $ bundle install # install gem dependencies + $ bundle exec berks install # install cookbook dependencies + $ bundle exec strainer test # run tests + License and Author ================== @@ -69,6 +82,7 @@ License and Author | **Author** | Evan Callicoat () | | **Author** | Matt Thompson () | | **Author** | Matt Ray () | +| **Author** | Sean Gallagher () | | | | | **Copyright** | Copyright (c) 2012-2013, Rackspace US, Inc. | | **Copyright** | Copyright (c) 2012-2013, Opscode, Inc. | diff --git a/Strainerfile b/Strainerfile new file mode 100644 index 0000000..541388e --- /dev/null +++ b/Strainerfile @@ -0,0 +1,4 @@ +# Strainerfile +knife test: bundle exec knife cookbook test $COOKBOOK +foodcritic: bundle exec foodcritic -f any -t ~FC003 -t ~FC023 $SANDBOX/$COOKBOOK +chefspec: bundle exec rspec $SANDBOX/$COOKBOOK/spec diff --git a/run_tests.bash b/run_tests.bash deleted file mode 100755 index 141e8ee..0000000 --- a/run_tests.bash +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -# A script to run tests locally before committing. - -set -e - -COOKBOOK=$(awk '/^name/ {print $NF}' metadata.rb |tr -d \"\') -if [ -z $COOKBOOK ]; then - echo "Cookbook name not defined in metadata.rb" - exit 1 -fi - -BUNDLE_PATH=${BUNDLE_PATH:-.bundle} -BERKSHELF_PATH=${BERKSHELF_PATH:-.cookbooks} - -bundle install --path=${BUNDLE_PATH} -bundle exec berks install --path=${BERKSHELF_PATH} -bundle exec foodcritic -f any -t ~FC003 -t ~FC023 ${BERKSHELF_PATH}/${COOKBOOK} -bundle exec rspec ${BERKSHELF_PATH}/${COOKBOOK}