[Ironruby-core] Cucumber / RSpec Story Runner

Ben Hall ben2004uk at googlemail.com
Wed Oct 22 17:32:39 EDT 2008


Well, this is how Cucumber has implement the code, as such there must
be something different. Something is happening, i'm just not sure
what, but there is a problem still with IronRuby.

The file i'm looking at is "c:\ruby\bin\cucumber" - maybe its
different due to rubygems...

Without it, i'm not sure how else to run Cucumber. For example, this
also fails to output anything:
E:\IronRuby\r156\build\debug>ir "c:\ruby\bin\cucumber" --help

This also fails:
E:\IronRuby\r156\build\debug>ir
"C:\ruby\lib\ruby\gems\1.8\gems\cucumber-0.1.8\lib\cucumber.rb" --help
ir "c:/ruby/bin/cucumber" --help

However, this works:
C:/Ruby/bin/ruby.exe "c:/ruby/bin/cucumber" --help



On Wed, Oct 22, 2008 at 8:56 PM, Orion Edwards
<orion.edwards at open2view.com> wrote:
> load always needs the .rb on the end (in MRI as well as IronRuby).
> It looks like you should be using require instead - require is not at all
> the same thing as load
>
> Currently with IronRuby SVN r167 this happens:
>
> There is a file called 'mylib.rb' in the current directory
>
> require 'mylib' # works in both IR and MRI
> require 'mylib.rb' # works in both IR and MRI
> load 'mylib.rb' # works in both IR and MRI
> load 'mylib' # works in neither IR or MRI - it's not supposed to
>
> Looks all correct to me... Maybe time to close that bug?
>
> Ben Hall wrote:
>
> Oh, I remember I had problems with cucumber due to require needing to
> have .rb on the end
> (http://rubyforge.org/tracker/?group_id=4359&atid=16798&func=detail&aid=20167).
> For example, this line - load 'cucumber'
> E:\IronRuby\r156\src\IronRuby.Libraries\Builtins\KernelOps.cs:380:in
> `load': no such file to load -- cucumber (LoadError
> )
>         from :0
> Command I was using was: E:\IronRuby\r156\build\debug>ir
> "c:\ruby\bin\cucumber" -r
> "E:\IronRuby\r156\cucumber\examples\calculator\features\steps\
> calculator_steps.rb"
> "E:\IronRuby\r156\cucumber\examples\calculator\features\addition.feature"
> I made a change (load 'cucumber.rb'), but now i'm getting You must gem
> install win32console to get coloured output on this ruby platform
> (i386-mswin32)  but no output :(   I guess I need to do something
> else....
> On Wed, Oct 22, 2008 at 5:21 PM, Curt Hagenlocher <curth at microsoft.com>
> wrote:
>
>
> I've attached an adapter against MSSQL that I use for testing.  This adapter
> is buggy and incomplete and was cobbled together from many sources.
> Absolutely nothing about it is guaranteed, but someone may find some use in
> it.
> From: ironruby-core-bounces at rubyforge.org
> [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Ivan Porto Carrero
> Sent: Wednesday, October 22, 2008 1:08 AM
> To: ironruby-core at rubyforge.org
> Subject: Re: [Ironruby-core] Cucumber / RSpec Story Runner
> I'll try cucumber tonight when i get home.
> I'm trying to build a little rails app with rspec etc.
> What's the status on a .NET based active record adapter?
> I've been thinking that it might be necessary to write an adapter that
> creates the correct .NET provider and dispatches the calls through that
> layer.
> Either as a part of ruby-dbd or as adapters to ActiveRecord..
> dbd gives the advantage that you can use it everywhere then.
> any thoughts?
> ---
> Met vriendelijke groeten - Best regards - Salutations
> Ivan Porto Carrero
> GSM: +32.486.787.582
> Blog: http://flanders.co.nz
> Twitter: http://twitter.com/casualjim
> On Wed, Oct 22, 2008 at 9:56 AM, Ben Hall <ben2004uk at googlemail.com> wrote:
> Nice work guys!!  Pleased that I won't be having to use a hacked
> version of r156 :)
> One of the problems you mentioned (pretty errors due to backtrace)
> will cause the story runner in 1.1.4 to blow up and throw an
> exception, but as that is now Cucumber I don't know if we will have
> the same issues.  Have you tried Cucumber yet?
> Ben
> On Wed, Oct 22, 2008 at 8:01 AM, John Lam (IRONRUBY)
> <jflam at microsoft.com> wrote:
>
>
> -X:Interpret forces execution to always go through the DLR interpreter
> rather than through the DLR compilation engine.
> This trades-off faster startup for decreased throughput.
> We have a number of different strategies that we're exploring to improve
> things:
> 1) Ahead of time cached pre-compilation to native x86 via ngen
> 2) Mixed mode DLR interpreter and DLR compiler. We'll start off
> interpreting and compile the 'hot' code paths dynamically at runtime.
> 3) Mixed mode Ruby interpreter and DLR compiler. We can improve perf even
> more by writing a Ruby specific interpreter and avoiding the tree transform
> from the Ruby AST to DLR trees for the interpreted code paths.
> We really haven't done any performance tuning of note on IronRuby so far.
> We're focusing on getting the language correct; performance will come after
> we stabilize the language.
> Thanks,
> -John
>
>
> -----Original Message-----
> From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-
> bounces at rubyforge.org] On Behalf Of Orion Edwards
> Sent: Tuesday, October 21, 2008 11:38 PM
> To: ironruby-core at rubyforge.org
> Subject: Re: [Ironruby-core] Cucumber / RSpec Story Runner
> I'm not on the same machine as earlier - the previous machine was my
> work desktop PC running vista
> This one is running windows XP under vmware on a macbook
> Running with -X:Interpret I see 0.78 seconds on repeated runs (0.79 on
> the first) Without it I see 1.95 seconds (2.05 on the first run)
> I didn't know about -X:Interpret...
> So what exactly does it do differently, and if it's so much faster,
> why isn't it the default?
> On 22/10/2008, at 7:21 PM, John Lam (IRONRUBY) wrote:
>       Great - I have it working now on my machine.
>       I'm seeing 0.45s or so as the net time (excluding startup) for the
> tests if I run using the -X:Interpret flag. Can you try running with
> that flag enabled on your machine and let me know how quickly it runs?
>       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 11:07 PM
>       To: ironruby-core at rubyforge.org
>       Subject: Re: [Ironruby-core] Cucumber / RSpec Story Runner
>       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=
> 4
> 3
> 59&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
> =
> 2
> 2315
> http://rubyforge.org/tracker/?group_id=4359&atid=16798&func=detail&aid
> =
> 2
> 2348
>       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> <mailto: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
> <mailto: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
> <mailto: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
>       _______________________________________________
>       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
> _______________________________________________
> 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
>
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>


More information about the Ironruby-core mailing list