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

Ben Mabey
2009-04-27T18:40:29Z

Rick DeNatale wrote:
> On Mon, Apr 27, 2009 at 11:42 AM, Ben Mabey <ben at benmabey.com>
wrote:
>
>> Do you happen to be explicitly requiring any of your step definitions
from
>> your env.rb or other files?  What does your env.rb look like?
>>
>>
>
> Yes, env.rb is right out of the RSpec book B4.0
''printing'' p 43
>
> $: << File.join(File.dirname(__FILE__), "/../../lib" )
> require ''spec/expectations''
> require ''mastermind''
>
> You are right that the false is being output by running the command,
> not the command line.  I hacked the runner.rb file in the bundle to
> insert a <br\> between outputting and running the command.
>
> The mystery is why the same command running in Textmate reloads the
> spec definition, but not when invoked by bash?  And when I add false
> to the end of the command in bash it does.
>
> Having just typed that I realize that I wasn''t really sure that
the
> reload WAS the problem running under textmate. So I hacked the run
> method in runner.rb in the bundle to show stderr as well as stdout:
>
>         in_project_dir do
>           @output << %Q{Running: #{full_command = "bash
\"2>&1
> #{command} #{@file.rake_task} #{argv.join(''
'')}\""} \n}
>           @output << "<br\>"
>           @output << Kernel.system(full_command)
>         end
>
> And this outputs:
>
> Running: bash "2>&1 cucumber
> /Users/rick/mastermind/features/codebreaker_starts_game.feature
> --format=html"
> bash: 2>&1 cucumber
> /Users/rick/mastermind/features/codebreaker_starts_game.feature
> --format=html: No such file or directory false
>
> I''m guessing that the file it isn''t finding is cucumber?
Is there an
> environment variable I need to set in textmate?
>
>
>
>

Ahh, I''ve had similar issues with RSpec''s bundle before.
Basically,
your PATH is not being used for all of your OSX applications. From the
rspec site[1]:

You may need to adjust the PATH in your ~/.MacOSX/environment.plist file
to point to the directory
where your ruby and spec executables live. For example:

<key>PATH</key>
<string>/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/usr/local/mysql/bin</string>



I will also add a TM_CUCUMBER_BIN constant option so if that is set it
will use that instead of assuming ''cucumber'' is in your path.
I''ll let
you know when that is done.

-Ben



1.http://rspec.info/documentation/tools/extensions/editors/textmate.html