CRM-14423 - Run env checks before executing tests
authorTim Otten <totten@civicrm.org>
Fri, 4 Apr 2014 05:16:10 +0000 (22:16 -0700)
committerTim Otten <totten@civicrm.org>
Fri, 4 Apr 2014 05:16:10 +0000 (22:16 -0700)
CRM/Utils/Check.php
tests/phpunit/CiviTest/CiviUnitTestCase.php

index 08b8d7af7c7de05811368fe239858705b488f0ad..9b13b0db7a87ae444ec29a9f1bc91ddf7deb12a6 100644 (file)
@@ -79,6 +79,20 @@ class CRM_Utils_Check {
     }
   }
 
+  /**
+   * Throw an exception if any of the checks fail
+   */
+  public function assertValid() {
+    $messages = $this->checkAll();
+    if (!empty($messages)) {
+      $messagesAsArray = array();
+      foreach ($messages as $message) {
+        $messagesAsArray[] = $message->toArray();
+      }
+      throw new Exception('There are configuration problems with this installation: ' . print_r($messagesAsArray, TRUE));
+    }
+  }
+
   /**
    * Run some sanity checks.
    *
index 1151b5e2c49e4a590e7cabdca4962c6560761302..118fde48ce48f3fe66e57d097c1d7c02fd620847 100644 (file)
@@ -306,6 +306,8 @@ class CiviUnitTestCase extends PHPUnit_Extensions_Database_TestCase {
 
     // also set this global hack
     $GLOBALS['_PEAR_ERRORSTACK_OVERRIDE_CALLBACK'] = array();
+
+    CRM_Utils_Check::singleton()->assertValid();
   }
 
   /**