diff --git a/.gitignore b/.gitignore
index a1f2e6d..9cff527 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,8 @@
 .idea/
 *.pyc
+
 .coverage
-xos/htmlcov/
\ No newline at end of file
+htmlcov
+coverage.xml
+nose2-junit.xml
+
diff --git a/xos/nose2-plugins/__init__.py b/xos/nose2-plugins/__init__.py
deleted file mode 100644
index 42722a8..0000000
--- a/xos/nose2-plugins/__init__.py
+++ /dev/null
@@ -1,14 +0,0 @@
-
-# Copyright 2017-present Open Networking Foundation
-#
-# 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.
diff --git a/xos/nose2-plugins/exclude.py b/xos/nose2-plugins/exclude.py
deleted file mode 100644
index 241eadb..0000000
--- a/xos/nose2-plugins/exclude.py
+++ /dev/null
@@ -1,32 +0,0 @@
-
-# Copyright 2017-present Open Networking Foundation
-#
-# 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.
-
-import logging
-import os
-
-from nose2.events import Plugin
-
-log = logging.getLogger('nose2.plugins.excludeignoredfiles')
-
-class ExcludeIgnoredFiles(Plugin):
-    commandLineSwitch = (None, 'exclude-ignored-files', 'Exclude that which should be excluded')
-
-    def matchPath(self, event):
-        if event.path.endswith(".py"):
-            text = open(event.path, "r").read()
-            if "test_framework: ignore" in text.lower():
-                log.info("Ignoring %s" % event.path)
-                event.handled = True
-                return False
diff --git a/xos/unittest.cfg b/xos/unittest.cfg
index fe33100..3db2d53 100644
--- a/xos/unittest.cfg
+++ b/xos/unittest.cfg
@@ -1,5 +1,5 @@
 [unittest]
-plugins=nose2-plugins.exclude
+plugins=nose2.plugins.junitxml
 code-directories=synchronizer
                  model_policies
                  steps
@@ -10,4 +10,5 @@
 always-on = True
 coverage = synchronizer
 coverage-report = term
-coverage-report = html
\ No newline at end of file
+coverage-report = html
+coverage-report = xml
