Stuff with the Perl Foundation. A couple of patches in the Perl core. A few CPAN modules. That about sums it up.
I frequently have tests in tight loops. These are often Web spiders or other things and trying to stop on just the right test number can be annoying. Test::Most helps by optionally stopping the tests on the first failure, but in this case, I'm trying to track down sporadic warnings, not failures. Turns out it happens right after test 10, so I have this:
my $builder = Test::Builder->new;
foreach my $thing (@things) {
$DB::single = $builder->current_test == 10;
... all my testing code ...
}
When using the debugger, I hit 'c' for continue and it nicely halts right before the offending code.
You can also see a similar stunt Schwern pulls by using $DB::single to halt when an anonymous subroutine meets the right conditions.
Re: Useful Debugging Tip of the Day (Score:1)
For instance say test 99 of 100 starts failing and you would like to run it on its own. Is there any module that you can "use" to run only that test so that you don't see the output of the tests before or after. Something like:
use Test::More tests => 100;
use Test::Only '99';
John.
--
Re: (Score:2)
No, there's nothing like that. Part of the problem is that you get tests written like this:
If you change the state between tests and only run the second test (and not code before it), this fails. You could write your own prove which only shows failing tests, but that will likely lose diagnostic information since that goes to STDERR.
However, you can get this behavior if you're willing to switch to Test::Class. See Running Individual Tests [cpan.org] in the d
Penultimate debug-nana (Score:1)
Re: (Score:2)
Code? I'd love to see that.
Debug on failure (Score:2)
Re: (Score:2)
I'd be very happy to see that. I know that my 'die on failure' code has concerned a few people, but it's also pushing the state of the art in testing forward. I also have the luxury that I can take risks like this without threatening the entire tool chain.