diff --git a/requirements-test.txt b/requirements-test.txt
new file mode 100644
index 0000000..f3c7e8e
--- /dev/null
+++ b/requirements-test.txt
@@ -0,0 +1 @@
+nose
diff --git a/setup.py b/setup.py
index ed1f85e..eccf58c 100644
--- a/setup.py
+++ b/setup.py
@@ -1,28 +1,37 @@
+import os
 from setuptools import setup, find_packages
 
 
-def parse_requirements():
+def parse_requirements(name=None):
+    if name:
+        reqf = 'requirements-%s.txt' % name
+    else:
+        reqf = 'requirements.txt'
+
     requirements = []
-    for reqf in ('requirements.txt', 'requirements-swh.txt'):
-        with open(reqf) as f:
-            for line in f.readlines():
-                line = line.strip()
-                if not line or line.startswith('#'):
-                    continue
-                requirements.append(line)
+    if not os.path.exists(reqf):
+        return requirements
+
+    with open(reqf) as f:
+        for line in f.readlines():
+            line = line.strip()
+            if not line or line.startswith('#'):
+                continue
+            requirements.append(line)
     return requirements
 
 
 setup(
     name='swh.indexer',
     description='Software Heritage Content Indexer',
     author='Software Heritage developers',
     author_email='swh-devel@inria.fr',
     url='https://forge.softwareheritage.org/diffusion/78/',
     packages=find_packages(),
     scripts=[],
-    install_requires=parse_requirements(),
+    install_requires=parse_requirements() + parse_requirements('swh'),
     setup_requires=['vcversioner'],
+    extras_require={'testing': parse_requirements('test')},
     vcversioner={},
     include_package_data=True,
 )