On Mon, Apr 14, 2014 at 07:05:49AM -0700, Alexander Fortin wrote:
> On Sunday, April 13, 2014 11:57:19 AM UTC+2, Johan De Wit wrote:
> >
> > I still am so surprised when asking who is doing some kind of 'testing', 
> > almost nobody raises is hand ..... 
> >
> > Most people just don't' see the sense of doing rspec unit tests - why 
> > writing the same code twice ? 
> >
> > Well, I think there is still a lot of talking to do .... 
> >
> >
> Hi Johan,
> 
> sorry for the missed presentation at Puppet User Group Berlin, I'll make it 
> one day or another and I'll share the slides at least ;)
> 
> I'll be very happy to discuss further the testing topic, because testing is 
> also very important to us. Actually we do lots of testing on our manifests 
> (but not with rspec) and catalogs, and precisely I think that puppet 
> catalog-diff [1] is the key piece in the pipeline for us, because it shows 
> us for real what's actually changing with every commit we push to our 
> manifests, plus the noop runs before merging to prod give us the final safe 
> net to be sure we don't get any unexpected change in production. For the 
> last 8 months or so it's been working surprisingly well for us and I'm 
> really willing to share our experience with the community and also getting 
> and suggestions about how to improve it even further.
> 
> By the way, I'm another one that's not so convinced about the rspec tests 
> value, to me seems that the unit tests themselves are much less relevant 
> for a declarative-like language like Puppet. I mean, there's no 'design' 
> that has to emerge by the unit tests getting green, in our team we already 
> share a defined design for module structure, and, say, if the coder write 
> the spec for a file to be there, I don't see why I should trust that more 
> than a definition of that same thing in the manifest itself, hence the 
> feeling of code duplication with no real value added.

I see the value of using rspec in TDD just because I can then go back
and refactor the manifests properly. I haven't used catalog-diff but I
am suspecting that it might be a substitute for the rspec tests. Tell me
does it provide the following:

* Automatic runs through guard/rake/whatever on every commit to verify
that I am not breaking things like permissions on files
* Does it work on the catalog semantic level or syntactic level - what
I mean by that is that if I have defined 4 files in a class each with
the same user/group/mode and I move those into default parameters for
the File resource in the scope - will it detect that I am not changing
anything?
* Will I be able to test that things haven't changed once I move to
another puppet version - let's say the default mode for directories
change in the next major puppet version?


> 
> What I can see very clearly for normal software development, those values 
> coming from TDD, I can't see easily for Puppet manifests writing. Something 
> like Beaker [2] is what we'd like to add to our testing pipeline, i.e. 
> running tests for the full stack in a VM, but again, stil more then willing 
> to change my mind about rspec-puppet ;)

Beaker with http://serverspec.org/ is quite nice - note that I am still
not using it long enough to complain(waiting it to happen :))

> 
> [1] https://github.com/ripienaar/puppet-catalog-diff
> [2] https://github.com/puppetlabs/beaker/wiki/Overview
> 
> -- 
> http://about.me/alexanderfortin

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/20140415072556.GB24790%40nikolavp-desktop.
For more options, visit https://groups.google.com/d/optout.

Reply via email to