[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