vendredi 4 décembre 2015

NoMethodError: undefined method `run' for "unit/TestTestName.rb" when running testsuite in ruby

I want to write a testsuite to run my unit tests in ruby. So far I have come up with:

require 'test/unit/ui/console/testrunner'
require 'test/unit/testsuite'

class RunTests
  def self.Run(arg)
    test_suite = Test::Unit::TestSuite.new("All ATP Tests")
    test_suite << 'unit/TestName1.rb'
    test_suite << 'unit/TestName2.rb'
    test_suite << 'unit/TestName3.rb'

    arg used here in env setup

    Test::Unit::UI::Console::TestRunner::new(test_suite).start
  end

end

the tests all have the structure:

require 'test/unit'

class TestCalssName < Test::Unit::TestCase

  def setup

  end

  def test_testcasename

  end

  def teardown

  end

end

When I test the runner out in irb I get an error about undefined method run within a testcase:

irb(main):002:0> RunTests::Run("-env=qa-old")
Loaded suite All ATP Tests
Started


Finished in 0.002 seconds.

0 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
0% passed

0.00 tests/s, 0.00 assertions/s
NoMethodError: undefined method `run' for "unit/TestTestName.rb":String
from /home/user/.gem/jruby/1.9/gems/test-unit-2.5.5/lib/test/unit/testsuite.rb:121:in `run_test'
from /home/user/.gem/jruby/1.9/gems/test-unit-2.5.5/lib/test/unit/testsuite.rb:53:in `run'
from /home/user/.gem/jruby/1.9/gems/test-unit-2.5.5/lib/test/unit/ui/testrunnermediator.rb:65:in `run_suite'
from /home/user/.gem/jruby/1.9/gems/test-unit-2.5.5/lib/test/unit/ui/testrunnermediator.rb:44:in `run'
from /home/user/.gem/jruby/1.9/gems/test-unit-2.5.5/lib/test/unit/ui/testrunnermediator.rb:100:in `with_listener'
from /home/user/.gem/jruby/1.9/gems/test-unit-2.5.5/lib/test/unit/ui/testrunnermediator.rb:40:in `run'
from /home/user/.gem/jruby/1.9/gems/test-unit-2.5.5/lib/test/unit/ui/testrunner.rb:40:in `start_mediator'
from /home/user/.gem/jruby/1.9/gems/test-unit-2.5.5/lib/test/unit/ui/testrunner.rb:25:in `start'
from /home/user/projects/verizon-smoke-tests/src/main/ruby/unit/RunATP.rb:27:in `Run'
from (irb):2:in `evaluate'
from org/jruby/RubyKernel.java:1119:in `eval'
from org/jruby/RubyKernel.java:1519:in `loop'
from org/jruby/RubyKernel.java:1282:in `catch'
from org/jruby/RubyKernel.java:1282:in `catch'
from /usr/local/jruby-1.7.9/bin/irb:13:in `(root)'
irb(main):003:0>

I tried putting a run method into the testcases but I still get the error (the exact same error about the run method being undefined). Am I missing something?

A

Aucun commentaire:

Enregistrer un commentaire