travis: Enable codecov coverage

This necessitates adding some basic coverage-py configuration [1] and
making sure the pytest-cov plugin uses said configuration [2]. Badges
are included.

Note that we do not run the 'coverage' tox target, which is reserved for
users.

[1] https://github.com/codecov/example-python
[2] https://bitbucket.org/ned/coveragepy/issues/512/

Signed-off-by: Stephen Finucane <stephen@that.guru>
This commit is contained in:
Stephen Finucane 2017-10-21 15:52:46 +01:00
parent a9efb2517a
commit a3f9935d95
4 changed files with 29 additions and 4 deletions

View File

@ -14,13 +14,17 @@ matrix:
- python: 'pypy'
env: TOXENV=pypy
- python: '2.7'
env: TOXENV=du13
env:
- TOXENV=du13
- PYTEST_ADDOPTS = --cov sphinx --cov-append --cov-config setup.cfg
- python: '3.4'
env: TOXENV=py34
- python: '3.5'
env: TOXENV=py35
- python: '3.6'
env: TOXENV=py36
env:
- TOXENV=py36
- PYTEST_ADDOPTS = --cov sphinx --cov-append --cov-config setup.cfg
- python: 'nightly'
env: TOXENV=py37
- python: '3.6'
@ -35,7 +39,10 @@ addons:
- imagemagick
install:
- pip install -U tox
- pip install -U tox codecov
script:
- tox -- -v
after_success:
- codecov

View File

@ -22,6 +22,10 @@
:target: https://circleci.com/gh/sphinx-doc/sphinx
:alt: Build Status (CircleCI)
.. image:: https://codecov.io/gh/sphinx-doc/sphinx/branch/master/graph/badge.svg
:target: https://codecov.io/gh/sphinx-doc/sphinx
:alt: Code Coverage Status (Codecov)
Sphinx is a tool that makes it easy to create intelligent and beautiful
documentation for Python projects (or other documents consisting of multiple
reStructuredText sources), written by Georg Brandl. It was originally created

View File

@ -43,3 +43,17 @@ follow_imports = skip
incremental = True
check_untyped_defs = True
warn_unused_ignores = True
[coverage:run]
branch = True
source = sphinx
[coverage:report]
exclude_lines =
# Have to re-enable the standard pragma
pragma: no cover
# Don't complain if tests don't hit defensive assertion code:
raise NotImplementedError
# Don't complain if non-runnable code isn't run:
if __name__ == .__main__.:
ignore_errors = True

View File

@ -22,7 +22,7 @@ deps =
du14: docutils==0.14
setenv =
SPHINX_TEST_TEMPDIR = {envdir}/testbuild
coverage: PYTEST_ADDOPTS = --cov sphinx
coverage: PYTEST_ADDOPTS = --cov sphinx --cov-config {toxinidir}/setup.cfg
commands=
{envpython} -Wall tests/run.py --durations 25 {posargs}