// TODO: localise // Create the group of tests. $test = new autogroup_test_coverage(false, true, $codecoverage); $test->addTestFile($CFG->libdir . '/dml/simpletest/testdml.php'); $test->addTestFile($CFG->libdir . '/ddl/simpletest/testddl.php'); // Make the reporter, which is what displays the results. $reporter = new ExHtmlReporter($showpasses); set_time_limit(300); // 5 mins per DB should be enough $test->run_with_external_coverage($reporter, $covrecorder); unset($UNITTEST->func_test_db); echo '<hr />'; } if ($codecoverage) { $covrecorder->generate_report(); moodle_coverage_reporter::print_summary_info('dbtest'); } } // Print the form for adjusting options. echo $OUTPUT->box_start('generalbox boxwidthwide boxaligncenter'); echo '<form method="post" action="dbtest.php">'; echo '<div>'; echo $OUTPUT->heading("Run functional database tests"); // TODO: localise echo '<p>' . html_writer::checkbox('showpasses', 1, $showpasses, get_string('showpasses', 'tool_unittest')) . '</p>'; if (moodle_coverage_recorder::can_run_codecoverage()) { echo '<p>' . html_writer::checkbox('codecoverage', 1, $codecoverage, get_string('codecoverageanalysis', 'tool_unittest')) . '</p>'; } else { echo '<p>'; print_string('codecoveragedisabled', 'tool_unittest'); echo '<input type="hidden" name="codecoverage" value="0" /></p>';
/** * Run the autogroup_test_coverage using one internally defined code coverage reporter * automatically generating the coverage report. Only supports one instrumentation * to be executed and reported. */ public function run($simpletestreporter) { global $CFG; if (moodle_coverage_recorder::can_run_codecoverage() && $this->performcoverage) { // Testing with coverage $covreporter = new moodle_coverage_reporter($this->coveragename, $this->coveragedir); $covrecorder = new moodle_coverage_recorder($covreporter); $covrecorder->setIncludePaths($this->includecoverage); $covrecorder->setExcludePaths($this->excludecoverage); $covrecorder->start_instrumentation(); parent::run($simpletestreporter); $covrecorder->stop_instrumentation(); set_time_limit(60 * 10); // it may take a long time to generate the report $covrecorder->generate_report(); moodle_coverage_reporter::print_summary_info(basename($this->coveragedir)); } else { // Testing without coverage parent::run($simpletestreporter); } }