Use strainer to isolate and test individual cookbooks

Included:
- Add strainer gem
- Update test-related gems
- Add Strainer file
- Remove run_tests.bash
- Update .gitignore
- Update README file
- Update specs to use require_relative

Partial fix for bug 1188345

Change-Id: I6cb9e535212346cccb45f8c41c647b8daa8a4c7d
This commit is contained in:
sean
2013-06-10 08:06:03 -07:00
parent 7a304e1b02
commit f3d6b771b4
12 changed files with 33 additions and 40 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,2 @@
.bundle
.cookbooks/
.bundle/
Berksfile.lock

View File

@@ -1,8 +1,9 @@
source "https://rubygems.org"
gem "chef", "~> 11.4.4"
gem "json", "= 1.7.7" # chef 11 dependency
gem "berkshelf", "~> 1.4.0"
gem "json", "<= 1.7.7" # chef 11 dependency
gem "berkshelf", "~> 1.4.5"
gem "chefspec", "~> 1.2.0"
gem "foodcritic", "~> 2.1.0"
gem "tailor", "~> 1.2.1"
gem "foodcritic"
gem "strainer"
gem "tailor"

View File

@@ -165,6 +165,8 @@ GEM
wasabi (~> 1.0)
solve (0.4.4)
json
strainer (2.1.0)
berkshelf (~> 1.3)
systemu (2.5.2)
tailor (1.2.1)
log_switch (>= 0.3.0)
@@ -196,9 +198,10 @@ PLATFORMS
ruby
DEPENDENCIES
berkshelf (~> 1.4.0)
berkshelf (~> 1.4.5)
chef (~> 11.4.4)
chefspec (~> 1.2.0)
foodcritic (~> 2.1.0)
json (= 1.7.7)
tailor (~> 1.2.1)
foodcritic
json (<= 1.7.7)
strainer
tailor

View File

@@ -212,11 +212,15 @@ OSAPI Compute Extentions
Testing
=====
This cookbook is using [ChefSpec](https://github.com/acrmp/chefspec) for
testing. Run the following before commiting. It will run your tests,
and check for lint errors.
This cookbook uses [bundler](http://gembundler.com/), [berkshelf](http://berkshelf.com/), and [strainer](https://github.com/customink/strainer) to isolate dependencies and run tests.
$ ./run_tests.bash
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
==================
@@ -234,6 +238,7 @@ License and Author
| **Author** | Jay Pipes (<jaypipes@att.com>) |
| **Author** | John Dewey (<jdewey@att.com>) |
| **Author** | Craig Tracey (<craigtracey@gmail.com>) |
| **Author** | Sean Gallagher (<sean.gallagher@att.com>) |
| | |
| **Copyright** | Copyright (c) 2012-2013, Rackspace US, Inc. |
| **Copyright** | Copyright (c) 2012-2013, Opscode, Inc. |

5
Strainerfile Normal file
View File

@@ -0,0 +1,5 @@
# Strainerfile
tailor: bundle exec tailor
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

View File

@@ -1,20 +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 tailor
bundle exec rspec ${BERKSHELF_PATH}/${COOKBOOK}

View File

@@ -1,4 +1,4 @@
require "spec_helper"
require_relative "spec_helper"
describe "openstack-compute::ceilometer-agent-central" do
describe "opensuse" do

View File

@@ -1,4 +1,4 @@
require "spec_helper"
require_relative "spec_helper"
describe "openstack-compute::ceilometer-agent-central" do
describe "ubuntu" do

View File

@@ -1,4 +1,4 @@
require "spec_helper"
require_relative "spec_helper"
describe "openstack-compute::ceilometer-agent-compute" do
describe "ubuntu" do

View File

@@ -1,4 +1,4 @@
require "spec_helper"
require_relative "spec_helper"
describe "openstack-compute::ceilometer-common" do
describe "opensuse" do

View File

@@ -1,4 +1,4 @@
require "spec_helper"
require_relative "spec_helper"
describe "openstack-compute::ceilometer-common" do
describe "ubuntu" do

View File

@@ -1,4 +1,4 @@
require "spec_helper"
require_relative "spec_helper"
describe "openstack-compute::libvirt" do
before do