unfortunately, I dont think it does. The public_instance_methods method, seems
to return methods in a random order (im sure its not random, it just looks
random)
class Tester
def test_020
puts "020"
end
def test_030
puts "030"
end
def test_100
puts "100"
end
def test_010
puts "010"
end
end
puts Tester.public_instance_methods.grep(/test_/).join("\n")
gives this:
test_030
test_100
test_010
test_020
----- Original Message -----
From: Bret Pettichord <[EMAIL PROTECTED]>
Date: Tuesday, August 30, 2005 10:40 pm
Subject: Re: [Wtr-general] Running tests in source code order
> A simpler method is simply to embed line numbers in your test names...
>
> def test_001_something
> end
>
> def test_002_another_thing
> end
>
> Or, you can simply remove the code that explicitly puts the tests
> in
> alphabetical order.
>
> Here's the original code:
>
> # Rolls up all of the test* methods in the fixture into
> # one suite, creating a new instance of the fixture for
> # each method.
> def self.suite
> method_names = public_instance_methods(true)
> tests = method_names.delete_if {|method_name| method_name
> !~ /^test./}
> suite = TestSuite.new(name)
> tests.sort.each do
> |test|
> catch(:invalid_test) do
> suite << new(test)
> end
> end
> if (suite.empty?)
> catch(:invalid_test) do
> suite << new(:default_test)
> end
> end
> return suite
> end
>
> Here it is without the sorting behavior:
>
> # Rolls up all of the test* methods in the fixture into
> # one suite, creating a new instance of the fixture for
> # each method.
> def self.suite
> method_names = public_instance_methods(true)
> tests = method_names.delete_if {|method_name| method_name
> !~ /^test./}
> suite = TestSuite.new(name)
> tests.each do ### change made here
> |test|
> catch(:invalid_test) do
> suite << new(test)
> end
> end
> if (suite.empty?)
> catch(:invalid_test) do
> suite << new(:default_test)
> end
> end
> return suite
> end
>
> I haven't tested this change, but i think this will give you the
> tests in
> the order you want.
>
>
>
>
> At 06:38 PM 8/30/2005, Paul Rogers wrote:
> >Here is some code that runs tests in source code order. I pretty
> certain
> >Bret posted how to do this ( by overriding the suite method) but
> he didnt
> >provide any code.
> >
> >This only works if there is one class that does tests in the
> file, but Im
> >sure someone can figure out how to fix that
> >
> >
> >
> >
> >#
> ># Example of how to override the suite method of Testcase to run
> tests in
> >source order
> >#
> ># Only works if there is one class that runs tests
> >
> >
> >require 'test/unit'
> >
> >module Test
> > module Unit
> > class TestCase
> > def self.suite
> >
> > lines = IO.readlines(__FILE__)
> > tests = lines.grep(/^ *(def test)/){ |line|
> > line.strip.gsub('def ' , '') }
> >
> > suite = TestSuite.new(name)
> > tests.each do |this_test|
> > puts "Adding test " + this_test
> > catch(:invalid_test) do
> > suite << new(this_test)
> > end
> > end
> > if (suite.empty?)
> > catch(:invalid_test) do
> > suite << new(:default_test)
> > end
> > end
> > return suite
> > end
> > end
> > end
> >end
> >
> >
> >class Tester <Test::Unit::TestCase
> >
> > def test_020
> > puts "020"
> > end
> >
> > def test_030
> > puts "030"
> > end
> >
> > def test_100
> > puts "100"
> > end
> >
> > def test_010
> > puts "010"
> > end
> >
> >end
> >
> >
> >
> >
> >
> >_______________________________________________
> >Wtr-general mailing list
> >[email protected]
> >http://rubyforge.org/mailman/listinfo/wtr-general
>
> _____________________
> Bret Pettichord
> www.pettichord.com
>
> _______________________________________________
> Wtr-general mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/wtr-general
>
_______________________________________________
Wtr-general mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/wtr-general