Example #1
0
        // 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);
     }
 }