Commit:    3da8c38e0a6c93d4b79beefb94856fb38c7d23d6
Author:    Matt Ficken <v-maf...@microsoft.com>         Tue, 18 Jun 2013 
19:23:47 -0700
Parents:   a6c2d9985e122d90b3d4c17de47cf0d9d78d0c3c
Branches:  master

Link:       
http://git.php.net/?p=pftt2.git;a=commitdiff;h=3da8c38e0a6c93d4b79beefb94856fb38c7d23d6

Log:
fix PhpUnit skip/incomplete status detection bug


Former-commit-id: 25826f5b1c019e7196d83dbb5192b6fc9119d362

Changed paths:
  M  src/com/mostc/pftt/model/app/PhpUnitTemplate.groovy


Diff:
diff --git a/src/com/mostc/pftt/model/app/PhpUnitTemplate.groovy 
b/src/com/mostc/pftt/model/app/PhpUnitTemplate.groovy
index 62f432b..23f3976 100644
--- a/src/com/mostc/pftt/model/app/PhpUnitTemplate.groovy
+++ b/src/com/mostc/pftt/model/app/PhpUnitTemplate.groovy
@@ -152,6 +152,7 @@ function __phpunit_run_isolated_test()
        \$status = PHPUnit_Runner_BaseTestRunner::STATUS_SKIPPED;
        \$status_msg = NULL;
        \$output = NULL;
+       \$start_time = 0;
        \$run_time = 0;
        try {
                if (!class_exists('$test_case.className')) {
@@ -181,7 +182,20 @@ pw.println("""
                \$test->run(\$result);
                \$run_time = microtime(TRUE) - \$start_time;
                \$status = \$test->getStatus();
-               \$status_msg = \$test->getStatusMessage();""");
+               \$status_msg = \$test->getStatusMessage();
+       } catch ( Exception \$e ) {
+               \$output = ob_get_clean();
+               echo 'ERROR'; echo PHP_EOL;
+               echo '$test_case.className'; echo PHP_EOL;
+               echo \$e->getTraceAsString(); echo PHP_EOL;
+               echo \$e->getMessage(); echo PHP_EOL;
+               echo \$output;
+               dump_info();
+
+               \$GLOBALS['ignore_exit'] = TRUE;
+               return;
+       }
+""");
        } else {
                // @see PhpUnit_Framework_TestCase::runBare
                //
@@ -199,39 +213,26 @@ pw.println("""clearstatcache();
                } catch ( Exception \$e2 ) {}
                \$output = ob_get_clean();
                \$status = PHPUnit_Runner_BaseTestRunner::STATUS_PASSED;
-       } catch (PHPUnit_Framework_IncompleteTest \$e) {
-               \$run_time = microtime(TRUE) - \$start_time;
-               \$status     = PHPUnit_Runner_BaseTestRunner::STATUS_INCOMPLETE;
-               \$status_msg = \$e->getTraceAsString();
-       } catch (PHPUnit_Framework_SkippedTest \$e) {
-               \$run_time = microtime(TRUE) - \$start_time;
-               \$status     = PHPUnit_Runner_BaseTestRunner::STATUS_SKIPPED;
-               \$status_msg = \$e->getTraceAsString();
-       } catch (PHPUnit_Framework_AssertionFailedError \$e) {
-               \$run_time = microtime(TRUE) - \$start_time;
-               \$status     = PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE;
-               \$status_msg = \$e->getTraceAsString();
        } catch (Exception \$e) {
                \$run_time = microtime(TRUE) - \$start_time;
-               \$status     = PHPUnit_Runner_BaseTestRunner::STATUS_ERROR;
-               \$status_msg = \$e->getTraceAsString();""");
+               if (\$e instanceof PHPUnit_Framework_SkippedTest) { 
+                       \$status = 
PHPUnit_Runner_BaseTestRunner::STATUS_SKIPPED;
+               } else if (\$e instanceof PHPUnit_Framework_IncompleteTest) {
+                       \$status = PHPUnit_Runner_BaseTestRunner::STATUS_ERROR;
+               } else if (\$e instanceof 
PHPUnit_Framework_AssertionFailedError) {
+                       \$status = 
PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE;
+               } else {
+                       \$status = 
PHPUnit_Runner_BaseTestRunner::STATUS_INCOMPLETE;
+               }
+               \$status_msg = \$e->getTraceAsString() . \$e->getMessage();
+       }
+""");
        } // end if (reflection_only)
        // PFTT Extension: use Exception#getTraceAsString to get the message 
instead of
        //                 Exception#getMessage. this provides a stack trace to
        //                 the exact part of the test that throws the exception
        //
-pw.println(""" } catch ( Exception \$e ) {
-               \$output = ob_get_clean();
-               echo 'ERROR'; echo PHP_EOL;
-               echo '$test_case.className'; echo PHP_EOL;
-               echo \$e->getTraceAsString(); echo PHP_EOL;
-               echo \$output;
-               dump_info();
-
-               \$GLOBALS['ignore_exit'] = TRUE;
-               return;
-       }
-
+pw.println(""" 
        // PFTT
        switch(\$status) {
        case PHPUnit_Runner_BaseTestRunner::STATUS_PASSED:

Reply via email to