Run unittests across many Python versions
diff --git a/tox.ini b/tox.ini
index a335e3c..48d3973 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,25 +1,50 @@
 [tox]
 minversion = 3.4.0
-envlist = unittest, bandit, build
+envlist = {py27, py35, py36, py37, py38}-{unittest}, cover, bandit, build
+isolated_build = true
+skip_missing_interpreters = true
 
 [testenv]
-basepython = python3
 usedevelop = True
 setenv =
-   VIRTUAL_ENV={envdir}
-   PYTHONWARNINGS=default::DeprecationWarning
-install_command = pip install {opts} {packages}
+    VIRTUAL_ENV={envdir}
+    PYTHONWARNINGS=default::DeprecationWarning
+deps = pip >= 19.3.1
+install_command =
+    pip install {opts} {packages}
 
 [testenv:unittest]
 deps =
-  discover
-  -r{toxinidir}/requirements.txt
-commands = discover -s examples/pyasn1_modules-example-switch/tests -s tests
+    discover
+    -r{toxinidir}/requirements.txt
+commands =
+    discover -s examples/pyasn1_modules-example-switch/tests -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]
+basepython = python3.7
 setenv =
-   {[testenv]setenv}
-   PYTHON=coverage run --parallel-mode
+    {[testenv]setenv}
+    PYTHON=coverage run --parallel-mode
 deps =
     coverage
     discover