示例#1
0
 /**
  * Create a builder for the headless environment.
  *
  * @return \Civi\Test\CiviEnvBuilder
  *
  * @code
  * \Civi\Test::headless()->apply();
  * \Civi\Test::headless()->sqlFile('ex.sql')->apply();
  * @endCode
  */
 public static function headless()
 {
     $civiRoot = dirname(__DIR__);
     $builder = new \Civi\Test\CiviEnvBuilder('CiviEnvBuilder');
     $builder->callback(function ($ctx) {
         if (CIVICRM_UF !== 'UnitTests') {
             throw new \RuntimeException("\\Civi\\Test::headless() requires CIVICRM_UF=UnitTests");
         }
         $dbName = \Civi\Test::dsn('database');
         echo "Installing {$dbName} schema\n";
         \Civi\Test::schema()->dropAll();
     }, 'headless-drop')->sqlFile($civiRoot . "/sql/civicrm.mysql")->sql("DELETE FROM civicrm_extension")->callback(function ($ctx) {
         \Civi\Test::data()->populate();
     }, 'populate');
     return $builder;
 }