Salutations, brother monks.
I have just started using Test::Harness, love it. The first thing you have to do, it appears, is push all your test files onto an array so you can runtests(). Rather than do this manually, I am grabbing all the files that end with .t in a directory, using File::Find.
This works, but it seemed rather long. Is there is a more elegant/shorter way to accomplish the same thing?
use strict;
use Test::Harness;
use File::Find;
my @tests;
my @test_files = get_files('./t');
push @tests, @test_files;
runtests(@tests);
sub get_files {
my $directory = shift;
opendir (DIR, $directory) or die "couldn't open directory: $direct
+ory";
my @myfiles;
my @directories_to_search = ("$directory");
find( sub {
my $name = $File::Find::name;
if ( $name =~ /\.t$/i ) {
$name =~ s|\\|/|; # substitute forward slash for back slas
+hes, icky but don't know a better way.
#print "name: $name\n";
push @myfiles, $name;
}
}, @directories_to_search);
return @myfiles;
}
Update: followup at
Re: Testing for Beginners