aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenoit Pierre <benoit.pierre@gmail.com>2018-03-26 18:34:40 +0200
committerPaul Ganssle <paul@ganssle.io>2018-03-27 14:48:16 -0400
commit58d299de99612f76f2ff5cfe7fb142d95e5e8738 (patch)
tree190776940665eabdba6e07d184b320862c4a5114
parent685987d6275f8d9f5815c0f80bf581fb3d6d02fd (diff)
downloadexternal_python_setuptools-58d299de99612f76f2ff5cfe7fb142d95e5e8738.tar.gz
external_python_setuptools-58d299de99612f76f2ff5cfe7fb142d95e5e8738.tar.bz2
external_python_setuptools-58d299de99612f76f2ff5cfe7fb142d95e5e8738.zip
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
-rw-r--r--.travis.yml28
-rw-r--r--appveyor.yml10
-rw-r--r--tox.ini23
3 files changed, 29 insertions, 32 deletions
diff --git a/.travis.yml b/.travis.yml
index fb659f13..544b8df3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -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
diff --git a/appveyor.yml b/appveyor.yml
index 2b659459..ff7122b4 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,10 +1,13 @@
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}'
-
diff --git a/tox.ini b/tox.ini
index 42d01a2b..a0c4cdf3 100644
--- a/tox.ini
+++ b/tox.ini
@@ -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/*