[Ironruby-core] Cucumber / RSpec Story Runner

Ben Hall ben2004uk at googlemail.com
Wed Oct 22 15:38:21 EDT 2008


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
>
>


More information about the Ironruby-core mailing list