Devel-Cover
view release on metacpan or search on metacpan
print $s->Dump;
exit $test_result;
}
if (exists $Options->{write}) {
$dbname = $Options->{write} if length $Options->{write};
print "Writing database to $dbname\n" unless $Options->{silent};
$db->write($dbname);
$read_structure->();
$structure->write($dbname);
}
$db->clean;
exit $test_result unless $Options->{summary} || @{ $Options->{report} };
$Options->{coverage} = [ $db->collected ] unless @{ $Options->{coverage} };
$Options->{show} = { map { $_ => 1 } @{ $Options->{coverage} } };
$Options->{show}{total} = 1 if keys %{ $Options->{show} };
$db->calculate_summary(map { $_ => 1 } @{ $Options->{coverage} });
print "\n\n" unless $Options->{silent};
$db
}
sub set_files {
my ($db) = @_;
my %f = map { $_ => 1 } (
@{ $Options->{select} }
? map glob,
@{ $Options->{select} }
: $db->cover->items,
);
delete @f{ map glob, @{ $Options->{ignore} } };
my $keep = sub {
my ($f) = @_;
return 0 unless exists $db->{summary}{$_};
for (@{ $Options->{ignore_re} }) {
return 0 if $f =~ /$_/
}
for (@{ $Options->{select_re} }) {
return 1 if $f =~ /$_/
}
!@{ $Options->{select_re} }
};
@{ $Options->{file} } = sort grep $keep->($_), keys %f;
}
sub print_summary {
my ($db) = @_;
$db->print_summary($Options->{file}, $Options->{coverage}, { force => 1 })
if $Options->{summary};
}
sub run_reports {
my ($db, $argv) = @_;
for my $report (@{ $Options->{report} }) {
local @ARGV = @$argv; # restore locally processed args for each report
my $options = dclone($Options);
my $format = "Devel::Cover::Report::\u$report";
$format->get_options($options) if $format->can("get_options");
$format->report($db, $options);
if ($options->{launch}) {
if ($format->can("launch")) {
$format->launch($options);
} else {
print STDERR "The launch option is not available for the ",
"$report report.\n"
}
}
}
}
sub main {
$|++; # try to impose order on STDOUT and STDERR
check_self_coverage;
my $argv = check_options;
my $dbname = get_dbname;
check_outputdir;
my $test_result = do_test($dbname);
do_gcov($dbname);
my $db = manage_dbs($dbname, $test_result);
set_files($db);
print_summary($db);
run_reports($db, $argv);
exit $test_result;
}
main
__END__
=head1 NAME
cover - report coverage statistics
=head1 VERSION
version 1.52
=head1 SYNOPSIS
cover -test
cover -report html_basic
=head1 DESCRIPTION
Report coverage statistics in a variety of formats.
The summary option produces a short textual summary. Other reports are
available by using the report option.
The following reports are currently available:
( run in 1.258 second using v1.01-cache-2.11-cpan-d80b1682f3f )