Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-40778

unit test fails when running more than one test which create and load random questions

XMLWordPrintable

    • MOODLE_26_STABLE
    • MOODLE_26_STABLE
    • wip_MDL-40778_v2
    • Hide

      There is an included unit test :

      question/type/random/tests/questiontype_test.php

      It will certainly be sufficient to have all unit tests run on the continuous integration server and see if they pass but if desired you might also just run the tests as speified in the attached phpunit config file quiz_and_random.xml which should go in the root of your Moodle.

      Show
      There is an included unit test : question/type/random/tests/questiontype_test.php It will certainly be sufficient to have all unit tests run on the continuous integration server and see if they pass but if desired you might also just run the tests as speified in the attached phpunit config file quiz_and_random.xml which should go in the root of your Moodle.

      If I use the attached file to configure phpunit to only run the quiz and question unit tests I get failures.

      The unit tests that fail do not fail when run individually or when all unit tests are run.

      Not sure if this is a bug or whether there is a problem with the php unit config file but I guess since it might be a bug then this would be the place to discuss it.

      I have attached the config file.

      Below is the output from phpunit :

      /usr/bin/php -d auto_prepend_file=/home/jamiep/www/moodle/vendor/autoload.php /tmp/ide-phpunit.php --configuration /home/jamiep/www/moodle/quizandquestion_core_phpunit.xml
      Testing started at 4:37 PM ...
      Moodle 2.6dev (Build: 20130712), pgsql, fead01fd6d1d920d78f1058d82a22919831c71c2
      PHPUnit 3.7.14 by Sebastian Bergmann.
       
      Configuration read from /home/jamiep/www/moodle/quizandquestion_core_phpunit.xml
       
       
      PHPUnit_Framework_Error_Warning : Warning: unexpected database modification, resetting DB state
      Warning: unexpected change of $USER
      #0 [internal function]: PHPUnit_Util_ErrorHandler::handleError(512, 'Warning: unexpe...', '/home/jamiep/ww...', 234, Array)
      #1 /home/jamiep/www/moodle/lib/phpunit/classes/util.php(234): trigger_error('Warning: unexpe...', 512)
      #2 /home/jamiep/www/moodle/lib/phpunit/classes/advanced_testcase.php(118): phpunit_util::reset_all_data(true)
      #3 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php(648): advanced_testcase->runBare()
      #4 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(769): PHPUnit_Framework_TestResult->run(Object(qubaid_condition_test))
      #5 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(775): PHPUnit_Framework_TestCase->run(Object(PHPUnit_Framework_TestResult))
      #6 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(745): PHPUnit_Framework_TestSuite->runTest(Object(qubaid_condition_test), Object(PHPUnit_Framework_TestResult))
      #7 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(705): PHPUnit_Framework_TestSuite->run(Object(PHPUnit_Framework_TestResult), false, Array, Array, false)
      #8 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(705): PHPUnit_Framework_TestSuite->run(Object(PHPUnit_Framework_TestResult), false, Array, Array, false)
      #9 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php(346): PHPUnit_Framework_TestSuite->run(Object(PHPUnit_Framework_TestResult), false, Array, Array, false)
      #10 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array)
      #11 /tmp/ide-phpunit.php(260): PHPUnit_TextUI_Command->run(Array, true)
      #12 /tmp/ide-phpunit.php(498): IDE_Base_PHPUnit_TextUI_Command::main()
      #13 {main}
       
      dml_missing_record_exception : Can not find data record in database. (SELECT quiz.*, honestycheckrequired FROM {quiz} quiz LEFT JOIN {quizaccess_honestycheck} honestycheck ON honestycheck.quizid = quiz.id WHERE quiz.id = :quizid
      [array (
        'quizid' => '1',
      )])
      #0 /home/jamiep/www/moodle/mod/quiz/accessmanager.php(241): moodle_database->get_record_sql('SELECT quiz.*, ...', Array, 2)
      #1 /home/jamiep/www/moodle/mod/quiz/attemptlib.php(110): quiz_access_manager::load_quiz_and_settings('1')
      #2 /home/jamiep/www/moodle/mod/quiz/tests/attempt_walkthrough_from_csv_test.php(190): quiz::create('1', '3')
      #3 [internal function]: mod_quiz_attempt_walkthrough_from_csv_testcase->test_walkthrough_from_csv(Object(stdClass), Array, 7, Object(PHPUnit_Extensions_Database_DataSet_DefaultTable), Object(PHPUnit_Extensions_Database_DataSet_DefaultTable))
      #4 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(969): ReflectionMethod->invokeArgs(Object(mod_quiz_attempt_walkthrough_from_csv_testcase), Array)
      #5 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(824): PHPUnit_Framework_TestCase->runTest()
      #6 /home/jamiep/www/moodle/lib/phpunit/classes/advanced_testcase.php(76): PHPUnit_Framework_TestCase->runBare()
      #7 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php(648): advanced_testcase->runBare()
      #8 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(769): PHPUnit_Framework_TestResult->run(Object(mod_quiz_attempt_walkthrough_from_csv_testcase))
      #9 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(775): PHPUnit_Framework_TestCase->run(Object(PHPUnit_Framework_TestResult))
      #10 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(745): PHPUnit_Framework_TestSuite->runTest(Object(mod_quiz_attempt_walkthrough_from_csv_testcase), Object(PHPUnit_Framework_TestResult))
      #11 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(705): PHPUnit_Framework_TestSuite->run(Object(PHPUnit_Framework_TestResult), false, Array, Array, false)
      #12 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(705): PHPUnit_Framework_TestSuite->run(Object(PHPUnit_Framework_TestResult), false, Array, Array, false)
      #13 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(705): PHPUnit_Framework_TestSuite->run(Object(PHPUnit_Framework_TestResult), false, Array, Array, false)
      #14 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php(346): PHPUnit_Framework_TestSuite->run(Object(PHPUnit_Framework_TestResult), false, Array, Array, false)
      #15 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array)
      #16 /tmp/ide-phpunit.php(260): PHPUnit_TextUI_Command->run(Array, true)
      #17 /tmp/ide-phpunit.php(498): IDE_Base_PHPUnit_TextUI_Command::main()
      #18 {main}
      Empty test suite.
      Empty test suite.
       
      dml_missing_record_exception : Can not find data record in database. (
                                          SELECT q.*, qc.contextid
                                          FROM {question} q
                                          JOIN {question_categories} qc ON q.category = qc.id
                                          WHERE q.id = :id
      [array (
        'id' => '6',
      )])
      #0 /home/jamiep/www/moodle/question/engine/bank.php(516): moodle_database->get_record_sql('?              ...', Array, 2)
      #1 /home/jamiep/www/moodle/cache/classes/loaders.php(322): question_finder->load_for_cache('6')
      #2 /home/jamiep/www/moodle/cache/classes/loaders.php(1338): cache->get('6', 0)
      #3 /home/jamiep/www/moodle/question/engine/bank.php(480): cache_application->get('6')
      #4 /home/jamiep/www/moodle/question/engine/bank.php(255): question_finder->load_question_data('6')
      #5 /home/jamiep/www/moodle/question/engine/bank.php(274): question_bank::load_question_data('6')
      #6 /home/jamiep/www/moodle/question/type/random/questiontype.php(240): question_bank::load_question('6', true)
      #7 /home/jamiep/www/moodle/question/type/random/questiontype.php(207): qtype_random->choose_other_question(Object(stdClass), Array)
      #8 /home/jamiep/www/moodle/question/engine/bank.php(289): qtype_random->make_question(Object(stdClass), false)
      #9 /home/jamiep/www/moodle/question/engine/bank.php(279): question_bank::make_question(Object(stdClass))
      #10 /home/jamiep/www/moodle/question/type/random/tests/questiontype_test.php(75): question_bank::load_question(3)
      #11 [internal function]: qtype_random_test->test_question_creation()
      #12 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(969): ReflectionMethod->invokeArgs(Object(qtype_random_test), Array)
      #13 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(824): PHPUnit_Framework_TestCase->runTest()
      #14 /home/jamiep/www/moodle/lib/phpunit/classes/advanced_testcase.php(76): PHPUnit_Framework_TestCase->runBare()
      #15 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php(648): advanced_testcase->runBare()
      #16 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(769): PHPUnit_Framework_TestResult->run(Object(qtype_random_test))
      #17 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(775): PHPUnit_Framework_TestCase->run(Object(PHPUnit_Framework_TestResult))
      #18 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(745): PHPUnit_Framework_TestSuite->runTest(Object(qtype_random_test), Object(PHPUnit_Framework_TestResult))
      #19 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(705): PHPUnit_Framework_TestSuite->run(Object(PHPUnit_Framework_TestResult), false, Array, Array, false)
      #20 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(705): PHPUnit_Framework_TestSuite->run(Object(PHPUnit_Framework_TestResult), false, Array, Array, false)
      #21 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php(346): PHPUnit_Framework_TestSuite->run(Object(PHPUnit_Framework_TestResult), false, Array, Array, false)
      #22 /home/jamiep/www/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array)
      #23 /tmp/ide-phpunit.php(260): PHPUnit_TextUI_Command->run(Array, true)
      #24 /tmp/ide-phpunit.php(498): IDE_Base_PHPUnit_TextUI_Command::main()
      #25 {main}
       
       
      Time: 02:12, Memory: 142.75Mb
       
       
      FAILURES!
      Tests: 608, Assertions: 4883, Errors: 3.
       
      Process finished with exit code 2
      

        1. quiz_and_random.xml
          1 kB
          Jamie Pratt
        2. quizandquestion_core_phpunit.xml
          9 kB
          Jamie Pratt

            jamiesensei Jamie Pratt (Inactive)
            jamiesensei Jamie Pratt (Inactive)
            Tim Hunt Tim Hunt
            Dan Poltawski Dan Poltawski
            Adrian Greeve Adrian Greeve
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:

                Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.