mths : sdrbrg ;

helpers in the kitchen

When writing tests using RSpec, I prefer to use shared_context and shared_examples for integration setup and for testing shared behaviour, respectively.

When I started out with writing integration tests for my kafka cookbook using serverspec, I wanted to share tests between different suites as they were testing different init systems, but the tests could be heavily refactored to just depend on some shared variables rather than duplicating all of the test cases. It was however not immediately clear how one would go about sharing files between different suites.

After quite some digging I found a bit of information (I think in an old issue or pull request though I no longer have any links handy) that mentioned having a helpers directory in test/integration for sharing files between suites.

So it's just a matter of creating a helpers directory and the necessary busser specific subdirectory, adding some files and you're good to go. They'll even be available on the $LOAD_PATH, so it's easy to just require a spec_helper or the alike in the actual spec files.

Since v1.2.1 of test-kitchen it's also possible to create directories in the helpers directory (I tend to keep shared code in a support directory for example).

For reference my kafka cookbook is over here, and more specifically the helpers directory (and serverspec subdirectory) is over here.

19 Feb 2016 / test-kitchen chef rspec