Added coverage tests in tox 18/8618/12
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Wed, 19 Feb 2020 16:40:44 +0000 (17:40 +0100)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 2 Jul 2020 09:04:29 +0000 (09:04 +0000)
Change-Id: I66a56f9480a733a5cfd06abbce6dbffd0e4f80d3
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
.gitignore-common
nose2.cfg [new file with mode: 0644]
tox.ini

index 4a339f3..08ca7f0 100644 (file)
@@ -48,3 +48,9 @@ dist
 *.egg-info
 .eggs
 
 *.egg-info
 .eggs
 
+# Unit test / coverage reports
+.coverage
+cover
+coverage.xml
+nosetests.xml
+
diff --git a/nose2.cfg b/nose2.cfg
new file mode 100644 (file)
index 0000000..ec96ace
--- /dev/null
+++ b/nose2.cfg
@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+##
+# Copyright ETSI
+# 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/tox.ini b/tox.ini
index 65a62e5..1e0b679 100644 (file)
--- a/tox.ini
+++ b/tox.ini
 # limitations under the License.
 
 [tox]
 # limitations under the License.
 
 [tox]
-envlist = flake8, unittest
-toxworkdir={homedir}/.tox
+envlist = cover, flake8, unittest
 
 [testenv]
 basepython = python3
 install_command = python3 -m pip install -r requirements.txt -U {opts} {packages}
 
 [testenv]
 basepython = python3
 install_command = python3 -m pip install -r requirements.txt -U {opts} {packages}
-deps = -r{toxinidir}/test-requirements.txt
-commands=python3 -m unittest discover -v
+deps = -rtest-requirements.txt
+commands=
+    python3 -m unittest discover -v
+
+[testenv:cover]
+basepython = python3
+deps =
+  nose2
+  nose2-cov
+  coverage
+  -rrequirements.txt
+  -rtest-requirements.txt
+commands =
+    coverage erase
+    nose2 -C --coverage osm_lcm --plugin nose2.plugins.junitxml -s osm_lcm/tests
+    coverage report --omit='*tests*'
+    coverage html -d ./cover --omit='*tests*'
+    coverage xml -o coverage.xml --omit='*tests*'
 
 [testenv:flake8]
 
 [testenv:flake8]
-basepython = python3.6
-deps = flake8
+basepython = python3
+deps =
+  flake8
+  -rrequirements.txt
 commands = flake8 osm_lcm --max-line-length 120 \
     --exclude .svn,CVS,.gz,.git,__pycache__,.tox,local,temp,frontend_grpc.py,frontend_pb2.py \
     --ignore W291,W293,E226,W504
 commands = flake8 osm_lcm --max-line-length 120 \
     --exclude .svn,CVS,.gz,.git,__pycache__,.tox,local,temp,frontend_grpc.py,frontend_pb2.py \
     --ignore W291,W293,E226,W504