Merge pull request #3923 from nicoddemus/codecov
Add support for codecov in AppVeyor
This commit is contained in:
commit
e0466d0ad8
|
@ -1 +1 @@
|
||||||
CHANGELOG merge=union
|
*.bat text eol=crlf
|
||||||
|
|
|
@ -35,6 +35,8 @@ env/
|
||||||
.cache
|
.cache
|
||||||
.pytest_cache
|
.pytest_cache
|
||||||
.coverage
|
.coverage
|
||||||
|
.coverage.*
|
||||||
|
coverage.xml
|
||||||
.ropeproject
|
.ropeproject
|
||||||
.idea
|
.idea
|
||||||
.hypothesis
|
.hypothesis
|
||||||
|
|
10
.travis.yml
10
.travis.yml
|
@ -82,7 +82,9 @@ jobs:
|
||||||
before_script:
|
before_script:
|
||||||
- |
|
- |
|
||||||
if [[ "$PYTEST_NO_COVERAGE" != 1 ]]; then
|
if [[ "$PYTEST_NO_COVERAGE" != 1 ]]; then
|
||||||
export _PYTEST_TOX_COVERAGE_RUN="env COVERAGE_FILE=$PWD/.coverage COVERAGE_PROCESS_START=$PWD/.coveragerc coverage run --source {envsitepackagesdir}/_pytest/,$PWD/testing -m"
|
export COVERAGE_FILE="$PWD/.coverage"
|
||||||
|
export COVERAGE_PROCESS_START="$PWD/.coveragerc"
|
||||||
|
export _PYTEST_TOX_COVERAGE_RUN="coverage run --source {envsitepackagesdir}/_pytest/,{toxinidir}/testing -m"
|
||||||
export _PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess
|
export _PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -94,9 +96,9 @@ after_success:
|
||||||
set -e
|
set -e
|
||||||
pip install codecov
|
pip install codecov
|
||||||
coverage combine
|
coverage combine
|
||||||
coverage xml
|
coverage xml --ignore-errors
|
||||||
coverage report -m
|
coverage report -m --ignore-errors
|
||||||
codecov --required -X gcov pycov search -f coverage.xml --flags ${TOXENV//-/ }
|
codecov --required -X gcov pycov search -f coverage.xml --flags ${TOXENV//-/ } linux
|
||||||
|
|
||||||
# Coveralls does not support merged reports.
|
# Coveralls does not support merged reports.
|
||||||
if [[ "$TOXENV" = py37 ]]; then
|
if [[ "$TOXENV" = py37 ]]; then
|
||||||
|
|
|
@ -15,8 +15,9 @@
|
||||||
.. image:: https://img.shields.io/pypi/pyversions/pytest.svg
|
.. image:: https://img.shields.io/pypi/pyversions/pytest.svg
|
||||||
:target: https://pypi.org/project/pytest/
|
:target: https://pypi.org/project/pytest/
|
||||||
|
|
||||||
.. image:: https://img.shields.io/coveralls/pytest-dev/pytest/master.svg
|
.. image:: https://codecov.io/gh/pytest-dev/pytest/branch/master/graph/badge.svg
|
||||||
:target: https://coveralls.io/r/pytest-dev/pytest
|
:target: https://codecov.io/gh/pytest-dev/pytest
|
||||||
|
:alt: Code coverage Status
|
||||||
|
|
||||||
.. image:: https://travis-ci.org/pytest-dev/pytest.svg?branch=master
|
.. image:: https://travis-ci.org/pytest-dev/pytest.svg?branch=master
|
||||||
:target: https://travis-ci.org/pytest-dev/pytest
|
:target: https://travis-ci.org/pytest-dev/pytest
|
||||||
|
@ -25,7 +26,7 @@
|
||||||
:target: https://ci.appveyor.com/project/pytestbot/pytest
|
:target: https://ci.appveyor.com/project/pytestbot/pytest
|
||||||
|
|
||||||
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
|
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
|
||||||
:target: https://github.com/ambv/black
|
:target: https://github.com/ambv/black
|
||||||
|
|
||||||
.. image:: https://www.codetriage.com/pytest-dev/pytest/badges/users.svg
|
.. image:: https://www.codetriage.com/pytest-dev/pytest/badges/users.svg
|
||||||
:target: https://www.codetriage.com/pytest-dev/pytest
|
:target: https://www.codetriage.com/pytest-dev/pytest
|
||||||
|
|
24
appveyor.yml
24
appveyor.yml
|
@ -1,27 +1,18 @@
|
||||||
environment:
|
environment:
|
||||||
COVERALLS_REPO_TOKEN:
|
|
||||||
secure: 2NJ5Ct55cHJ9WEg3xbSqCuv0rdgzzb6pnzOIG5OkMbTndw3wOBrXntWFoQrXiMFi
|
|
||||||
# this is pytest's token in coveralls.io, encrypted
|
|
||||||
# using pytestbot account as detailed here:
|
|
||||||
# https://www.appveyor.com/docs/build-configuration#secure-variables
|
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
# coveralls is not in the default env list
|
|
||||||
- TOXENV: "coveralls"
|
|
||||||
# note: please use "tox --listenvs" to populate the build matrix below
|
|
||||||
- TOXENV: "linting"
|
- TOXENV: "linting"
|
||||||
|
PYTEST_NO_COVERAGE: "1"
|
||||||
- TOXENV: "py27"
|
- TOXENV: "py27"
|
||||||
- TOXENV: "py34"
|
- TOXENV: "py34"
|
||||||
- TOXENV: "py35"
|
- TOXENV: "py35"
|
||||||
- TOXENV: "py36"
|
- TOXENV: "py36"
|
||||||
- TOXENV: "py37"
|
- TOXENV: "py37"
|
||||||
- TOXENV: "pypy"
|
- TOXENV: "pypy"
|
||||||
- TOXENV: "py27-pexpect"
|
PYTEST_NO_COVERAGE: "1"
|
||||||
- TOXENV: "py27-xdist"
|
- TOXENV: "py27-xdist"
|
||||||
- TOXENV: "py27-trial"
|
- TOXENV: "py27-trial"
|
||||||
- TOXENV: "py27-numpy"
|
- TOXENV: "py27-numpy"
|
||||||
- TOXENV: "py27-pluggymaster"
|
- TOXENV: "py27-pluggymaster"
|
||||||
- TOXENV: "py36-pexpect"
|
|
||||||
- TOXENV: "py36-xdist"
|
- TOXENV: "py36-xdist"
|
||||||
- TOXENV: "py36-trial"
|
- TOXENV: "py36-trial"
|
||||||
- TOXENV: "py36-numpy"
|
- TOXENV: "py36-numpy"
|
||||||
|
@ -29,7 +20,9 @@ environment:
|
||||||
- TOXENV: "py27-nobyte"
|
- TOXENV: "py27-nobyte"
|
||||||
- TOXENV: "doctesting"
|
- TOXENV: "doctesting"
|
||||||
- TOXENV: "py36-freeze"
|
- TOXENV: "py36-freeze"
|
||||||
|
PYTEST_NO_COVERAGE: "1"
|
||||||
- TOXENV: "docs"
|
- TOXENV: "docs"
|
||||||
|
PYTEST_NO_COVERAGE: "1"
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- echo Installed Pythons
|
- echo Installed Pythons
|
||||||
|
@ -37,12 +30,19 @@ install:
|
||||||
|
|
||||||
- if "%TOXENV%" == "pypy" call scripts\install-pypy.bat
|
- if "%TOXENV%" == "pypy" call scripts\install-pypy.bat
|
||||||
|
|
||||||
|
- C:\Python36\python -m pip install --upgrade pip
|
||||||
- C:\Python36\python -m pip install --upgrade --pre tox
|
- C:\Python36\python -m pip install --upgrade --pre tox
|
||||||
|
|
||||||
build: false # Not a C# project, build stuff at the test step instead.
|
build: false # Not a C# project, build stuff at the test step instead.
|
||||||
|
|
||||||
|
before_test:
|
||||||
|
- call scripts\prepare-coverage.bat
|
||||||
|
|
||||||
test_script:
|
test_script:
|
||||||
- call scripts\call-tox.bat
|
- C:\Python36\python -m tox
|
||||||
|
|
||||||
|
on_success:
|
||||||
|
- call scripts\upload-coverage.bat
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
- '%LOCALAPPDATA%\pip\cache'
|
- '%LOCALAPPDATA%\pip\cache'
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
REM skip "coveralls" run in PRs or forks
|
|
||||||
if "%TOXENV%" == "coveralls" (
|
|
||||||
if not defined COVERALLS_REPO_TOKEN (
|
|
||||||
echo skipping coveralls run because COVERALLS_REPO_TOKEN is not defined
|
|
||||||
exit /b 0
|
|
||||||
)
|
|
||||||
)
|
|
||||||
C:\Python36\python -m tox
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
REM scripts called by AppVeyor to setup the environment variables to enable coverage
|
||||||
|
if not defined PYTEST_NO_COVERAGE (
|
||||||
|
set "COVERAGE_FILE=%CD%\.coverage"
|
||||||
|
set "COVERAGE_PROCESS_START=%CD%\.coveragerc"
|
||||||
|
set "_PYTEST_TOX_COVERAGE_RUN=coverage run --source {envsitepackagesdir}/_pytest/,{toxinidir}/testing -m"
|
||||||
|
set "_PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess"
|
||||||
|
echo Coverage setup completed
|
||||||
|
) else (
|
||||||
|
echo Skipping coverage setup, PYTEST_NO_COVERAGE is set
|
||||||
|
)
|
|
@ -0,0 +1,11 @@
|
||||||
|
REM script called by AppVeyor to combine and upload coverage information to codecov
|
||||||
|
if not defined PYTEST_NO_COVERAGE (
|
||||||
|
echo Prepare to upload coverage information
|
||||||
|
C:\Python36\Scripts\pip install codecov
|
||||||
|
C:\Python36\Scripts\coverage combine
|
||||||
|
C:\Python36\Scripts\coverage xml --ignore-errors
|
||||||
|
C:\Python36\Scripts\coverage report -m --ignore-errors
|
||||||
|
C:\Python36\Scripts\codecov --required -X gcov pycov search -f coverage.xml --flags %TOXENV:-= % windows
|
||||||
|
) else (
|
||||||
|
echo Skipping coverage upload, PYTEST_NO_COVERAGE is set
|
||||||
|
)
|
31
tox.ini
31
tox.ini
|
@ -17,15 +17,16 @@ envlist =
|
||||||
docs
|
docs
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
|
whitelist_externals = env
|
||||||
commands =
|
commands =
|
||||||
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest --lsof -ra {env:_PYTEST_TEST_OPTS:} {posargs:testing}
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest --lsof -ra {posargs:testing}
|
||||||
coverage: coverage report -m --skip-covered
|
passenv = USER USERNAME
|
||||||
setenv =
|
setenv =
|
||||||
|
# configuration if a user runs tox with a "coverage" factor, for example "tox -e py36-coverage"
|
||||||
coverage: _PYTEST_TOX_COVERAGE_RUN=coverage run -m
|
coverage: _PYTEST_TOX_COVERAGE_RUN=coverage run -m
|
||||||
coverage: _PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess
|
coverage: _PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess
|
||||||
coverage: COVERAGE_FILE={toxinidir}/.coverage
|
coverage: COVERAGE_FILE={toxinidir}/.coverage
|
||||||
coverage: COVERAGE_PROCESS_START={toxinidir}/.coveragerc
|
coverage: COVERAGE_PROCESS_START={toxinidir}/.coveragerc
|
||||||
passenv = USER USERNAME
|
|
||||||
deps =
|
deps =
|
||||||
hypothesis>=3.56
|
hypothesis>=3.56
|
||||||
nose
|
nose
|
||||||
|
@ -56,9 +57,9 @@ deps =
|
||||||
nose
|
nose
|
||||||
hypothesis>=3.56
|
hypothesis>=3.56
|
||||||
{env:_PYTEST_TOX_EXTRA_DEP:}
|
{env:_PYTEST_TOX_EXTRA_DEP:}
|
||||||
changedir=testing
|
whitelist_externals = env
|
||||||
commands =
|
commands =
|
||||||
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -n8 -ra {posargs:.}
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -n8 -ra {posargs:testing}
|
||||||
|
|
||||||
[testenv:py36-xdist]
|
[testenv:py36-xdist]
|
||||||
deps = {[testenv:py27-xdist]deps}
|
deps = {[testenv:py27-xdist]deps}
|
||||||
|
@ -70,6 +71,7 @@ platform = linux|darwin
|
||||||
deps =
|
deps =
|
||||||
pexpect
|
pexpect
|
||||||
{env:_PYTEST_TOX_EXTRA_DEP:}
|
{env:_PYTEST_TOX_EXTRA_DEP:}
|
||||||
|
whitelist_externals = env
|
||||||
commands =
|
commands =
|
||||||
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra test_pdb.py test_terminal.py test_unittest.py
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra test_pdb.py test_terminal.py test_unittest.py
|
||||||
|
|
||||||
|
@ -90,6 +92,7 @@ changedir=testing
|
||||||
setenv =
|
setenv =
|
||||||
{[testenv]setenv}
|
{[testenv]setenv}
|
||||||
PYTHONDONTWRITEBYTECODE=1
|
PYTHONDONTWRITEBYTECODE=1
|
||||||
|
whitelist_externals = env
|
||||||
commands =
|
commands =
|
||||||
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -n3 -ra {posargs:.}
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -n3 -ra {posargs:.}
|
||||||
|
|
||||||
|
@ -97,6 +100,7 @@ commands =
|
||||||
deps =
|
deps =
|
||||||
twisted
|
twisted
|
||||||
{env:_PYTEST_TOX_EXTRA_DEP:}
|
{env:_PYTEST_TOX_EXTRA_DEP:}
|
||||||
|
whitelist_externals = env
|
||||||
commands =
|
commands =
|
||||||
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra {posargs:testing/test_unittest.py}
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra {posargs:testing/test_unittest.py}
|
||||||
|
|
||||||
|
@ -108,6 +112,7 @@ commands = {[testenv:py27-trial]commands}
|
||||||
deps =
|
deps =
|
||||||
numpy
|
numpy
|
||||||
{env:_PYTEST_TOX_EXTRA_DEP:}
|
{env:_PYTEST_TOX_EXTRA_DEP:}
|
||||||
|
whitelist_externals = env
|
||||||
commands=
|
commands=
|
||||||
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra {posargs:testing/python/approx.py}
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra {posargs:testing/python/approx.py}
|
||||||
|
|
||||||
|
@ -145,6 +150,7 @@ skipsdist = True
|
||||||
deps =
|
deps =
|
||||||
PyYAML
|
PyYAML
|
||||||
{env:_PYTEST_TOX_EXTRA_DEP:}
|
{env:_PYTEST_TOX_EXTRA_DEP:}
|
||||||
|
whitelist_externals = env
|
||||||
commands =
|
commands =
|
||||||
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra doc/en
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest -ra doc/en
|
||||||
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest --doctest-modules --pyargs _pytest
|
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest --doctest-modules --pyargs _pytest
|
||||||
|
@ -177,21 +183,6 @@ commands =
|
||||||
{envpython} create_executable.py
|
{envpython} create_executable.py
|
||||||
{envpython} tox_run.py
|
{envpython} tox_run.py
|
||||||
|
|
||||||
|
|
||||||
[testenv:coveralls]
|
|
||||||
passenv = CI TRAVIS TRAVIS_* COVERALLS_REPO_TOKEN
|
|
||||||
usedevelop = True
|
|
||||||
changedir = .
|
|
||||||
deps =
|
|
||||||
{[testenv]deps}
|
|
||||||
coveralls
|
|
||||||
codecov
|
|
||||||
commands =
|
|
||||||
coverage run -m pytest testing
|
|
||||||
coverage report -m
|
|
||||||
coveralls
|
|
||||||
codecov
|
|
||||||
|
|
||||||
[testenv:release]
|
[testenv:release]
|
||||||
decription = do a release, required posarg of the version number
|
decription = do a release, required posarg of the version number
|
||||||
basepython = python3.6
|
basepython = python3.6
|
||||||
|
|
Loading…
Reference in New Issue