Hi, I have some old test/unit testcases (used for browser acceptance
tests) that I want to convert to rspec.
I first started converting assertions to matchers and my tests ran
fine using TestRunner.run method
Here is my test that works when Spec::Matchers were added to TestUnit
only
require ‘test/unit’
require ‘spec/expectations’
class Test::Unit::TestCase
include Spec::Matchers
end
class Test_spec < Test::Unit::TestCase
def test_a
‘a’.should == ‘a’
end
end
TestRunner
require ‘test/unit/ui/console/testrunner’
puts “before runner some code”
Test::Unit::UI::Console::TestRunner.run Test_spec
puts “after runner some code”
The reason I use TestRunner is for some browser driving and desktop
cleanup and other non test stuff.
Then console runner runs testcase and I follow with some other code
(email, notifications etc…)
When I now started using ‘spec/test/unit’ the Console runner will not
run tests.
here is the setup with ‘spec/test/unit’ that does not run
require ‘spec/test/unit’
class Test_spec < Test::Unit::TestCase
def test_a
‘a’.should == ‘a’
end
end
include Spec::Matchers
puts “before runner some code”
2) here is the setup with ‘spec/test/unit’ that does not run
puts “before runner”
Test::Unit::UI::Console::TestRunner.run Test_spec
puts “after runner”
== I use rspec 1.2.7 (with Ruby 1.8.6 on Windows)
Am I missing something?
This is by design. When you run with RSpec, RSpec takes over the run,
taking test/unit’s runner out of the picture. Sorry I can’t give you a
better answer, except to say that future versions of RSpec may not
suffer this problem. But that’s a few months off (at least), and just
a gleam in my eye.
David
Thanks David,
And is there another mechanism I could use from Rspec that explicitly
calls TestCase or ExampleGroup class?
I just want to retain that mechanism of ‘run some code then run tests
then run some code’
This is for Watir Browser tests so I have workflow setup code that
then drives test cases