diff --git a/setup.py b/setup.py
index <HASH>..<HASH> 100644
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,7 @@
 #!/usr/bin/env python
+import sys
 from setuptools import setup
+from setuptools.command.test import test as TestCommand
 from sys import platform
 from platform import architecture
 import shutil
@@ -13,6 +15,26 @@ elif platform == 'win32' and architecture()[0] == '64bit':
 else:
     sndfile = []
 
+
+class PyTest(TestCommand):
+    user_options = [('pytest-args=', 'a', "Arguments to pass to py.test")]
+
+    def initialize_options(self):
+        TestCommand.initialize_options(self)
+        self.pytest_args = []
+
+    def finalize_options(self):
+        TestCommand.finalize_options(self)
+        self.test_args = []
+        self.test_suite = True
+
+    def run_tests(self):
+        # import here, cause outside the eggs aren't loaded
+        import pytest
+        errno = pytest.main(self.pytest_args)
+        sys.exit(errno)
+
+
 setup(
     name='PySoundFile',
     version='0.5.0',
@@ -41,4 +63,6 @@ setup(
         'Topic :: Multimedia :: Sound/Audio'
     ],
     long_description=open('README.rst').read(),
+    tests_require=['pytest'],
+    cmdclass = {'test': PyTest},
 )
Enable "python setup.py test"