I guess I'm still learning ruby.
While looking through the test code I realized I don't see what
actually _runs_.
My tests extend Test::Unit::TestCase, and define tests as
def test_sometestname
# some testing stuff
end
I scanned Test::Unit::TestCase and I see a bunch of function
definitions, but I don't see what runs. I guess I'm looking for a
method or piece of code that starts running, initializes things, finds
the test_* test methods and starts running them.
It's probably staring me in the face. Please point it out to me.
Thank you.
-Kelly
A TestRunner.
See the files in lib/1.8/test/unit for more information if you want to
understand Test::Unit.
-austin
···
On 2/14/07, kelly <railsinator@gmail.com> wrote:
I guess I'm still learning ruby.
While looking through the test code I realized I don't see what
actually _runs_.
--
Austin Ziegler * halostatue@gmail.com * http://www.halostatue.ca/
* austin@halostatue.ca * You are in a maze of twisty little passages, all alike. // halo • statue
* austin@zieglers.ca
To expand on Austin's answer just a little: I think the magic that
you're looking for is at the tail end of unit.rb, in the
lib/1.8/test/unit directory of the standard library. Test::Unit takes
advantage of the at_exit() method to register a little bit of code
that invokes the Test::Unit AutoRunner class right before the
interpreter exits.
···
On 2/14/07, kelly <railsinator@gmail.com> wrote:
I scanned Test::Unit::TestCase and I see a bunch of function
definitions, but I don't see what runs. I guess I'm looking for a
method or piece of code that starts running, initializes things, finds
the test_* test methods and starts running them.
Thanks.
Here is what I've learned so far:
I'm testing rails code. The generated rails test stubs have this line:
require File.dirname(__FILE__) + '/../test_helper'
app/test/test_helper.rb contains this line:
require 'test_help'
lib/ruby/gems/1.8/rails-1.1.6/lib/test_help.rb contains this line:
require 'test/unit'
lib/ruby/1.8/test/unit.rb contains these lines:
at_exit do
unless $! || Test::Unit.run?
exit Test::Unit::AutoRunner.run
end
end
I think this is the magic that runs the tests.
-Kelly
···
On Feb 14, 8:46 am, "Austin Ziegler" <halosta...@gmail.com> wrote:
On 2/14/07, kelly <railsina...@gmail.com> wrote:
> I guess I'm still learning ruby.
> While looking through the test code I realized I don't see what
> actually _runs_.
A TestRunner.
See the files in lib/1.8/test/unit for more information if you want to
understand Test::Unit.
-austin
--
Austin Ziegler * halosta...@gmail.com *http://www.halostatue.ca/
* aus...@halostatue.ca *You are in a maze of twisty little passages, all alike. // halo • statue
* aus...@zieglers.ca
Lyle,
Thanks very much.
I see the code you refer to. Now I wonder why it is done using the
at_exit method -- seems a little obtuse to me.
My original question has been answered. Thanks again.
-Kelly
···
On Feb 14, 9:22 am, "Lyle Johnson" <lyle.john...@gmail.com> wrote:
On 2/14/07, kelly <railsina...@gmail.com> wrote:
> I scanned Test::Unit::TestCase and I see a bunch of function
> definitions, but I don't see what runs. I guess I'm looking for a
> method or piece of code that starts running, initializes things, finds
> the test_* test methods and starts running them.
To expand on Austin's answer just a little: I think the magic that
you're looking for is at the tail end of unit.rb, in the
lib/1.8/test/unit directory of the standard library. Test::Unit takes
advantage of the at_exit() method to register a little bit of code
that invokes the Test::Unit AutoRunner class right before the
interpreter exits.
In Python's unit testing framework, you have to explicitly include
this code in every one of your test files. It's a real pain. Using the
at_exit hook in Ruby makes your unit tests cleaner.
···
On Feb 14, 11:41 am, "kelly" <railsina...@gmail.com> wrote:
I see the code you refer to. Now I wonder why it is done using the
at_exit method -- seems a little obtuse to me.