diff --git a/requirements.txt b/requirements.txt
index 968704428396cdff6061c0e357b83f3e05acfc2b..62b920efcf2fcc6c3749c99b210a9282291ac4c3 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -90,3 +90,4 @@ plantuml-gentools==0.1.2
 #
 flask-resources==0.6.0
 speaklater==1.3
+pytest-runner==5.3.0
diff --git a/setup.py b/setup.py
index b34db2e3714b78e2a9876a74ddfe37e945fc5810..bab851e6d5999d87ff08072dcf552994a8715e31 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,10 @@
-import os
+import sys
 
 from setuptools import find_packages, setup
 
+needs_pytest = {'pytest', 'test', 'ptr'}.intersection(sys.argv)
+pytest_runner = ['pytest-runner'] if needs_pytest else []
+
 readme = open("README.md").read()
 history = open("BACKLOG.md").read()
 
@@ -431,7 +434,7 @@ requires_install = [
     "xmltodict==0.12.0",
     "yarl==1.6.3",
     "zipp==0.6.0"
-]
+] + pytest_runner
 
 requires_install_groups = [
     requires_install_minimum,