[rspec-users] Problems running features with Textmate Cucumber bundle
Ben Mabey
ben at benmabey.com
Mon Apr 27 15:00:39 EDT 2009
Ben Mabey wrote:
> 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.
http://github.com/bmabey/cucumber-tmbundle/commit/8516e1c40cf6181e35d45db943de374d7516fcc1
Try updating the bundle and defining a TM_CUCUMBER_BIN in Textmate
(Textmate -> Preferences -> Advanced -> Shell Variables).
Let me know how it goes.
Thanks,
Ben
More information about the rspec-users
mailing list