Commit 58d299de authored by Benoit Pierre's avatar Benoit Pierre Committed by Paul Ganssle

Improve speed and clarity of code coverage

Rationale:
- tox should work the same as before
- coverage is too slow and disabled by default locally
- disable coverage on pypy and pypy3 (way too slow)
- add coverage info for pkg_resources
- make sure tests are ignored in coverage
- make sure all CI jobs are identifiable
- include coverage for xfail (too complicated otherwise)
- disable report on terminal
parent 685987d6
......@@ -8,29 +8,20 @@ python:
- 3.5
- &latest_py3 3.6
- nightly
- pypy
env:
TOXENV=py
jobs:
fast_finish: true
include:
- python: *latest_py3
env: &cenv
global:
- LANG=C
- TOXENV=py
env: LANG=C
- python: *latest_py2
env: *cenv
- python: pypy3
# Running coverage breaks the pypy3 build on Travis only.
# Until that's fixed the pypy3 build needs to be run without coverage
script: tox -e py -- $TRAVIS_BUILD_DIR
env: LANG=C
- stage: deploy (to PyPI for tagged commits)
if: tag IS present
python: *latest_py3
install: skip
script: skip
after_success: skip
before_deploy: python bootstrap.py
deploy:
provider: pypi
......@@ -43,6 +34,13 @@ jobs:
distributions: release
skip_cleanup: true
skip_upload_docs: true
# Don't run coverage on pypy.
- python: pypy
script: tox
after_success: skip
- python: pypy3
script: tox
after_success: skip
cache: pip
......@@ -56,8 +54,6 @@ install:
# update egg_info based on setup.py in checkout
- python bootstrap.py
script: tox
after_success:
- if [[ $TOXENV == "py" ]]; then tox -e coverage,codecov; fi
script: tox -- --cov
after_success: env TRAVIS_JOB_NAME="${TRAVIS_PYTHON_VERSION} (LANG=$LANG)" CODECOV_ENV=TRAVIS_JOB_NAME tox -e coverage,codecov
environment:
APPVEYOR: True
CODECOV_ENV: APPVEYOR_JOB_NAME
matrix:
- PYTHON: "C:\\Python35-x64"
- PYTHON: "C:\\Python27-x64"
- APPVEYOR_JOB_NAME: "python35-x64"
PYTHON: "C:\\Python35-x64"
- APPVEYOR_JOB_NAME: "python27-x64"
PYTHON: "C:\\Python27-x64"
install:
# symlink python from a directory with a space
......@@ -20,10 +23,9 @@ cache:
test_script:
- "python bootstrap.py"
- "python -m pip install tox"
- "tox -e py"
- "tox -- --cov"
after_test:
- tox -e coverage,codecov
version: '{build}'
......@@ -4,28 +4,28 @@
#
# export TOXENV='py27,py3{3,4,5,6},pypy,pypy3'
[tox]
envlist=python
[testenv]
deps=-rtests/requirements.txt
setenv=COVERAGE_FILE={toxworkdir}/.coverage.{envname}
# TODO: The passed environment variables came from copying other tox.ini files
# These should probably be individually annotated to explain what needs them.
passenv=APPDATA HOMEDRIVE HOMEPATH windir APPVEYOR APPVEYOR_* CI CODECOV_* TRAVIS TRAVIS_*
# These are separate so xfail tests don't count towards code coverage
commands=pytest -m "not xfail" {posargs: "{toxinidir}" --cov-config={toxinidir}/tox.ini --cov=setuptools}
pytest -m "xfail" {posargs: "{toxinidir}"}
commands=pytest --cov-config={toxinidir}/tox.ini --cov-report= {posargs}
usedevelop=True
[testenv:coverage]
description=Combine coverage data and create reports
description=Combine coverage data and create report
deps=coverage
skip_install=True
changedir={toxworkdir}
setenv=COVERAGE_FILE=.coverage
commands=coverage erase
coverage combine
coverage report --rcfile={toxinidir}/tox.ini
coverage xml
coverage {posargs:xml}
[testenv:codecov]
description=[Only run on CI]: Upload coverage data to codecov
......@@ -34,9 +34,8 @@ skip_install=True
commands=codecov --file {toxworkdir}/coverage.xml
[coverage:run]
source=setuptools
omit=*/_vendor/*
[coverage:report]
skip_covered=True
show_missing=True
source=
pkg_resources
setuptools
omit=
*/_vendor/*
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment