From: beierl Date: Thu, 29 Aug 2019 19:57:14 +0000 (-0400) Subject: Adds unit test coverage X-Git-Tag: v7.0.0rc1~3 X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FPOL.git;a=commitdiff_plain;h=refs%2Fchanges%2F78%2F7878%2F2 Adds unit test coverage Adds the coverage module and reporting to tox so it can be reported with each build. Change-Id: Ib05fed7b5fea8d777b57deb42912f4a8898832b4 Signed-off-by: beierl --- diff --git a/.gitignore b/.gitignore index 88962fe..6887c16 100644 --- a/.gitignore +++ b/.gitignore @@ -50,7 +50,9 @@ pip-log.txt # Unit test / coverage reports .coverage .tox +cover nosetests.xml +coverage.xml .testrepository .venv .cache @@ -79,4 +81,4 @@ __pycache__/ deb_dist *.tar.gz -*.db \ No newline at end of file +*.db diff --git a/nose2.cfg b/nose2.cfg new file mode 100644 index 0000000..c51e20b --- /dev/null +++ b/nose2.cfg @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- + +## +# Copyright 2016-2019 VMware Inc. +# This file is part of ETSI OSM +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact: osslegalrouting@vmware.com +## + +[unittest] +plugins = nose2.plugins.junitxml + +[junit-xml] +always-on = True +keep_restricted = False +path = nosetests.xml +test_fullname = False diff --git a/test-requirements.txt b/test-requirements.txt index b404738..8b0c62f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -21,3 +21,4 @@ ## flake8<3.0 mock +coverage==4.5.3 diff --git a/tox.ini b/tox.ini index af61a35..a8687c6 100644 --- a/tox.ini +++ b/tox.ini @@ -25,27 +25,53 @@ # test suite on all supported python versions. To use it, "pip install tox" # and then run "tox" from this directory. [tox] -envlist = py3, flake8, pylint -toxworkdir={homedir}/.tox +envlist = cover, flake8, pylint + [testenv] -basepythons = python3 -commands=python3 -m unittest discover -v -install_command = python3 -m pip install -r requirements.txt -U {opts} {packages} -deps = -r{toxinidir}/test-requirements.txt +usedevelop = True +install_command = pip install -U {opts} {packages} +setenv = VIRTUAL_ENV={envdir} + PYTHONDONTWRITEBYTECODE = 1 + TESTS_DIR=./osm_policy_module/tests/unit/ +deps = -r{toxinidir}/requirements.txt + -r{toxinidir}/test-requirements.txt +commands = + coverage erase + +[testenv:cover] +basepython = python3 +deps = nose2 + -r{toxinidir}/requirements.txt + -r{toxinidir}/test-requirements.txt +commands = + coverage erase + nose2 -C --coverage osm_policy_module --plugin nose2.plugins.junitxml + coverage report --omit='*tests*' + coverage html -d ./cover --omit='*tests*' + coverage xml -o coverage.xml --omit='*tests*' [testenv:pylint] basepython = python3 deps = pylint + -r{toxinidir}/requirements.txt + -r{toxinidir}/test-requirements.txt commands = pylint -E osm_policy_module [testenv:flake8] basepython = python3 deps = flake8 + -r{toxinidir}/requirements.txt commands = flake8 osm_policy_module +[testenv:build] +basepython = python3 +deps = stdeb + setuptools-version-command +commands = python3 setup.py --command-packages=stdeb.command bdist_deb + [flake8] # E123, E125 skipped as they are invalid PEP-8. max-line-length = 120 @@ -53,9 +79,3 @@ show-source = True ignore = E123,E125,E241 builtins = _ exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,devops_stages/*,.rst - -[testenv:build] -basepython = python3 -deps = stdeb - setuptools-version-command -commands = python3 setup.py --command-packages=stdeb.command bdist_deb