$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);
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);
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; }