1 .. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 |
1 .. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 |
2 .. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt |
2 .. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt |
3 |
3 |
4 =========== |
4 =========== |
5 Coverage.py |
5 Coverage.py |
6 =========== |
6 =========== |
7 |
7 |
8 Code coverage testing for Python. |
8 Code coverage testing for Python. |
9 |
9 |
10 | |license| |versions| |status| |docs| |
10 | |license| |versions| |status| |
11 | |ci-status| |win-ci-status| |codecov| |
11 | |ci-status| |win-ci-status| |docs| |codecov| |
12 | |kit| |format| |repos| |
12 | |kit| |format| |repos| |
13 | |tidelift| |saythanks| |
13 | |stars| |forks| |contributors| |
14 |
14 | |tidelift| |twitter-coveragepy| |twitter-nedbat| |
15 .. downloads badge seems to be broken... |downloads| |
|
16 |
15 |
17 Coverage.py measures code coverage, typically during test execution. It uses |
16 Coverage.py measures code coverage, typically during test execution. It uses |
18 the code analysis tools and tracing hooks provided in the Python standard |
17 the code analysis tools and tracing hooks provided in the Python standard |
19 library to determine which lines are executable, and which have been executed. |
18 library to determine which lines are executable, and which have been executed. |
20 |
19 |
21 .. |tideliftlogo| image:: doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png |
20 Coverage.py runs on many versions of Python: |
|
21 |
|
22 * CPython 2.7. |
|
23 * CPython 3.5 through 3.9 alpha 2. |
|
24 * PyPy2 7.0 and PyPy3 7.0. |
|
25 |
|
26 Documentation is on `Read the Docs`_. Code repository and issue tracker are on |
|
27 `GitHub`_. |
|
28 |
|
29 .. _Read the Docs: https://coverage.readthedocs.io/ |
|
30 .. _GitHub: https://github.com/nedbat/coveragepy |
|
31 |
|
32 |
|
33 **New in 5.0:** SQLite data storage, JSON report, contexts, relative filenames, |
|
34 dropped support for Python 2.6, 3.3 and 3.4. |
|
35 |
|
36 |
|
37 For Enterprise |
|
38 -------------- |
|
39 |
|
40 .. |tideliftlogo| image:: https://nedbatchelder.com/pix/Tidelift_Logo_small.png |
22 :width: 75 |
41 :width: 75 |
23 :alt: Tidelift |
42 :alt: Tidelift |
|
43 :target: https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme |
24 |
44 |
25 .. list-table:: |
45 .. list-table:: |
26 :widths: 10 100 |
46 :widths: 10 100 |
27 |
47 |
28 * - |tideliftlogo| |
48 * - |tideliftlogo| |
29 - Professional support for coverage.py is available as part of the `Tidelift |
49 - `Available as part of the Tidelift Subscription. <https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme>`_ |
30 Subscription`_. Tidelift gives software development teams a single source for |
50 Coverage and thousands of other packages are working with |
31 purchasing and maintaining their software, with professional grade assurances |
51 Tidelift to deliver one enterprise subscription that covers all of the open |
32 from the experts who know it best, while seamlessly integrating with existing |
52 source you use. If you want the flexibility of open source and the confidence |
33 tools. |
53 of commercial-grade software, this is for you. |
34 |
54 `Learn more. <https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme>`_ |
35 .. _Tidelift Subscription: https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme |
|
36 |
|
37 Coverage.py runs on many versions of Python: |
|
38 |
|
39 * CPython 2.6, 2.7 and 3.3 through pre-alpha 3.8. |
|
40 * PyPy2 5.10 and PyPy3 5.10. |
|
41 * Jython 2.7.1, though not for reporting. |
|
42 * IronPython 2.7.7, though not for reporting. |
|
43 |
|
44 Documentation is on `Read the Docs`_. Code repository and issue tracker are on |
|
45 `Bitbucket`_, with a mirrored repository on `GitHub`_. |
|
46 |
|
47 .. _Read the Docs: https://coverage.readthedocs.io/ |
|
48 .. _Bitbucket: https://bitbucket.org/ned/coveragepy |
|
49 .. _GitHub: https://github.com/nedbat/coveragepy |
|
50 |
|
51 |
|
52 **New in 4.5:** Configurator plug-ins. |
|
53 |
|
54 New in 4.4: Suppressable warnings, continuous coverage measurement. |
|
55 |
|
56 New in 4.3: HTML ``--skip-covered``, sys.excepthook support, tox.ini |
|
57 support. |
|
58 |
|
59 New in 4.2: better support for multiprocessing and combining data. |
|
60 |
|
61 New in 4.1: much-improved branch coverage. |
|
62 |
|
63 New in 4.0: ``--concurrency``, plugins for non-Python files, setup.cfg |
|
64 support, --skip-covered, HTML filtering, and more than 50 issues closed. |
|
65 |
55 |
66 |
56 |
67 Getting Started |
57 Getting Started |
68 --------------- |
58 --------------- |
69 |
59 |
70 See the `Quick Start section`_ of the docs. |
60 See the `Quick Start section`_ of the docs. |
71 |
61 |
72 .. _Quick Start section: https://coverage.readthedocs.io/#quick-start |
62 .. _Quick Start section: https://coverage.readthedocs.io/#quick-start |
73 |
63 |
74 |
64 |
|
65 Change history |
|
66 -------------- |
|
67 |
|
68 The complete history of changes is on the `change history page`_. |
|
69 |
|
70 .. _change history page: https://coverage.readthedocs.io/en/latest/changes.html |
|
71 |
|
72 |
75 Contributing |
73 Contributing |
76 ------------ |
74 ------------ |
77 |
75 |
78 See the `Contributing section`_ of the docs. |
76 See the `Contributing section`_ of the docs. |
79 |
77 |
80 .. _Contributing section: https://coverage.readthedocs.io/en/latest/contributing.html |
78 .. _Contributing section: https://coverage.readthedocs.io/en/latest/contributing.html |
81 |
79 |
82 |
80 |
|
81 Security |
|
82 -------- |
|
83 |
|
84 To report a security vulnerability, please use the `Tidelift security |
|
85 contact`_. Tidelift will coordinate the fix and disclosure. |
|
86 |
|
87 .. _Tidelift security contact: https://tidelift.com/security |
|
88 |
|
89 |
83 License |
90 License |
84 ------- |
91 ------- |
85 |
92 |
86 Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_. |
93 Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_. |
87 |
94 |
88 .. _Apache 2.0 License: http://www.apache.org/licenses/LICENSE-2.0 |
95 .. _Apache 2.0 License: http://www.apache.org/licenses/LICENSE-2.0 |
89 .. _NOTICE.txt: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt |
96 .. _NOTICE.txt: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt |
90 |
97 |
91 |
98 |
92 .. |ci-status| image:: https://travis-ci.org/nedbat/coveragepy.svg?branch=master |
99 .. |ci-status| image:: https://travis-ci.com/nedbat/coveragepy.svg?branch=master |
93 :target: https://travis-ci.org/nedbat/coveragepy |
100 :target: https://travis-ci.com/nedbat/coveragepy |
94 :alt: Build status |
101 :alt: Build status |
95 .. |win-ci-status| image:: https://ci.appveyor.com/api/projects/status/kmeqpdje7h9r6vsf/branch/master?svg=true |
102 .. |win-ci-status| image:: https://ci.appveyor.com/api/projects/status/kmeqpdje7h9r6vsf/branch/master?svg=true |
96 :target: https://ci.appveyor.com/project/nedbat/coveragepy |
103 :target: https://ci.appveyor.com/project/nedbat/coveragepy |
97 :alt: Windows build status |
104 :alt: Windows build status |
98 .. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat |
105 .. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat |
100 :alt: Documentation |
107 :alt: Documentation |
101 .. |reqs| image:: https://requires.io/github/nedbat/coveragepy/requirements.svg?branch=master |
108 .. |reqs| image:: https://requires.io/github/nedbat/coveragepy/requirements.svg?branch=master |
102 :target: https://requires.io/github/nedbat/coveragepy/requirements/?branch=master |
109 :target: https://requires.io/github/nedbat/coveragepy/requirements/?branch=master |
103 :alt: Requirements status |
110 :alt: Requirements status |
104 .. |kit| image:: https://badge.fury.io/py/coverage.svg |
111 .. |kit| image:: https://badge.fury.io/py/coverage.svg |
105 :target: https://pypi.python.org/pypi/coverage |
112 :target: https://pypi.org/project/coverage/ |
106 :alt: PyPI status |
113 :alt: PyPI status |
107 .. |format| image:: https://img.shields.io/pypi/format/coverage.svg |
114 .. |format| image:: https://img.shields.io/pypi/format/coverage.svg |
108 :target: https://pypi.python.org/pypi/coverage |
115 :target: https://pypi.org/project/coverage/ |
109 :alt: Kit format |
116 :alt: Kit format |
110 .. |downloads| image:: https://img.shields.io/pypi/dw/coverage.svg |
117 .. |downloads| image:: https://img.shields.io/pypi/dw/coverage.svg |
111 :target: https://pypi.python.org/pypi/coverage |
118 :target: https://pypi.org/project/coverage/ |
112 :alt: Weekly PyPI downloads |
119 :alt: Weekly PyPI downloads |
113 .. |versions| image:: https://img.shields.io/pypi/pyversions/coverage.svg |
120 .. |versions| image:: https://img.shields.io/pypi/pyversions/coverage.svg?logo=python&logoColor=FBE072 |
114 :target: https://pypi.python.org/pypi/coverage |
121 :target: https://pypi.org/project/coverage/ |
115 :alt: Python versions supported |
122 :alt: Python versions supported |
116 .. |status| image:: https://img.shields.io/pypi/status/coverage.svg |
123 .. |status| image:: https://img.shields.io/pypi/status/coverage.svg |
117 :target: https://pypi.python.org/pypi/coverage |
124 :target: https://pypi.org/project/coverage/ |
118 :alt: Package stability |
125 :alt: Package stability |
119 .. |license| image:: https://img.shields.io/pypi/l/coverage.svg |
126 .. |license| image:: https://img.shields.io/pypi/l/coverage.svg |
120 :target: https://pypi.python.org/pypi/coverage |
127 :target: https://pypi.org/project/coverage/ |
121 :alt: License |
128 :alt: License |
122 .. |codecov| image:: http://codecov.io/github/nedbat/coveragepy/coverage.svg?branch=master&precision=2 |
129 .. |codecov| image:: https://codecov.io/github/nedbat/coveragepy/coverage.svg?branch=master&precision=2 |
123 :target: http://codecov.io/github/nedbat/coveragepy?branch=master |
130 :target: https://codecov.io/github/nedbat/coveragepy?branch=master |
124 :alt: Coverage! |
131 :alt: Coverage! |
125 .. |repos| image:: https://repology.org/badge/tiny-repos/python:coverage.svg |
132 .. |repos| image:: https://repology.org/badge/tiny-repos/python:coverage.svg |
126 :target: https://repology.org/metapackage/python:coverage/versions |
133 :target: https://repology.org/metapackage/python:coverage/versions |
127 :alt: Packaging status |
134 :alt: Packaging status |
128 .. |saythanks| image:: https://img.shields.io/badge/saythanks.io-%E2%98%BC-1EAEDB.svg |
135 .. |tidelift| image:: https://tidelift.com/badges/package/pypi/coverage |
129 :target: https://saythanks.io/to/nedbat |
|
130 :alt: Say thanks :) |
|
131 .. |tidelift| image:: https://tidelift.com/badges/github/nedbat/coveragepy |
|
132 :target: https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme |
136 :target: https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme |
133 :alt: Tidelift |
137 :alt: Tidelift |
|
138 .. |stars| image:: https://img.shields.io/github/stars/nedbat/coveragepy.svg?logo=github |
|
139 :target: https://github.com/nedbat/coveragepy/stargazers |
|
140 :alt: Github stars |
|
141 .. |forks| image:: https://img.shields.io/github/forks/nedbat/coveragepy.svg?logo=github |
|
142 :target: https://github.com/nedbat/coveragepy/network/members |
|
143 :alt: Github forks |
|
144 .. |contributors| image:: https://img.shields.io/github/contributors/nedbat/coveragepy.svg?logo=github |
|
145 :target: https://github.com/nedbat/coveragepy/graphs/contributors |
|
146 :alt: Contributors |
|
147 .. |twitter-coveragepy| image:: https://img.shields.io/twitter/follow/coveragepy.svg?label=coveragepy&style=flat&logo=twitter&logoColor=4FADFF |
|
148 :target: https://twitter.com/coveragepy |
|
149 :alt: coverage.py on Twitter |
|
150 .. |twitter-nedbat| image:: https://img.shields.io/twitter/follow/nedbat.svg?label=nedbat&style=flat&logo=twitter&logoColor=4FADFF |
|
151 :target: https://twitter.com/nedbat |
|
152 :alt: nedbat on Twitter |