diff --git a/lib/phpunit/classes/util.php b/lib/phpunit/classes/util.php index 8850bf4f98f..e547b3026ef 100644 --- a/lib/phpunit/classes/util.php +++ b/lib/phpunit/classes/util.php @@ -112,6 +112,9 @@ class phpunit_util extends testing_util { // Stop any message redirection. phpunit_util::stop_event_redirection(); + // We used to call gc_collect_cycles here to ensure desctructors were called between tests. + // This accounted for 25% of the total time running phpunit - so we removed it. + // Show any unhandled debugging messages, the runbare() could already reset it. self::display_debugging_messages(); self::reset_debugging(); diff --git a/question/engine/tests/questionusage_autosave_test.php b/question/engine/tests/questionusage_autosave_test.php index 14315408c79..e846bc5ff99 100644 --- a/question/engine/tests/questionusage_autosave_test.php +++ b/question/engine/tests/questionusage_autosave_test.php @@ -685,4 +685,10 @@ class question_usage_autosave_test extends qbehaviour_walkthrough_test_base { $this->delete_quba(); } + + protected function tearDown() { + // This test relies on the destructor for the second DB connection being called before running the next test. + // Without this change - there will be unit test failures on "some" DBs (MySQL). + gc_collect_cycles(); + } }