So last week, Fletcher Nichol and myself, took on the task of adding
attribute sanity tests, and foodcritic linting, to a simple cookbook.
Many others joined us for some Beer-Driven Development throughout the
week, almost too many to name (big thanks to Matthew Sauve-Frankel). We
also integrated this with Travis CI for shits ‘n’ giggles. I received
some feedback ranging on our testing efforts from "that sounds stupid"
to “that looks badass”.
Both of us have some community cookbooks that take upwards of 30 minutes
to converge. So this was a bit of a proof of concept, and an exercise
to provide reference documentation for testing cookbooks. Our main goal
was to have a way of testing inputs (attributes) as a cookbook ships.
As a cookbook maintainer, I have no way of knowing what attributes
someone may override without loading external roles. The way I see it,
the least I could do is make sure what does ship in one of my cookbooks
is somewhat sane.
I opened a JIRA ticket [COOK-1298] intending to use NTP as a reference
cookbook for platform edge-case testing. It seemed like a good hello
world example to test this idea out. So, not actually sure if I’ll pull
request this or not. I guess I am looking for validation from others on
the mailing list that this idea is not, in fact, stupid.
I have squashed the commits in the following tree, to hide any drunken
commit messages which may, or may not, have occurred at Chefconf. Check
it out, and let me know what you think. The TESTING.md is meant to
serve as a HOWTO document for testing cookbook inputs as we have done here.
Eric G. Wolfe
Senior Linux Administrator,
IT Infrastructure Systems
Marshall University Computing Services
Drinko Library 428-K
One John Marshall Dr.
Huntington, WV 25755
You will be recognized and honored as a community leader.