From a1756bb2097ab9e97e966890fb71107c4b703601 Mon Sep 17 00:00:00 2001 From: Paul Goins Date: Fri, 1 Mar 2019 11:56:43 +0100 Subject: [PATCH] Added tox environment for gathering coverage This technique was borrowed from the tox "cover" environment in openstack/nova's tox.ini. This leverages the fact that stestr lets you override the python executable via the PYTHON environment variable. Doing this allows us to easily generate coverage for our unit tests. An important caveat is that this does not provide any coverage for tests via zaza, amulet, etc. It is purely focused on the unit tests. Note that this replaces the previous .coveragerc; coverage configuration is instead pulled from tox.ini. Change-Id: Ia7a2f203013df9d82236818de3a48615c2892825 --- .zuul.yaml | 1 + tox.ini | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/.zuul.yaml b/.zuul.yaml index 7051aee..dc27661 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,3 +1,4 @@ - project: templates: - python35-charm-jobs + - openstack-cover-jobs diff --git a/tox.ini b/tox.ini index bf2661b..1ea1523 100644 --- a/tox.ini +++ b/tox.ini @@ -30,6 +30,33 @@ basepython = python3 deps = -r{toxinidir}/test-requirements.txt commands = flake8 {posargs} +[testenv:cover] +# Technique based heavily upon +# https://github.com/openstack/nova/blob/master/tox.ini +basepython = python3 +deps = -r{toxinidir}/test-requirements.txt +setenv = + {[testenv]setenv} + PYTHON=coverage run +commands = + coverage erase + ostestr {posargs} + coverage combine + coverage html -d cover + coverage xml -o cover/coverage.xml + coverage report + +[coverage:run] +branch = True +concurrency = multiprocessing +parallel = True +source = + . +omit = + .tox/* + */charmhelpers/* + unit_tests/* + [testenv:venv] commands = {posargs}