diff --git a/requirements-dev.txt b/requirements-dev.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fc140a61e2c24b15b7ae8cf1f5f70e23d33de38f
--- /dev/null
+++ b/requirements-dev.txt
@@ -0,0 +1,7 @@
+sphinx==1.6
+sphinx-rtd-theme==0
+mock==2
+coverage==4
+pytest==3
+pytest-cov==2
+pytest-runner==3
diff --git a/setup.py b/setup.py
index dcd7df5a34c0fd844bdfe6d9f34aaa22a3a96314..469d65dedcde7c9a1993e45fadf7c9b47ef043a1 100644
--- a/setup.py
+++ b/setup.py
@@ -22,6 +22,9 @@ basedir = op.dirname(__file__)
 # Dependencies are listed in requirements.txt
 install_requires = open(op.join(basedir, 'requirements.txt'), 'rt').readlines()
 
+# Development/test dependencies are listed in requirements-dev.txt
+dev_requires = open(op.join(basedir, 'requirements-dev.txt'), 'rt').readlines()
+
 packages = find_packages(
     exclude=('doc', 'tests', 'dist', 'build', 'fslpy.egg-info'))
 
@@ -104,15 +107,10 @@ setup(
         'Topic :: Software Development :: Libraries :: Python Modules'],
 
     packages=packages,
+
     install_requires=install_requires,
-    setup_requires=['pytest-runner', 'sphinx', 'sphinx-rtd-theme', 'mock'],
-
-    tests_require=['mock',
-                   'coverage',
-                   'pytest-cov',
-                   'pytest-html',
-                   'pytest-runner',
-                   'pytest'],
+    setup_requires=dev_requires,
+
     test_suite='tests',
 
     cmdclass={'doc' : doc},