Adds unit test coverage 78/7878/2
authorbeierl <mbeierl@vmware.com>
Thu, 29 Aug 2019 19:57:14 +0000 (15:57 -0400)
committerbeierl <mbeierl@vmware.com>
Tue, 3 Sep 2019 16:47:35 +0000 (12:47 -0400)
Adds the coverage module and reporting to tox so it can be
reported with each build.

Change-Id: Ib05fed7b5fea8d777b57deb42912f4a8898832b4
Signed-off-by: beierl <mbeierl@vmware.com>
.gitignore
nose2.cfg [new file with mode: 0644]
test-requirements.txt
tox.ini

index 88962fe..6887c16 100644 (file)
@@ -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 (file)
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
index b404738..8b0c62f 100644 (file)
@@ -21,3 +21,4 @@
 ##
 flake8<3.0
 mock
+coverage==4.5.3
diff --git a/tox.ini b/tox.ini
index af61a35..a8687c6 100644 (file)
--- a/tox.ini
+++ b/tox.ini
 # 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