diff --git a/tox.ini b/tox.ini
index 5ed223c1884a7bca6a0e51b4e5c71867cacfcce0_dG94LmluaQ==..0b54d0b022c2ff82227b7972ea0c77f83cef17fd_dG94LmluaQ== 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,9 @@
 [tox]
 minversion = 3.5.0
-envlist = unittest, docs, bandit, build
+envlist =
+    {py27, py35, py36, py37, py38}-{unittest},
+    cover, docs, bandit, build
+isolated_build = true
+skip_missing_interpreters = true
 
 [testenv]
@@ -4,7 +8,6 @@
 
 [testenv]
-basepython = python3
 usedevelop = True
 setenv =
    VIRTUAL_ENV={envdir}
    PYTHONWARNINGS=default::DeprecationWarning
@@ -7,8 +10,10 @@
 usedevelop = True
 setenv =
    VIRTUAL_ENV={envdir}
    PYTHONWARNINGS=default::DeprecationWarning
-install_command = pip install {opts} {packages}
+deps = pip >= 19.3.1
+install_command =
+    pip install {opts} {packages}
 
 [testenv:unittest]
 deps =
@@ -12,9 +17,30 @@
 
 [testenv:unittest]
 deps =
-  discover
-  -r{toxinidir}/devel-requirements.txt
-  -r{toxinidir}/requirements.txt
-commands = discover -s tests
+    discover
+    -r{toxinidir}/devel-requirements.txt
+    -r{toxinidir}/requirements.txt
+commands =
+    discover -s tests
+
+[testenv:py27-unittest]
+deps = {[testenv:unittest]deps}
+commands = {[testenv:unittest]commands}
+
+[testenv:py35-unittest]
+deps = {[testenv:unittest]deps}
+commands = {[testenv:unittest]commands}
+
+[testenv:py36-unittest]
+deps = {[testenv:unittest]deps}
+commands = {[testenv:unittest]commands}
+
+[testenv:py37-unittest]
+deps = {[testenv:unittest]deps}
+commands = {[testenv:unittest]commands}
+
+[testenv:py38-unittest]
+deps = {[testenv:unittest]deps}
+commands = {[testenv:unittest]commands}
 
 [testenv:cover]
@@ -19,5 +45,6 @@
 
 [testenv:cover]
+basepython = python3.7
 setenv =
    {[testenv]setenv}
    PYTHON=coverage run --parallel-mode