diff --git a/.gitignore b/.gitignore
index 485dee6..0f03cd1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,8 @@
 .idea
+*.pyc
+
+.coverage
+htmlcov
+coverage.xml
+nose2-junit.xml
+
diff --git a/VERSION b/VERSION
index 3eefcb9..e752649 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.0
+1.0.1.dev0
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 44c6ea4..9a7a380 100644
--- a/xos/unittest.cfg
+++ b/xos/unittest.cfg
@@ -1,6 +1,13 @@
 [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
+coverage-report = xml
