Re: [Perlunit-users] Using @TESTS for changing tests execution order
Status: Beta
Brought to you by:
mca1001
From: Matthew A. <mc...@us...> - 2003-10-13 20:16:25
|
On Sat, Oct 04, 2003 at 10:06:19AM +0400, Dmitry Diskin wrote: > I read from TestCase.pm POD that one can populate @TESTS array in > order to specify the desired order of tests execution: Ah, I started at the bottom of my inbox and worked back... why does it matter what order the tests run? The xUnit idea is that each test (and its associated setup/teardown) should stand alone. > ### quote begin > > If you need to specify the test order, you can do one of the > following: > > =over 4 > > =item * Set @TESTS > > our @TESTS = qw(my_test my_test_2); > > This is the simplest, and recommended way. > > ### quote end > But the above does not work for me. I can include only desired tests > using @TESTS, but they are listed and executed in a random order, Hmm, that comment seems to be out of date. @TESTS is piled into a hash, then the keys are listed as you said. > I decided to override list_tests method like this: > > sub list_tests { > my $self = shift; > return sort $self->SUPER::list_tests(@_); > } That would do it, yes. Did you see in Test/Unit/TestCase.pm, # Returns a list of the tests run by this class and its superclasses. # DO NOT OVERRIDE THIS UNLESS YOU KNOW WHAT YOU ARE DOING! sub list_tests { ... Maybe that comment could be more helpful... 8-/ > It works as expected. What do you think? Am I missing something? Well it could be that you are missing something. If you try to avoid using side effects from each test, then the order should not matter. I suppose one day the tests may be run in parallel. That would be neat, and it would also be incompatible with explicit test ordering. Matthew #8-) |