diff --git a/.gitignore b/.gitignore
index 963e589..9999471 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,6 +29,7 @@
 nosetests.xml
 .testrepository
 .venv
+.stestr/
 
 # Translations
 *.mo
@@ -55,4 +56,4 @@
 .*sw?
 
 # Files created by releasenotes build
-releasenotes/build
\ No newline at end of file
+releasenotes/build
diff --git a/.stestr.conf b/.stestr.conf
new file mode 100644
index 0000000..473b6e2
--- /dev/null
+++ b/.stestr.conf
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=${OS_TEST_PATH:-./ironic_tempest_plugin}
+top_dir=./
diff --git a/ironic_tempest_plugin/common/waiters.py b/ironic_tempest_plugin/common/waiters.py
index 554e5f8..c5b9bd0 100644
--- a/ironic_tempest_plugin/common/waiters.py
+++ b/ironic_tempest_plugin/common/waiters.py
@@ -28,9 +28,9 @@
         timeout = default_timeout
     if interval is None:
         interval = default_interval
-    if (not isinstance(timeout, six.integer_types) or
-            not isinstance(interval, six.integer_types) or
-            timeout < 0 or interval < 0):
+    if (not isinstance(timeout, six.integer_types)
+            or not isinstance(interval, six.integer_types)
+            or timeout < 0 or interval < 0):
         raise AssertionError(
             'timeout and interval should be >= 0 or None, current values are: '
             '%(timeout)s, %(interval)s respectively. If timeout and/or '
diff --git a/ironic_tempest_plugin/services/baremetal/base.py b/ironic_tempest_plugin/services/baremetal/base.py
index 46c0a2f..3c52fcd 100644
--- a/ironic_tempest_plugin/services/baremetal/base.py
+++ b/ironic_tempest_plugin/services/baremetal/base.py
@@ -67,8 +67,9 @@
 
     def request(self, *args, **kwargs):
         resp, resp_body = super(BaremetalClient, self).request(*args, **kwargs)
-        if (BAREMETAL_MICROVERSION and
-            BAREMETAL_MICROVERSION != api_version_utils.LATEST_MICROVERSION):
+        latest_microversion = api_version_utils.LATEST_MICROVERSION
+        if (BAREMETAL_MICROVERSION
+                and BAREMETAL_MICROVERSION != latest_microversion):
             api_version_utils.assert_version_header_matches_request(
                 self.api_microversion_header_name,
                 BAREMETAL_MICROVERSION,
diff --git a/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py b/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py
index 4f8bfe8..5be84cc 100644
--- a/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py
+++ b/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py
@@ -459,8 +459,8 @@
     @classmethod
     def skip_checks(cls):
         super(BaremetalStandaloneScenarioTest, cls).skip_checks()
-        if (cls.driver not in CONF.baremetal.enabled_drivers +
-                CONF.baremetal.enabled_hardware_types):
+        if (cls.driver not in CONF.baremetal.enabled_drivers
+                + CONF.baremetal.enabled_hardware_types):
             raise cls.skipException(
                 'The driver: %(driver)s used in test is not in the list of '
                 'enabled_drivers %(enabled_drivers)s or '
diff --git a/ironic_tempest_plugin/tests/scenario/introspection_manager.py b/ironic_tempest_plugin/tests/scenario/introspection_manager.py
index 0131089..3eb3f43 100644
--- a/ironic_tempest_plugin/tests/scenario/introspection_manager.py
+++ b/ironic_tempest_plugin/tests/scenario/introspection_manager.py
@@ -64,10 +64,10 @@
         # microversion
         self.useFixture(IronicMicroversionFixture(self.ironic_api_version))
         self.flavor = self.baremetal_flavor()
-        self.node_ids = {node['uuid'] for node in
-                         self.node_filter(filter=lambda node:
-                                          node['provision_state'] ==
-                                          BaremetalProvisionStates.AVAILABLE)}
+        self.node_ids = {
+            node['uuid'] for node in self.node_filter(
+                filter=lambda node:
+                node['provision_state'] == BaremetalProvisionStates.AVAILABLE)}
         self.rule_purge()
 
     def item_filter(self, list_method, show_method,
@@ -204,8 +204,8 @@
                         raise exceptions.IntrospectionFailed(message)
                     not_introspected = not_introspected - {node_id}
 
-            if (int(time.time()) - start >=
-                    CONF.baremetal_introspection.introspection_timeout):
+            if (int(time.time()) - start
+                    >= CONF.baremetal_introspection.introspection_timeout):
                 message = ('Introspection timed out for nodes: %s' %
                            not_introspected)
                 raise exceptions.IntrospectionTimeout(message)
@@ -228,8 +228,8 @@
                 raise exceptions.HypervisorUpdateTimeout(message)
 
     def node_cleanup(self, node_id):
-        if (self.node_show(node_id)['provision_state'] ==
-           BaremetalProvisionStates.AVAILABLE):
+        if (self.node_show(node_id)['provision_state']
+                == BaremetalProvisionStates.AVAILABLE):
             return
         # in case when introspection failed we need set provision state
         # to 'manage' to make it possible transit into 'provide' state
diff --git a/ironic_tempest_plugin/tests/scenario/test_baremetal_multitenancy.py b/ironic_tempest_plugin/tests/scenario/test_baremetal_multitenancy.py
index 92f41fd..33d8724 100644
--- a/ironic_tempest_plugin/tests/scenario/test_baremetal_multitenancy.py
+++ b/ironic_tempest_plugin/tests/scenario/test_baremetal_multitenancy.py
@@ -44,8 +44,8 @@
         if not CONF.baremetal.use_provision_network:
             msg = 'Ironic/Neutron tenant isolation is not configured.'
             raise cls.skipException(msg)
-        if (CONF.baremetal.available_nodes is not None and
-                CONF.baremetal.available_nodes < 2):
+        if (CONF.baremetal.available_nodes is not None
+                and CONF.baremetal.available_nodes < 2):
             msg = ('Not enough baremetal nodes, %d configured, test requires '
                    'a minimum of 2') % CONF.baremetal.available_nodes
             raise cls.skipException(msg)
diff --git a/ironic_tempest_plugin/tests/scenario/test_baremetal_single_tenant.py b/ironic_tempest_plugin/tests/scenario/test_baremetal_single_tenant.py
index 3715608..d935874 100644
--- a/ironic_tempest_plugin/tests/scenario/test_baremetal_single_tenant.py
+++ b/ironic_tempest_plugin/tests/scenario/test_baremetal_single_tenant.py
@@ -44,8 +44,8 @@
         if not CONF.baremetal.use_provision_network:
             msg = 'Ironic/Neutron tenant isolation is not configured.'
             raise cls.skipException(msg)
-        if (CONF.baremetal.available_nodes is not None and
-                CONF.baremetal.available_nodes < 2):
+        if (CONF.baremetal.available_nodes is not None
+                and CONF.baremetal.available_nodes < 2):
             msg = ('Not enough baremetal nodes, %d configured, test requires '
                    'a minimum of 2') % CONF.baremetal.available_nodes
             raise cls.skipException(msg)
diff --git a/ironic_tempest_plugin/tests/scenario/test_introspection_discovery.py b/ironic_tempest_plugin/tests/scenario/test_introspection_discovery.py
index 6f92d43..6ebfcc6 100644
--- a/ironic_tempest_plugin/tests/scenario/test_introspection_discovery.py
+++ b/ironic_tempest_plugin/tests/scenario/test_introspection_discovery.py
@@ -92,9 +92,9 @@
 
         discovered_node = None
         for node in nodes:
-            if (node['provision_state'] == ProvisionStates.AVAILABLE or
-                    node['provision_state'] == ProvisionStates.ENROLL or
-                    node['provision_state'] is ProvisionStates.NOSTATE):
+            if (node['provision_state'] == ProvisionStates.AVAILABLE
+                    or node['provision_state'] == ProvisionStates.ENROLL
+                    or node['provision_state'] is ProvisionStates.NOSTATE):
                 discovered_node = node['uuid']
                 break
 
diff --git a/test-requirements.txt b/test-requirements.txt
index 9292937..7864a21 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -2,7 +2,10 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=3.0.0,<3.1.0 # Apache-2.0
+
+stestr>=1.0.0 # Apache-2.0
+coverage!=4.4,>=4.0 # Apache-2.0
 
 sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
 openstackdocstheme>=1.20.0 # Apache-2.0
diff --git a/tox.ini b/tox.ini
index 60be8ec..8c34e01 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,6 @@
 [tox]
 minversion = 3.1.0
-envlist = py3,pep8
+envlist = pep8
 skipsdist = True
 ignore_basepython_conflict=true
 
@@ -13,7 +13,7 @@
    PYTHONWARNINGS=default::DeprecationWarning
 deps = -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
        -r{toxinidir}/test-requirements.txt
-commands = python setup.py test --slowest --testr-args='{posargs}'
+commands = stestr run --slowest {posargs}
 
 [testenv:pep8]
 commands = flake8 {posargs}
@@ -22,7 +22,14 @@
 commands = {posargs}
 
 [testenv:cover]
-commands = python setup.py test --coverage --testr-args='{posargs}'
+setenv =
+    {[testenv]setenv}
+    PYTHON=coverage run --source ironic_tempest_plugin --parallel-mode
+commands =
+    stestr run {posargs}
+    coverage combine
+    coverage htlm -d cover
+    coverage xml -o cover/coverage.xml
 
 [testenv:docs]
 commands = python setup.py build_sphinx
@@ -36,7 +43,9 @@
 commands = oslo_debug_helper {posargs}
 
 [flake8]
-ignore = E129
+# [E129] Visually indented line with same indent as next logical line.
+# [W503] Line break occurred before a binary operator. Conflicts with W504.
+ignore = E129,W503
 
 show-source = True
 builtins = _
