예제 #1
0
파일: suite.php 프로젝트: duanhv/mdg-social
$test_path = "{$CONFIG->path}/engine/tests";
require_once "{$vendor_path}/unit_tester.php";
require_once "{$vendor_path}/mock_objects.php";
require_once "{$vendor_path}/reporter.php";
require_once "{$test_path}/elgg_unit_test.php";
// turn off system log
elgg_unregister_event_handler('all', 'all', 'system_log_listener');
elgg_unregister_event_handler('log', 'systemlog', 'system_log_default_logger');
// Disable maximum execution time.
// Tests take a while...
set_time_limit(0);
$suite = new TestSuite('Elgg Core Unit Tests');
// emit a hook to pull in all tests
$test_files = elgg_trigger_plugin_hook('unit_test', 'system', null, array());
foreach ($test_files as $file) {
    $suite->addTestFile($file);
}
// Only run tests in debug mode.
if (!isset($CONFIG->debug)) {
    exit('The site must be in debug mode to run unit tests.');
}
if (TextReporter::inCli()) {
    // In CLI error codes are returned: 0 is success
    elgg_set_ignore_access(TRUE);
    exit($suite->Run(new TextReporter()) ? 0 : 1);
}
// Ensure that only logged-in users can see this page
//admin_gatekeeper();
$old = elgg_set_ignore_access(TRUE);
$suite->Run(new HtmlReporter('utf-8'));
elgg_set_ignore_access($old);
예제 #2
0
파일: suite.php 프로젝트: cyrixhero/Elgg
    foreach ($subtypes as $subtype => $actions) {
        $notifications->unregisterEvent($type, $subtype);
    }
}
// disable emails
_elgg_services()->setValue('mailer', new InMemoryTransport());
// Disable maximum execution time.
// Tests take a while...
set_time_limit(0);
$suite = new TestSuite('Elgg Core Unit Tests');
// emit a hook to pull in all tests
$test_files = elgg_trigger_plugin_hook('unit_test', 'system', null, array());
foreach ($test_files as $file) {
    $suite->addFile($file);
}
if (TextReporter::inCli()) {
    // In CLI error codes are returned: 0 is success
    $start_time = microtime(true);
    $reporter = new TextReporter();
    $result = $suite->Run($reporter) ? 0 : 1;
    echo sprintf("Time: %.2f seconds, Memory: %.2fMb\n", microtime(true) - $start_time, memory_get_peak_usage() / 1048576.0);
    // deactivate plugins that were activated for test suite
    foreach ($plugins as $key => $id) {
        $plugin = elgg_get_plugin_from_id($id);
        $plugin->deactivate();
    }
    exit($result);
}
$old = elgg_set_ignore_access(true);
$suite->Run(new HtmlReporter('utf-8'));
elgg_set_ignore_access($old);
예제 #3
0
 protected function Run(TestSuite &$suite, $filename, $extension)
 {
     $suite->Run($this);
     $report = $this->Report();
     if ('string' != gettype($filename)) {
         echo $report;
     } else {
         if ('' == $filename) {
             $filename = tempnam(sys_get_temp_dir(), 'rep');
         }
         $filename .= '.' . $extension;
         $fh = fopen($filename, 'w');
         if (!$fh) {
             echo 'Unable to open file to write to: ' . $filename . "\n";
             return -2;
         }
         echo 'Writing results to: ' . $filename . "\n";
         if (!fwrite($fh, $report)) {
             echo 'Unable to write to file: ' . $filename . "\n";
             return -3;
         }
         fclose($fh);
     }
     return $suite->AllPassed() ? 0 : -1;
 }