Index: pyenvjasmine/runner.py
===================================================================
--- pyenvjasmine/runner.py	(revision 30)
+++ pyenvjasmine/runner.py	(revision 33)
@@ -186,4 +186,15 @@
 
     def did_test_pass(self, stdout):
+        if 'FAILED' in stdout:
+            # it can happen that a test fails because of some timing issues
+            # (timer error). In such case it may happen that the test does
+            # not appear in the "Failed" report at the end, even if it
+            # failed, because the execution is interrupted there (no more
+            # tests are even run afterwards)
+            #
+            # in such case, we consider tests failed
+            return False
+        # Otherwise, look for a "Failed: 0" status, which we consider as
+        # tests passing ok
         for line in stdout.splitlines():
             if 'Failed' in line:
Index: pyenvjasmine/tests/test_runner.py
===================================================================
--- pyenvjasmine/tests/test_runner.py	(revision 31)
+++ pyenvjasmine/tests/test_runner.py	(revision 33)
@@ -92,2 +92,30 @@
         finally:
             os.name = old_os_name
+
+    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
+        jstests = Runner()
+        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('Failed: 0')
+        assert success
+        success = jstests.did_test_pass('Failed: 0 FAILED')
+        assert not success
+        success = jstests.did_test_pass('FAILEDFailed: 0')
+        assert not success
+        success = jstests.did_test_pass('Failed: 0FAILED')
+        assert not success
+        success = jstests.did_test_pass('Failed: 1')
+        assert not success
+        success = jstests.did_test_pass('Failed: -11')
+        assert not success
+        success = jstests.did_test_pass('Failed: something-not-a-number')
+        assert not success
