[rspec-users] Problems running features with Textmate Cucumber bundle

Rick DeNatale
2009-04-27T15:13:17Z

On Mon, Apr 27, 2009 at 10:07 AM, aslak hellesoy
<aslak.hellesoy at gmail.com> wrote:
>
>
> On Mon, Apr 27, 2009 at 3:47 PM, Rick DeNatale <rick.denatale at
gmail.com>
> wrote:
>>
>> On Mon, Apr 27, 2009 at 8:13 AM, Rick DeNatale <rick.denatale at
gmail.com>
>> wrote:
>> > On Sun, Apr 26, 2009 at 11:38 PM, Ben Mabey <ben at
benmabey.com> wrote:
>> >> Rick DeNatale wrote:
>> >>>
>> >>> I finally plunked down for the beta RSpec bundle and
I''m working
>> >>> through the initial example. ?Although I''m a
fairly experienced RSpec
>> >>> user, I''m stlll learning new tricks.
>> >>>
>> >>> Anyway, ?I''m going though the mastermind example,
and everything is
>> >>> going well, except that I decided to also try out the
Textmate bundle
>> >>> for Cucumber. ?I decided to use Ben Mabey''s fork
on github since it
>> >>> seems to be the most evolved.
>> >>>
>> >>> When I try to run a feature with cmd-R, instead of
actually running I
>> >>> see something like:
>> >>>
>> >>> Running: cucumber
>> >>>
/Users/rick/mastermind/features/codebreaker_starts_game.feature
>> >>> --format=html
>> >>> false
>> >>>
>> >>> Cucumber runs fine from bash.
>> >>>
>> >>> Am I missing some setup?
>> >>>
>> >>>
>> >>
>> >> Hmm.. that is odd. What version of Cucumber are you using?
?When you
>> >> run
>> >> that exact command from the shell does it output the HTML
report?
>> >
>> > I was runing 0.3.0 upgrading to 0.3.1 has the same result BUT
>> >
>> > If I run that exact command
>> >
>> > $ /Users/rick/mastermind/features/codebreaker_starts_game.feature
>> > --format=html
>> > -bash:
/Users/rick/mastermind/features/codebreaker_starts_game.feature:
>> > Permission denied
>> >
>> >
>> > It''s trying to run the feature as an executable directly
it''s not
>> > running the cucumber executable!
>> >
>> > Why it be doin dat?
>>
>>
>> Actually, I was misreading the output in the run window, which was
>> wrapping.
>>
>> $ ?cucumber
>> /Users/rick/mastermind/features/codebreaker_starts_game.feature
>> --format=html false
>>
>>
/Users/rick/.gem/ruby/1.8/gems/cucumber-0.3.1/bin/../lib/cucumber/step_mother.rb:125:in
>> `Given'': Multiple step definitions have the same Regexp:
>> (Cucumber::Redundant)
>>
>> features/step_definitions/mastermind.rb:13:in `/^I am not yet
playing$/''
>> features/step_definitions/mastermind.rb:13:in `/^I am not yet
playing$/''
>>
>> ? ? ? ?from
>>
/Users/rick/.gem/ruby/1.8/gems/cucumber-0.3.1/bin/../lib/cucumber/step_mother.rb:124:in
>> `each''
>> ? ? ? ?from
>>
/Users/rick/.gem/ruby/1.8/gems/cucumber-0.3.1/bin/../lib/cucumber/step_mother.rb:124:in
>> `Given''
>> ? ? ? ?from ./features/step_definitions/mastermind.rb:13
>> ? ? ? ?from
>> /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
>> `gem_original_require''
>> ? ? ? ?from
>> /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
>> `polyglot_original_require''
>> ? ? ? ?from
>> /opt/local/lib/ruby/gems/1.8/gems/polyglot-0.2.5/lib/polyglot.rb:54:in
>> `require''
>> ? ? ? ?from
>>
/Users/rick/.gem/ruby/1.8/gems/cucumber-0.3.1/bin/../lib/cucumber/cli/main.rb:79:in
>> `require_files''
>> ? ? ? ?from
>>
/Users/rick/.gem/ruby/1.8/gems/cucumber-0.3.1/bin/../lib/cucumber/cli/main.rb:77:in
>> `each''
>> ? ? ? ?from
>>
/Users/rick/.gem/ruby/1.8/gems/cucumber-0.3.1/bin/../lib/cucumber/cli/main.rb:77:in
>> `require_files''
>> ? ? ? ?from
>>
/Users/rick/.gem/ruby/1.8/gems/cucumber-0.3.1/bin/../lib/cucumber/cli/main.rb:34:in
>> `execute!''
>> ? ? ? ?from
>>
/Users/rick/.gem/ruby/1.8/gems/cucumber-0.3.1/bin/../lib/cucumber/cli/main.rb:20:in
>> `execute''
>> ? ? ? ?from
/Users/rick/.gem/ruby/1.8/gems/cucumber-0.3.1/bin/cucumber:6
>> ? ? ? ?from /opt/local/bin/cucumber:19:in `load''
>> ? ? ? ?from /opt/local/bin/cucumber:19
>>
>> If I do this from the project directory:
>>
>> ?$ cucumber features/codebreaker_starts_game.feature
>> Feature: Codebreaker starts game
>> ?As a Codebreaker
>> ?I want to start a game
>> ?So that I can break the code
>>
>> ?Scenario: Start game ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#
>> features/codebreaker_starts_game.feature:5
>> ? ?Given I am not yet playing ? ? ? ? ? ? ? ? ? ? ? ?#
>> features/step_definitions/mastermind.rb:13
>> ? ?When I start a new game ? ? ? ? ? ? ? ? ? ? ? ? ? #
>> features/step_definitions/mastermind.rb:24
>> ? ?Then the game should say "Welcome to Mastermind!" #
>> features/step_definitions/mastermind.rb:28
>> ? ?And the game should say "Enter guess:" ? ? ? ? ? ?#
>> features/step_definitions/mastermind.rb:28
>>
>> 1 scenario
>> 4 passed steps
>>
>>
>> Running under textmate, cucumber seems to be somehow convincing itself
>> that
>> features/step_definitions/mastermind.rb:13:in `/^I am not yet
playing$/''
>>
>> Duplicates itself?!?
>
> What''s happening is that the file containing step defs is being
loaded
> twice, and therefore you get dupe step defs. Not sure why that''s
happening
> though...

Yes, I figured it was somehing like that. On a little more trial and
error, it appears that the bundle is adding false to the end of the
command string which is causing that steps def to be required
initially:

$ cucumber /Users/rick/mastermind/features/codebreaker_starts_game.feature
--format=html false -v
Ruby files required:
  * /Users/rick/mastermind/features/support/env.rb
  * ./features/support/env.rb
  * ./lib/mastermind/game.rb
  * /Users/rick/mastermind/features/step_definitions/mastermind.rb
/Users/rick/.gem/ruby/1.8/gems/cucumber-0.3.1/bin/../lib/cucumber/step_mother.rb:125:in
`Given'': Multiple step definitions have the same Regexp:
(Cucumber::Redundant)

features/step_definitions/mastermind.rb:13:in `/^I am not yet
playing$/''
features/step_definitions/mastermind.rb:13:in `/^I am not yet
playing$/''

Haven''t yet figured out where that false is coming from, somewhere in
runner.rb in the bundle