Putting it all together
We have gone trough a lot of tools and concepts in the last sections. The amount might seen overwhelming, but it will make sense when they all become part of your regular work flow.
How do all this pieces fit in our Test Driven work flow?
The following table shows where do all the tools fit.
Tool | TDD Role |
---|---|
Vagrant | Provide a production like environment for developing and testing our modules. |
RVM | Manage the version of Ruby our environment will use. Isolate the versions of gems that our module will use. Allows us to test our module with different versions of Puppet. |
Bundler | Manage gem dependencies. Allows us to declare what version of Puppet or other development gems our module will use. |
Git | Distributed source control. Gives us the ability to keep track of changes to our module. Easy to generate development branches and tag releases. |
Gitflow | Branching methodology. Orders your development cycle. Allows us to collaborate with our team without deadlocking the production releases. |
Puppet testing
In the following sections we will learn about a different set of tools. These will take advantage of our setup tools to develop and test our Puppet modules.
Tool | TDD Role |
---|---|
puppet-lint | Syntax and Style validation |
librarian-puppet | Dependency management for Puppet modules |
rspec, rspec-puppet | Class testing |
beaker, beaker-rspec, serverspec | Acceptance testing |