diff --git a/.gitignore b/.gitignore
index b774adf..cb32b7d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,4 @@ build
 *.swp
 *.swo
 *.pyc
-.testrepository
\ No newline at end of file
+.stestr/
diff --git a/.stestr.conf b/.stestr.conf
new file mode 100644
index 0000000..dcdf16e
--- /dev/null
+++ b/.stestr.conf
@@ -0,0 +1,4 @@
+[DEFAULT]
+test_path=./tests
+top_dir=./
+
diff --git a/.testr.conf b/.testr.conf
deleted file mode 100644
index 1641f86..0000000
--- a/.testr.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_TEST_TIMEOUT=60 ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff --git a/requirements.txt b/requirements.txt
index ae94240..28829dc 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,6 +4,6 @@
 pbr>=0.6,!=0.7,<1.0
 oslosphinx>=2.2.0  # Apache-2.0
 sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3
-testrepository>=0.0.18
+stestr>=2.0.0 # Apache-2.0
 testtools>=0.9.36,!=1.2.0
 yasfb>=0.5.1
diff --git a/tox.ini b/tox.ini
index 0286b0c..f2cd638 100644
--- a/tox.ini
+++ b/tox.ini
@@ -10,7 +10,7 @@ usedevelop = True
 setenv = VIRTUAL_ENV={envdir}
 install_command = pip install -U {opts} {packages}
 deps = -r{toxinidir}/requirements.txt
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+commands = stestr run --slowest {posargs}
 
 [testenv:venv]
 commands = {posargs}