diff options
author | Benoit Pierre <benoit.pierre@gmail.com> | 2018-03-26 18:34:40 +0200 |
---|---|---|
committer | Paul Ganssle <paul@ganssle.io> | 2018-03-27 14:48:16 -0400 |
commit | 58d299de99612f76f2ff5cfe7fb142d95e5e8738 (patch) | |
tree | 190776940665eabdba6e07d184b320862c4a5114 | |
parent | 685987d6275f8d9f5815c0f80bf581fb3d6d02fd (diff) | |
download | external_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.yml | 28 | ||||
-rw-r--r-- | appveyor.yml | 10 | ||||
-rw-r--r-- | tox.ini | 23 |
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}' - @@ -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/* |