Index: README.rst
===================================================================
--- README.rst	(revision 24)
+++ README.rst	(revision 26)
@@ -38,15 +38,5 @@
 want to test), install pyenvjasmine and then run::
 
-    nosetests --cover-package=pyenvjasmine --cover-erase \
-    --with-coverage --with-doctest $*
-
-.. note::
-
-   If you have installed pyenvjasmine in *development mode*, you can simply
-   run::
-
-     nosetests -c nose.cfg
-
-   to run the tests from within the pyenvjasmine sources directory.
+  py.test
 
 
@@ -61,30 +51,19 @@
 from the js tests on the console. Something like this::
 
-    import unittest
+    import pytest
     from pyenvjasmine.runner import Runner
 
-    class JavaScriptTests(unittest.TestCase):
+    class TestJavaScript(object):
         def test_my_javascript(self):
             runner = Runner(
                 testdir='/path/to/my/testdir',
                 configfile='relative/path/to/configfile')
-            runner.run(capture_output=False)
-
-
-If you want a more integrated test control, you could set capture_output to
-True, then parse the test output that is returned from the run() method, with
-something like this::
-
-    import unittest
-    from pyenvjasmine.runner import Runner
-
-    class JavaScriptTests(unittest.TestCase):
-        def test_my_javascript_no_output(self):
-            runner = Runner(
-                testdir='/path/to/my/testdir',
-                configfile='relative/path/to/configfile')
-            res = runner.run(capture_output=True)
-            lines = res.splitlines()
-            self.assertTrue('Failed: 0' in lines)
+            success, stdout = runner.run()
+            # assert on success, will be true if tests passed, False if any
+            # test failed
+            assert success
+            # you can inspect stdout if you want to get more info, but it
+            # will be printed to the console stdout anyway
+            assert b'Total: 120' in stdout
 
 
Index: se.cfg
===================================================================
--- nose.cfg	(revision 9)
+++ 	(revision )
@@ -1,6 +1,0 @@
-[nosetests]
-cover-package=pyenvjasmine
-cover-erase=1
-with-coverage=1
-with-doctest=1
-nocapture=1
Index: pyenvjasmine/tests/test_runner.py
===================================================================
--- pyenvjasmine/tests/test_runner.py	(revision 24)
+++ pyenvjasmine/tests/test_runner.py	(revision 26)
@@ -1,14 +1,9 @@
-import unittest
 import os
+import pytest
 
-from pyenvjasmine.runner import Runner
+from pyenvjasmine.runner import Runner, get_environment
 
 
-class RunnerTests(unittest.TestCase):
-    def setUp(self):
-        pass
-
-    def tearDown(self):
-        pass
+class TestsRunner(object):
 
     def test_runner_defaults(self):
@@ -17,9 +12,10 @@
         """
         jstests = Runner()
-        output = jstests.run()
+        success, stdout = jstests.run()
+        assert success
         # output is the resulting stdout from a subprocess call, which is a
         # bytes object, hence the b'' for the checks
-        self.assertTrue(b'Failed: 0' in output)
-        self.assertTrue(b'Passed: 5' in output)
+        assert b'Failed: 0' in stdout
+        assert b'Passed: 5' in stdout
 
     def test_runner_params(self):
@@ -36,15 +32,13 @@
             configfile=conf_file,
         )
-        output = jstests.run(spec='tests/specs/test_demo.spec.js')
-        lines = output.splitlines()
+        success, stdout = jstests.run(spec='tests/specs/test_demo.spec.js')
+        lines = stdout.splitlines()
         # output is the resulting stdout from a subprocess call, which is a
         # bytes object, hence the b'' in the endswith/startswith calls
-        self.assertTrue(lines[0].endswith(b'specs/test_demo.spec.js'),
-            "wrong output: %s" % str(output))
-        self.assertTrue(lines[1].startswith(b'[  Envjs/1.6 (Rhino;'),
-            "wrong output: %s" % str(output))
-        self.assertTrue(b'Passed: 4' in lines)
-        self.assertTrue(b'Failed: 0' in lines)
-        self.assertTrue(b'Total : 4' in lines)
+        assert lines[0].endswith(b'specs/test_demo.spec.js')
+        assert lines[1].startswith(b'[  Envjs/1.6 (Rhino;')
+        assert b'Passed: 4' in lines
+        assert b'Failed: 0' in lines
+        assert b'Total : 4' in lines
 
     def test_write_browser_htmlfile_markup_is_correct(self):
@@ -65,5 +59,5 @@
         with open("browser.runner.html",'r') as file:
             actual = file.read()
-            self.assertEqual(expected, actual)
+            assert expected == actual
 
     def test_runner_with_browser_configfile(self):
@@ -80,5 +74,6 @@
             browser_configfile=browser_conf_file
         )
-        jstests.run(spec='tests/specs/test_demo.spec.js')
+        success, stdout = jstests.run(spec='tests/specs/test_demo.spec.js')
+        assert not success
 
     def test_get_environment(self):
@@ -88,22 +83,12 @@
         so monkey patching the old way.
         """
-        from pyenvjasmine.runner import get_environment
-        import os
         old_os_name = os.name
         try:
             os.name = 'nt'
             res = get_environment()
-            self.assertEqual(res, '--environment=WIN')
+            assert res == '--environment=WIN'
             os.name = 'posix'
             res = get_environment()
-            self.assertEqual(res, '--environment=UNIX')
+            assert res == '--environment=UNIX'
         finally:
             os.name = old_os_name
-
-    def test_not_capture_output(self):
-        """
-        Running a test without capturing output
-        """
-        jstests = Runner()
-        output = jstests.run(capture_output=False)
-        self.assertEqual(output, None)
Index: pytest.ini
===================================================================
--- pytest.ini	(revision 26)
+++ pytest.ini	(revision 26)
@@ -0,0 +1,4 @@
+[pytest]
+testpaths = pyenvjasmine
+python_files = *.py
+
Index: setup.cfg
===================================================================
--- setup.cfg	(revision 26)
+++ setup.cfg	(revision 26)
@@ -0,0 +1,5 @@
+[tool:pytest]
+norecursedirs = pyenvjasmine.egg-info _darcs bin etc var tests/sample
+python_files=test_*
+addopts = --tb=native -s --cov pyenvjasmine --doctest-modules --ignore setup.py 
+
Index: setup.py
===================================================================
--- setup.py	(revision 24)
+++ setup.py	(revision 26)
@@ -5,6 +5,7 @@
 
 requires = [
-    'nose',
-    'coverage'
+    'coverage',
+    'pytest',
+    'pytest-cov'
 ]
 
