Here’s what you get if run “cucumber features” with Ruby 1.8.7 and Cucumber 0.9.2:
WARNING: no such file to load – 1.8/gherkin_lexer_en Couldn’t load 1.8/gherkin_lexer_en The $LOAD_PATH was: C:/Ruby187/lib/ruby/gems/1.8/gems/cucumber-0.9.2/bin/../lib …
There is no mention of this in the book at all even though the authors must have encountered it since I’m using the same versions they are. One site on the web indicates upgrading to Cucumber 0.9.4 solves this. It doesn’t. Yet another says this problem goes away if you upgrade to Ruby 1.9.x. Here’s the result:
WARNING: no such file to load – 1.9/gherkin_lexer_en Couldn’t load 1.9/gherkin_lexer_en The $LOAD_PATH was: C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-0.10.0/bin/../lib …
So that doesn’t work either.
Also, if you run “cucumber features” with an updated Ruby, you get this:
*** WARNING: You must use ANSICON 1.31 or higher (http://adoxa.110mb.com/ansicon) to get coloured output on Windows
Which seems silly because the older Ruby (1.8.7) and older Cucumber (0.9.2 and 0.9.4) seem to give color just fine solely with the win32console gem. So upgrading means I get less functionality unless I use some other non-related tool.
This is not a fault of the book but it brings up my gripe session: some of this is exactly why newcomers that you try to show these concepts to get frustrated. Everything with Ruby feels clunky like this. Every time you turn around there’s some new incompatibility or warning or error or yet some other gem you have to load up. (This rarely happens with Python – but Python doesn’t have all the cool tools.) This all makes getting organizations into Ruby testing tools is somewhat difficult because there is a perception that supporting tools like Cucumber are barely holding themselves together and, again, it’s usually for reasons like I’m showing here.
I’ve been using this book to get people interested in concepts like Cucumber and except for the fact that Ruby always seems like it’s held together with spit and baling wire, it’s working. The book is well written. I just wish the supporting tools the book describes were more consistent in their implementation.