Index: pyenvjasmine/tests/test_runner.py
===================================================================
--- pyenvjasmine/tests/test_runner.py	(revision 33)
+++ pyenvjasmine/tests/test_runner.py	(revision 36)
@@ -5,5 +5,9 @@
 
 
-class TestsRunner(object):
+class TestsRunnerRhino(object):
+
+    """
+    Run the full tests using the old rhino+jasmine1 env
+    """
 
     def test_runner_defaults(self):
@@ -11,5 +15,5 @@
         Test the runner, using default values (which wil run the demo specs)
         """
-        jstests = Runner()
+        jstests = Runner(testing_enviroment='rhino')
         success, stdout = jstests.run()
         assert success
@@ -26,4 +30,5 @@
         envjasmine_dir = os.path.join(os.path.dirname(here), 'envjasmine')
         jstests = Runner(
+            testing_enviroment='rhino',
             rootdir=envjasmine_dir,
             testdir=sample,
@@ -47,4 +52,5 @@
         envjasmine_dir = os.path.join(os.path.dirname(here), 'envjasmine')
         jstests = Runner(
+            testing_enviroment='rhino',
             rootdir=envjasmine_dir,
             testdir=sample,
@@ -68,4 +74,5 @@
         envjasmine_dir = os.path.join(os.path.dirname(here), 'envjasmine')
         jstests = Runner(
+            testing_enviroment='rhino',
             rootdir=envjasmine_dir,
             testdir=sample,
@@ -97,5 +104,5 @@
         # but we want to test also the case when a test failed
         # and it does not appear in the "Failed:" report
-        jstests = Runner()
+        jstests = Runner(testing_enviroment='rhino')
         success = jstests.did_test_pass('')
         assert not success
@@ -120,2 +127,86 @@
         success = jstests.did_test_pass('Failed: something-not-a-number')
         assert not success
+
+class TestsRunnerPhantomjs(object):
+
+    """
+    Run the full tests using the phantom+jasmine3 env
+    """
+
+    def test_write_browser_htmlfile_markup_is_correct(self):
+        """
+        Test the created markup
+        The config file doesn't contain the mock files so jasmine tests
+        are expected to fail
+        """
+        here = os.path.dirname(__file__)
+        sample = os.path.join(here, 'sample')
+        browser_conf_file = os.path.join(sample, 'browser.configfile_no_mocks.js')
+        envjasmine_dir = os.path.join(os.path.dirname(here), 'envjasmine')
+        jstests = Runner(
+            testing_enviroment='phantomjs',
+            rootdir=envjasmine_dir,
+            testdir=sample,
+            browser_configfile=browser_conf_file
+        )
+        expected = jstests.create_testRunnerHtml()
+        jstests.write_browser_htmlfile()
+        success, stdout = jstests.run()
+        assert not success
+        assert '2 test(s) FAILED:' in stdout
+        with open("browser.runner.html",'r') as file:
+            actual = file.read()
+            assert expected == actual
+
+    def test_runner_with_browser_configfile(self):
+        """
+        Test the runner, giving it some parameters incl the browser config file
+        The config file contains the mock files so jasmine tests are expected
+        to pass
+        """
+        here = os.path.dirname(__file__)
+        sample = os.path.join(here, 'sample')
+        browser_conf_file = os.path.join(sample, 'browser.configfile.js')
+        envjasmine_dir = os.path.join(os.path.dirname(here), 'envjasmine')
+        jstests = Runner(
+            testing_enviroment='phantomjs',
+            rootdir=envjasmine_dir,
+            testdir=sample,
+            browser_configfile=browser_conf_file
+        )
+        success, stdout = jstests.run()
+        assert success
+        assert '0 failures' in stdout
+
+    def test_did_test_pass(self):
+        # there is some coverage done with the previous tests,
+        # but we want to test also the case when a test failed
+        # and it does not appear in the "Failed:" report
+        here = os.path.dirname(__file__)
+        sample = os.path.join(here, 'sample')
+        browser_conf_file = os.path.join(sample, 'browser.configfile.js')
+
+        jstests = Runner(
+            testing_enviroment='phantomjs',
+            browser_configfile=browser_conf_file
+        )
+        success = jstests.did_test_pass('')
+        assert not success
+        success = jstests.did_test_pass('some random data '*50)
+        assert not success
+        success = jstests.did_test_pass('some data FAILED some more data')
+        assert not success
+        success = jstests.did_test_pass('some data FAILEDsome more data')
+        assert not success
+        success = jstests.did_test_pass('0 failures')
+        assert success
+        success = jstests.did_test_pass('0 failures FAILED')
+        assert not success
+        success = jstests.did_test_pass('0Failed: failures')
+        assert not success
+        success = jstests.did_test_pass('1 test(s) FAILED:')
+        assert not success
+        success = jstests.did_test_pass('-11 test(s) FAILED:')
+        assert not success
+        success = jstests.did_test_pass('something-not-a-number test(s) FAILED:')
+        assert not success
