Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
COVER(1)	      User Contributed Perl Documentation	      COVER(1)

       cover - report coverage statistics

       version 1.38

	cover -test

	cover -report html_basic

       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:

	html	    - detailed HTML reports  (default)
	html_basic  - detailed HTML reports with syntax	highlighting
	text	    - detailed textual summary
	compilation - output in	a format similar to Perl errors
	json	    - output in	a JSON format
	vim	    - show coverage information	in vim gutter

       The following command line options are supported:

	-h -help	      -	show help
	-i -info	      -	show documentation
	-v -version	      -	show version

	-silent		      -	don't print informational messages (default off)
	-summary	      -	give summary report		   (default on)
	-report	report_format -	report format			   (default html)
	-outputdir dir	      -	directory for output		   (default given db)
	-launch		      -	launch report in viewer	(if avail) (default off)

	-select	filename      -	only report on the file		   (default all)
	-ignore	filename      -	don't report on	the file	   (default none)
	-select_re RE	      -	append to REs of files to select   (default none)
	-ignore_re RE	      -	append to REs of files to ignore   (default none)
	-relative_only	      -	for XS,	ignore absolute	paths	   (default off)
	-gcov_chdir	      -	for XS,	run gcov in subdirs	   (default off)
	-write [db]	      -	write the merged database	   (default off)
	-delete		      -	drop database(s)		   (default off)
	-dump_db	      -	dump database(s) (for debugging)   (default off)

	-coverage criterion   -	report on criterion  (default all available)

	-test		      -	drop database(s) and run make test (default off)
	-gcov		      -	run gcov to cover XS code     (default on if using gcc)
	-make make_prog	      -	use the	given 'make' program for 'make test'
	-prefer_lib	      -	prefer files in	lib		   (default off)

	-add_uncoverable_point	  string
	-delete_uncoverable_point string
	-uncoverable_file	  file

	other options specific to the report format

	coverage_database [coverage_database ...]

       The "-report", "-select", "-ignore", "-select_re", "-ignore_re",	and
       "-coverage" options may be specified multiple times.

       The following "-report" options are available in	the core module.
       Other reports may be available if they've been installed	from external

       html|html_minimal (default)
	   HTML	reporting. Percentage thresholds are colour-coded and
	   configurable	via -report_c0 <integer>, -report_c1 <integer> and
	   -report_c2 <integer>.:

	       0%      75%	90%	 100%
	       |   ..	|   ..	 |   ..	  |
		  <c0	   <c1	    <c2	  c3
		  red	  yellow   orange green

	   HTML	reporting with syntax highlighting if PPI::HTML	or Perl::Tidy
	   module is detected. Like html|html_minimal reporting, percentage
	   thresholds are colour-coded and configurable.

	   Plain text reporting.

	   A textual report in a format	similar	to that	output by Perl itself
	   such	that the report	may be used by your editor or other reporting
	   tools to show where coverage	is missing.

	   A report in JSON format.

       vim A report suitable for use with the vim editor to show coverage data
	   in the sign column.

       Any number of coverage databases	may be specified on the	command	line.
       These databases will be merged and the reports will be based on the
       merged information.  If no databases are	specified the default database
       (cover_db) will be used.

       The "-write" option will	write out the merged database.	If no name is
       given for the new database, the first database read in will be
       overwritten.  When this option is used no reports are generated by

       Specify the "-select", "-select_re", "-ignore", and "-ignore_re"
       options to report on specific files.  "-select" and "-ignore" are
       interpreted as shell globs; "-select_re"	and "-ignore_re" are
       interpreted as regular expressions.

       Specify "-coverage" options to report on	specific criteria.  By default
       all available information on all	criteria in all	files will be
       reported.  Available coverage options are statement, branch, condition,
       subroutine, pod,	and default (which equates to all available options).
       However,	if you know you	only want coverage information for certain
       criteria	it is better to	only collect data for those criteria in	the
       first place by specifying them at that point.  This will	make the data
       collection and reporting	processes faster and less memory intensive.
       See the documentation for Devel::Cover for more information.

       If you want all *except*	some criteria, then you	can say	something like
       "-coverage default,-pod".

       If you specify multiple "-report" options, make sure that they do not
       conflict.  For example, the different HTML reports will overwrite each
       other's results.

       The "-test" option will delete the databases and	run your tests to
       generate	new coverage data before reporting on it.  Devel::Cover	knows
       how to work with	standard Perl Makefiles	as well	as Module::Build based
       distributions.  For detailed instructions see the documentation for
       ExtUtils::MakeMaker at
       <> or for	Module::Build
       at <> both of which come as
       standard	in recent Perl distributions.

       The "-gcov" option will try to run gcov on any XS code.	This requires
       that you	are using gcc of course.  If you are using the "-test" option
       will be turned on by default. If	you have XS code in subdirectories,
       you will	probably need to add the "-gcov_chdir" option since gcov seems
       to work better with that.

       The "-prefer_lib" option	tells Devel::Cover to report on	files in the
       lib directory even if they were used from the blib directory.

       The following exit values are returned:

       0   All operations were completed successfully.

       >0  An error occurred.

       With the	-test option the exit status of	the underlying test run	is


       Did I mention that this is alpha	code?

       See the BUGS file.

       Copyright 2001-2022, Paul Johnson (

       This software is	free.  It is licensed under the	same terms as Perl

       The latest version of this software should be available from my

perl v5.32.1			  2022-06-05			      COVER(1)


Want to link to this manual page? Use this URL:

home | help