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

Ben Mabey ben at benmabey.com
Mon Apr 27 14:40:29 EDT 2009


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


More information about the rspec-users mailing list