diff --git a/.travis.yml b/.travis.yml
index 655fab9d8e..84d5efff9b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -36,24 +36,24 @@ matrix:
env: TOX_ENV="pep8,check_isort"
- python: 2.7
- env: TOX_ENV=py27 TRIAL_FLAGS="-j 2"
+ env: TOX_ENV=py27,codecov TRIAL_FLAGS="-j 2"
- python: 2.7
env: TOX_ENV=py27-old TRIAL_FLAGS="-j 2"
- python: 2.7
- env: TOX_ENV=py27-postgres TRIAL_FLAGS="-j 4"
+ env: TOX_ENV=py27-postgres,codecov TRIAL_FLAGS="-j 4"
services:
- postgresql
- python: 3.5
- env: TOX_ENV=py35 TRIAL_FLAGS="-j 2"
+ env: TOX_ENV=py35,codecov TRIAL_FLAGS="-j 2"
- python: 3.6
- env: TOX_ENV=py36 TRIAL_FLAGS="-j 2"
+ env: TOX_ENV=py36,codecov TRIAL_FLAGS="-j 2"
- python: 3.6
- env: TOX_ENV=py36-postgres TRIAL_FLAGS="-j 4"
+ env: TOX_ENV=py36-postgres,codecov TRIAL_FLAGS="-j 4"
services:
- postgresql
diff --git a/changelog.d/4225.misc b/changelog.d/4225.misc
new file mode 100644
index 0000000000..39062696ea
--- /dev/null
+++ b/changelog.d/4225.misc
@@ -0,0 +1 @@
+Added automated coverage reporting to CI.
diff --git a/tox.ini b/tox.ini
index dfd9afdd49..731094b5da 100644
--- a/tox.ini
+++ b/tox.ini
@@ -7,6 +7,7 @@ deps =
mock
python-subunit
junitxml
+ coverage
# needed by some of the tests
lxml
@@ -27,11 +28,15 @@ deps =
setenv =
PYTHONDONTWRITEBYTECODE = no_byte_code
+ COVERAGE_PROCESS_START = {toxinidir}/.coveragerc
[testenv]
deps =
{[base]deps}
+whitelist_externals =
+ sh
+
setenv =
{[base]setenv}
@@ -39,7 +44,9 @@ passenv = *
commands =
/usr/bin/find "{toxinidir}" -name '*.pyc' -delete
- "{envbindir}/trial" {env:TRIAL_FLAGS:} {posargs:tests} {env:TOXSUFFIX:}
+ # Add this so that coverage will run on subprocesses
+ sh -c 'echo "import coverage; coverage.process_startup()" > {envsitepackagesdir}/../sitecustomize.py'
+ {envbindir}/coverage run "{envbindir}/trial" {env:TRIAL_FLAGS:} {posargs:tests} {env:TOXSUFFIX:}
[testenv:py27]
@@ -101,17 +108,6 @@ usedevelop=true
[testenv:py36]
usedevelop=true
-
-[testenv:py36-coverage]
-usedevelop=true
-deps =
- {[base]deps}
- coverage
-commands =
- /usr/bin/find "{toxinidir}" -name '*.pyc' -delete
- python -m coverage run -m twisted.trial {env:TRIAL_FLAGS:} {posargs:tests} {env:TOXSUFFIX:}
-
-
[testenv:py36-postgres]
usedevelop=true
deps =
@@ -146,3 +142,12 @@ deps = towncrier>=18.6.0rc1
commands =
python -m towncrier.check --compare-with=origin/develop
basepython = python3.6
+
+[testenv:codecov]
+skip_install = True
+deps =
+ coverage
+ codecov
+commands =
+ coverage combine
+ codecov -X gcov
\ No newline at end of file
|