You must have VirtualBox and Vagrant installed.
You can install gem dependencies with bundler:
$ gem install bundler
$ bundle install --without travis
This will generate the documentation for the source files inside the libraries/ directory.
$ bundle exec rake doc
The documentation is included in the source code itself.
We use the following tools to test the code style:
To run the tests:
$ bundle exec rake style
We use ChefSpec and RSpec for the unit tests. RSpec is generally used to test the libraries or some Ruby specific code.
The unit test files are placed in the test/unit/ directory.
To run the tests:
$ bundle exec rake unit
We use Test Kitchen to run the tests and the tests are written using Serverspec.
The integration test files are placed in the test/integration/ directory. Some cookbooks required by this tests are in the test/cookbooks/ directory.
To run the tests:
$ bundle exec rake integration:vagrant
Or:
$ bundle exec kitchen list
$ bundle exec kitchen test
[...]
You can run the integration tests using Docker instead of Vagrant if you prefer.
Of course, you need to have Docker installed.
$ wget -qO- https://get.docker.com/ | sh
Then use the integration:docker
rake task to run the tests:
$ bundle exec rake integration:docker
You can run the tests in the cloud instead of using Vagrant. First, you must set the following environment variables:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_KEYPAIR_NAME
: EC2 SSH public key name. This is the name used in Amazon EC2 Console's Key Pars section.EC2_SSH_KEY_PATH
: EC2 SSH private key local full path. Only when you are not using an SSH Agent.DIGITALOCEAN_ACCESS_TOKEN
DIGITALOCEAN_SSH_KEY_IDS
: DigitalOcean SSH numeric key IDs.DIGITALOCEAN_SSH_KEY_PATH
: DigitalOcean SSH private key local full path. Only when you are not using an SSH Agent.
Then use the integration:cloud
rake task to run the tests:
$ bundle exec rake integration:cloud
Guard is a tool that runs the tests automatically while you are making changes to the source files.
To run Guard:
$ guard
More info at Guard Readme.
There are multiple Rake tasks that you can use to run the tests:
$ rake -T
See Rakefile documentation for more information.