[Ironruby-core] Cucumber / RSpec Story Runner

Orion Edwards orion.edwards at open2view.com
Wed Oct 22 02:07:16 EDT 2008


Sure. Here's the entire contents of the ruby file

$LOAD_PATH << 'c:/dev/rspec/lib'

require 'spec'

module ActiveSupport; end # workaround ironruby defined? bug

class Vehicle
   def initialize(people)
     @people = people
   end
   attr_accessor :people
end

describe Vehicle do
   it "should assign people using the constructor" do
     car = Vehicle.new(['orion', 'john', 'jim'])
     car.should have(3).people
   end
end

Note I'm not using gems or anything else like that. To replicate this  
you'd basically do this:

svn checkout ironruby 168 into c:\dev\ironruby

rake compile

git clone rspec straight from github, and stick it in c:\dev\rspec

edit c:\dev\rspec\lib\spec\extensions\main.rb and fix the call to  
File.expand_path

spin up a command prompt and set PATH=blahblah so it can see the  
ironruby binaries that got build previously

ir rspectest.rb



On 22/10/2008, at 6:40 PM, John Lam (IRONRUBY) wrote:

> Orion – can you supply us with your rspectest.rb file?
>
> I was just hacking around with rspec 1.1.9 here, and it’s blowing up  
> with a bunch of dependencies on startup.
>
> Thanks,
> -John
>
> From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org 
> ] On Behalf Of Orion Edwards
> Sent: Tuesday, October 21, 2008 7:37 PM
> To: ironruby-core at rubyforge.org
> Subject: Re: [Ironruby-core] Cucumber / RSpec Story Runner
>
> The nested defined? bug is logged here:
>
> http://rubyforge.org/tracker/index.php?func=detail&aid=22503&group_id=4359&atid=16798
>
> The 'caller' one is actually 2 bugs, both of which have been logged  
> by ben hall already
>
> http://rubyforge.org/tracker/?group_id=4359&atid=16798&func=detail&aid=22315
> http://rubyforge.org/tracker/?group_id=4359&atid=16798&func=detail&aid=22348
>
> For those interested in running rspec right now, a better fix is to  
> replace line 26 of main.rb with
> args.last[:spec_path] = File.expand_path( caller(0) 
> [1].split(':').first )
>
> This will only cause rspec to lose the line number - you also have  
> to run ir with the -D flag, or it doesn't include the path at all.
>
> As far as my quick-hack investigation shows me, rspec only uses this  
> data for showing friendly error messages, rather than any core  
> logic, so perhaps it's not super-critical.
> It would be nice to run it unpatched tho, IronRuby is looking  
> incredibly close to doing that :-)
>
>
> Jim Deville wrote:
> I’ll add a rake task to compile release. Can you try to isolate  
> those cases and file bugs? The second one is pretty easy, but I’d  
> like to have tracking on both of them.
>
> From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org 
> ] On Behalf Of Orion Edwards
> Sent: Tuesday, October 21, 2008 7:04 PM
> To: ironruby-core at rubyforge.org
> Subject: Re: [Ironruby-core] Cucumber / RSpec Story Runner
>
> I just ran rspec 1.1.9 (straight from github) on IronRuby build 167,  
> and it appears to work (I only have a simple test, but hey).
>
> I only had to make 2 changes:
>
> rspec\lib\spec\extensions\main.rb:26 is
> args.last[:spec_path] = File.expand_path(caller(0)[1])
> IronRuby still doesn't seem to handle caller quite the same as MRI.  
> I have no idea what that code is for, but I replaced it with this as  
> a quick hack
> args.last[:spec_path] = "."
> and it seemed to work.
>
> I encountered another problem using the 'have' matcher - rspec does  
> this
> if inflector = (defined?(ActiveSupport::Inflector) ?  
> ActiveSupport::Inflector : (defined?(Inflector) ? Inflector : nil))
> IronRuby throws uninitialized constant Object::ActiveSupport,  
> whereas MRI just returns nil - it looks like IR isn't handling  
> defined? on nested things properly yet.
>
> To work around this I just put
> module ActiveSupport; end
> at the top of my ruby file to get around the nested module issue.
>
> And presto!
> C:\development\irtest>ir rspectest.rb
> .
>
> Finished in 2.072133 seconds
>
> 1 example, 0 failures
>
> C:\development\irtest>ruby rspectest.rb
> .
>
> Finished in 0.053 seconds
>
> 1 example, 0 failures
>
> The only problem now is that 2.07 seconds is somewhat larger than  
> 0.053... I am using the debug build of ir though, as that's what  
> rake:compile seems to give me.
>
> Just playing with VS now to see if I can build a release version and  
> try that
>
> Ben Hall wrote:
> Hi,
>
> To get rspec to work you will need to modify the actual Ironruby
> source.  I've raised bugs to get the changes required fixed, however I
> did this based on 1.1.4, I think Cucumber will have a whole load more
> bugs attached as it has more dependencies.
>
> I know for a fact you won't be able to run Cucumber unmodified due to
> existing bugs around gems.  (for example, gem needing .rb at the end
> of the file to be able to find it)
>
> However, I haven't had chance to take a closer look.
>
> Ben
>
>
>
> On Fri, Oct 17, 2008 at 2:53 PM, Curt Hagenlocher  
> <curth at microsoft.com> wrote:
>
> If you explicitly set the GEM_PATH before requiring gems, you should  
> be able to use gems that are already present.  I haven't tried any  
> other gem operations.
>
> I assume you're running with the latest source?
>
> -----Original Message-----
> From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org 
> ] On Behalf Of Pat Gannon
> Sent: Friday, October 17, 2008 1:30 AM
> To: ironruby-core at rubyforge.org
> Subject: [Ironruby-core] Cucumber / RSpec Story Runner
>
> Has anyone tried to get Cucumber (or it's predecessor: the RSpec story
> runner) to work with IronRuby?  I have not had any luck thus far (I am
> extremely new to Ruby), and I would really like to be able to use
> Cucumber to write executable feature documentation for my .NET code.
>
> http://github.com/aslakhellesoy/cucumber/wikis
>
> I copied it under the "lib" directory, as well as several of its
> dependencies, but when I try to do "require
> 'cucumber-0.1.7/lib/cucumber'", ir (interactive ruby) fails with a  
> stack
> overflow.  The same thing happens when I try to require some its
> dependencies manually (eg. "require 'hoe-1.8.0/lib/hoe'" and "require
> 'rake-0.8.3/lib/rake'"), but some work just fine (eg. "require
> 'polyglot-0.2.3/lib/polyglot'" and "require
> 'treetop-1.2.4/lib/treetop'").
>
> I also tried to get gem working to aide me in this process, but I had
> problems with that too.  Has anyone got gem working with IronRuby?
>
> Thanks in advance!
> Pat Gannon
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
> -- 
> Orion Edwards
> Web Application Developer
>
> T: +64 7 859 2120
> F: +64 7 859 2320
> E: orion.edwards at open2view.com
>
> Open2view.com
> The Real Estate Website
>
> <image001.jpg>
>
>
>
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
> -- 
> Orion Edwards
> Web Application Developer
>
> T: +64 7 859 2120
> F: +64 7 859 2320
> E: orion.edwards at open2view.com
>
> Open2view.com
> The Real Estate Website
>
> <image001.jpg>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20081022/28bc641f/attachment-0001.html>


More information about the Ironruby-core mailing list