1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
.. _config:
===================
Configuration files
===================
:history: 20100223T201600, new for 3.3
Coverage.py options can be specified in a configuration file. This makes it
easier to re-run coverage with consistent settings, and also allows for
specification of options that are otherwise only available in the
:ref:`API <api>`.
Configuration files also make it easier to get coverage testing of spawned
sub-processes. See :ref:`Subprocess measurement <subprocess>` for more details.
Syntax
------
A coverage.py configuration file is in classic .ini file format: sections are
introduced by a ``[section]`` header, and contain ``name = value`` entries.
Lines beginning with ``#`` or ``;`` are ignored as comments.
Strings don't need quotes. Multi-strings can be created by indenting values on
multiple lines.
Boolean values can be specified as ``on``, ``off``, ``true``, ``false``, ``1``,
or ``0`` and are case-insensitive.
Many sections and values correspond roughly to commands and options in the
command-line interface.
Here's a sample configuration file::
# .coveragerc to control coverage.py
[run]
branch = True
[report]
# Regexes for lines to exclude from consideration
exclude_lines =
# Have to re-enable the standard pragma
pragma: no cover
# Don't complain about missing debug-only code:
def __repr__
if self\.debug
# Don't complain if tests don't hit defensive assertion code:
raise AssertionError
raise NotImplementedError
# Don't complain if non-runnable code isn't run:
if 0:
if __name__ == .__main__.:
ignore_errors = True
[html]
directory = coverage_html_report
[run]
-----
These values are generally used when running product code, though some apply
to more than one command.
``branch`` (boolean, default False): whether to measure
:ref:`branch coverage <branch>` in addition to statement coverage.
``cover_pylib`` (boolean, default False): whether to measure the Python
standard library.
``data_file`` (string, default ".coverage"): the name of the data file to use
for storing or reporting coverage.
``parallel`` (boolean, default False): append the machine name, process
id and random number to the data file name to simplify collecting data from
many processes.
``timid`` (boolean, default False): use a simpler but slower trace method.
Try this if you get seemingly impossible results.
[report]
--------
Values common to many kinds of reporting.
``exclude_lines`` (multi-string): a list of regular expressions. Any line of
your source code that matches one of these regexes is excluded from being
reported as missing. More details are in :ref:`excluding`. If you use this
option, you are replacing all the exclude regexes, so you'll need to also
supply the "pragma: no cover" regex if you still want to use it.
``ignore_errors`` (boolean, default False): ignore source code that can't be
found.
``omit`` (multi-string): a list of file prefixes. If a source file begins with
one of these prefixes, it will be omitted from the report.
[html]
------
Values particular to HTML reporting.
``directory`` (string, default "htmlcov"): where to write the HTML report files.
[xml]
-----
Values particular to XML reporting.
``output`` (string, default "coverage.xml"): where to write the XML report.
|