John Nolan
2010-Feb-20 10:16 UTC
[Ironruby-core] Getting started with IronRuby and c# issues.
Hi IronRuby mailing list, Inspired by a talk by Ben Hall on testing c# with Ruby I thought I''d give it a go but I''m frustratingly stuck at the first hurdle. I''ve emailed Ben but as I''ve not had an immediate response I thought I''d open it to you good people. Any way. I thought I''d start off simple and follow Dom Green''s blog. domgreen.com/2010/02/07/pumping-iron-ruby-net-testing/ He''s set a class in c# with a simple property (here''s mine) namespace IronRubyAndCSharp { public class Person { public string FirstName { get; set; } public Person(string name) { FirstName = name; } } } and tested it like so require "test/unit" require "../IronRuby/bin/debug/IronRubyAndCSharp.dll" class PersonTest < Test::Unit::TestCase include IronRubyAndCSharp def test_create_person_called_john john = Person.new("John") assert_not_nil(john) assert_equal("John",Person.FirstName) end end RubyMine(RM) has no problem with the require of the dll but it does have a problem recognising the namespace "IronRubyAndCSharp" and the Person class (squiggly lines ahoy). When I run the tests in RM I get NoMethodError: undefined method `FirstName'' for IronRubyAndCSharp::Person:Class C:/Users/John/Documents/IronRuby/Tests/Person_test.rb:14:in `test_create_person_called_john'' :0:in `send'' :0:in `each'' C:/Program Files (x86)/IronRuby 0.9.4.0/Lib/ruby/1.8/test/unit/ui/testrunnermediator.rb:46:in `run_suite'' :0:in `each'' C:\Program Files (x86)\JetBrains\RubyMine 2.0.1\rb\testing\patch\testunit/test/unit/ui/testrunnermediator.rb:36:in `run_suite'' testrunner.rb:213:in `start_mediator'' C:\Program Files (x86)\JetBrains\RubyMine 2.0.1\rb\testing\patch\testunit/test/unit/ui/teamcity/testrunner.rb:191:in `start'' testrunnerutilities.rb:28:in `run'' C:/Program Files (x86)/IronRuby 0.9.4.0/Lib/ruby/1.8/test/unit/autorunner.rb:216:in `run'' C:/Program Files (x86)/IronRuby 0.9.4.0/Lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' Just in case RubyMine was at fault I dropped out to good old ir.exe C:\Users\John\Documents\IronRuby\Tests>ir Person_test.rb --name test_create_pers on_called_john Loaded suite Person_test Started E Finished in 0.041992 seconds. 1) Error: test_create_person_called_john(PersonTest): NoMethodError: undefined method `FirstName'' for IronRubyAndCSharp::Person:Class Person_test.rb:14:in `test_create_person_called_john'' :0:in `send'' :0:in `each'' :0:in `each'' testrunner.rb:66:in `start_mediator'' testrunnerutilities.rb:28:in `run'' 1 tests, 1 assertions, 0 failures, 1 errors I''ve stuck my code up on github http://github.com/johnnonolan/IronRubyAndCSharp if you feel that was inclined. Any pointers, help or whatever much appreciated. PlzSendMeTehCodez John(no) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100220/84e2a62f/attachment.html>
Mark Ryall
2010-Feb-20 10:26 UTC
[Ironruby-core] Getting started with IronRuby and c# issues.
ironruby will have ''rubified'' the Person class''s FirstName method to first_name and I think you mean to assert against the john instance of Person (rather than the Person class). Otherwise it looks pretty close. Try: require "test/unit" require "../IronRuby/bin/debug/IronRubyAndCSharp.dll" class PersonTest < Test::Unit::TestCase include IronRubyAndCSharp def test_create_person_called_john john = Person.new("John") assert_not_nil(john) assert_equal("John",john.first_name) end end On Sat, Feb 20, 2010 at 9:16 PM, John Nolan <johnnonolan at gmail.com> wrote:> Hi IronRuby mailing list, > Inspired by a talk by Ben Hall on testing c# with Ruby I thought I''d giveit> a go but > I''m frustratingly stuck at the first hurdle. I''ve emailed Ben but as I''ve > not had an immediate response I thought I''d open it to you good people. > Any way. I thought I''d start off simple and follow Dom Green''s > blog. domgreen.com/2010/02/07/pumping-iron-ruby-net-testing/ > He''s set a class in c# with a simple property (here''s mine) > namespace IronRubyAndCSharp > { > public class Person > { > public string FirstName { get; set; } > public Person(string name) > { > FirstName = name; > } > } > } > and tested it like so > require "test/unit" > require "../IronRuby/bin/debug/IronRubyAndCSharp.dll" > class PersonTest < Test::Unit::TestCase > include IronRubyAndCSharp > def test_create_person_called_john > john = Person.new("John") > assert_not_nil(john) > assert_equal("John",Person.FirstName) > end > end > RubyMine(RM) has no problem with the require of the dll but it does have a > problem recognising the namespace "IronRubyAndCSharp" > and the Person class (squiggly lines ahoy). > When I run the tests in RM I get > NoMethodError: undefined method `FirstName'' for > IronRubyAndCSharp::Person:Class > C:/Users/John/Documents/IronRuby/Tests/Person_test.rb:14:in > `test_create_person_called_john'' > :0:in `send'' > :0:in `each'' > C:/Program Files > (x86)/IronRuby0.9.4.0/Lib/ruby/1.8/test/unit/ui/testrunnermediator.rb:46:in `run_suite''> :0:in `each'' > C:\Program Files (x86)\JetBrains\RubyMine > 2.0.1\rb\testing\patch\testunit/test/unit/ui/testrunnermediator.rb:36:in > `run_suite'' > testrunner.rb:213:in `start_mediator'' > C:\Program Files (x86)\JetBrains\RubyMine > 2.0.1\rb\testing\patch\testunit/test/unit/ui/teamcity/testrunner.rb:191:in > `start'' > testrunnerutilities.rb:28:in `run'' > C:/Program Files > (x86)/IronRuby 0.9.4.0/Lib/ruby/1.8/test/unit/autorunner.rb:216:in `run'' > C:/Program Files > (x86)/IronRuby 0.9.4.0/Lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' > Just in case RubyMine was at fault I dropped out to good old ir.exe > C:\Users\John\Documents\IronRuby\Tests>ir Person_test.rb --name > test_create_pers > on_called_john > Loaded suite Person_test > Started > E > Finished in 0.041992 seconds. > 1) Error: > test_create_person_called_john(PersonTest): > NoMethodError: undefined method `FirstName'' for > IronRubyAndCSharp::Person:Class > Person_test.rb:14:in `test_create_person_called_john'' > :0:in `send'' > :0:in `each'' > :0:in `each'' > testrunner.rb:66:in `start_mediator'' > testrunnerutilities.rb:28:in `run'' > 1 tests, 1 assertions, 0 failures, 1 errors > I''ve stuck my code up on > github http://github.com/johnnonolan/IronRubyAndCSharp if you feel thatwas> inclined. > Any pointers, help or whatever much appreciated. > PlzSendMeTehCodez > > John(no) > _______________________________________________ > 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/20100220/76149074/attachment.html>