[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