diff --git a/xos/nose2-plugins/__init__.py b/xos/nose2-plugins/__init__.py
deleted file mode 100644
index eb28b96..0000000
--- a/xos/nose2-plugins/__init__.py
+++ /dev/null
@@ -1,13 +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.
\ No newline at end of file
diff --git a/xos/nose2-plugins/exclude.py b/xos/nose2-plugins/exclude.py
deleted file mode 100644
index 439ce2e..0000000
--- a/xos/nose2-plugins/exclude.py
+++ /dev/null
@@ -1,31 +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 9679a47..2672bb6 100644
--- a/xos/unittest.cfg
+++ b/xos/unittest.cfg
@@ -1,11 +1,14 @@
 [unittest]
-plugins=nose2-plugins.exclude
+plugins=nose2.plugins.junitxml
 code-directories=synchronizer
                  model_policies
                  steps
+                 pull_steps
 
 [coverage]
 always-on = True
 coverage = synchronizer
 coverage-report = term
-coverage-report = html
\ No newline at end of file
+coverage-report = html
+coverage-report = xml
+
