From 033f35068f7f7afc5379ef9101bd472e119f9ce3 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 21 Sep 2018 06:06:42 +0200 Subject: [PATCH 1/3] Use pytest-cov again The problem was the eager setup, which produced an outer `.coverage.eager.*` file, next to the `.coverage` one that pytest-cov as of 2.6.0 generates/combines already, and then `coverage combine` would delete that - it requires `coverage combine -a` to keep the existing `.coverage` data. --- .coveragerc | 2 +- .travis.yml | 1 + tox.ini | 16 ++++++---------- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/.coveragerc b/.coveragerc index 168f57853..fb91ec90a 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,6 +1,6 @@ [run] parallel = 1 -source = ${PYTESTDJANGO_COVERAGE_SRC}. +source = pytest_django,pytest_django_test,tests/ branch = 1 [report] diff --git a/.travis.yml b/.travis.yml index a95552ba6..38cf2434c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -84,6 +84,7 @@ after_success: - | set -ex if [[ "${TOXENV%-coverage}" != "$TOXENV" ]]; then + .tox/$TOXENV/bin/coverage xml codecov_flags=${TOXENV%-coverage} codecov_flags=${codecov_flags//-/,} bash <(curl -s https://codecov.io/bash) -Z -X gcov -X xcode -X gcovout -F "$codecov_flags" diff --git a/tox.ini b/tox.ini index 39701dd1d..bbef0e7b3 100644 --- a/tox.ini +++ b/tox.ini @@ -21,7 +21,7 @@ deps = mysql_innodb: mysql-python==1.2.5 postgres: psycopg2-binary - coverage: coverage-enable-subprocess + coverage: pytest-cov setenv = PYTHONPATH = {toxinidir}:{env:PYTHONPATH:} @@ -32,19 +32,15 @@ setenv = sqlite: DJANGO_SETTINGS_MODULE=pytest_django_test.settings_sqlite sqlite_file: DJANGO_SETTINGS_MODULE=pytest_django_test.settings_sqlite_file - coverage: PYTESTDJANGO_TEST_RUNNER=coverage run -m pytest - coverage: COVERAGE_PROCESS_START={toxinidir}/.coveragerc - coverage: COVERAGE_FILE={toxinidir}/.coverage - coverage: PYTESTDJANGO_COVERAGE_SRC={toxinidir}/ + coverage: PYTESTDJANGO_TEST_ARGS=--cov --cov-report=term + coverage: COV_CORE_SOURCE=pytest_django,pytest_django_test,{toxinidir}/tests + coverage: COV_CORE_CONFIG={toxinidir}/.coveragerc + coverage: COV_CORE_DATAFILE={toxinidir}/.coverage.eager passenv = PYTEST_ADDOPTS usedevelop = True commands = - coverage: coverage erase - {env:PYTESTDJANGO_TEST_RUNNER:pytest} {posargs:tests} - coverage: coverage combine - coverage: coverage report - coverage: coverage xml + pytest {env:PYTESTDJANGO_TEST_ARGS:} {posargs:tests} [testenv:checkqa] deps = From 7d72240217084647819fd442f96544cf58e5da2a Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 21 Sep 2018 10:10:06 +0200 Subject: [PATCH 2/3] tox: coverage: coverage combine -a --- tox.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tox.ini b/tox.ini index bbef0e7b3..5495144be 100644 --- a/tox.ini +++ b/tox.ini @@ -42,6 +42,10 @@ usedevelop = True commands = pytest {env:PYTESTDJANGO_TEST_ARGS:} {posargs:tests} + # pytest-cov handles combining, but due to the eager setup there is an + # outer (empty) one, which we append (mainly for cleanup). + coverage: coverage combine -a + [testenv:checkqa] deps = flake8 From 9fe7151248b40dd5c874888c9f527577ceeff88d Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Tue, 25 Sep 2018 13:34:26 +0200 Subject: [PATCH 3/3] tox.ini: use single source with COV_CORE_SOURCE --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 5495144be..9679c6348 100644 --- a/tox.ini +++ b/tox.ini @@ -33,7 +33,7 @@ setenv = sqlite_file: DJANGO_SETTINGS_MODULE=pytest_django_test.settings_sqlite_file coverage: PYTESTDJANGO_TEST_ARGS=--cov --cov-report=term - coverage: COV_CORE_SOURCE=pytest_django,pytest_django_test,{toxinidir}/tests + coverage: COV_CORE_SOURCE={toxinidir} coverage: COV_CORE_CONFIG={toxinidir}/.coveragerc coverage: COV_CORE_DATAFILE={toxinidir}/.coverage.eager