Files
moodle/phpunit.xml.dist
Andrew Nicols 9142bd0ac6 MDL-87716 phpunit: Update phpunit configuration for composer
PHPUnit paths must be provided relative to the `phpunit.xml` file.

In current operation, the `phpunit.xml` is generated in the root
directory, and all paths are relative to this.

When installed using Composer, the Moodle directory is in a
sub-directory of the root package/directory, so the configuration must
reflect this.
2026-02-11 15:11:57 +08:00

364 lines
18 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd"
bootstrap="@root@public/lib/phpunit/bootstrap.php"
processIsolation="false"
backupGlobals="false"
cacheResult="false"
failOnDeprecation="true"
failOnWarning="true"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
beStrictAboutTestsThatDoNotTestAnything="false"
beStrictAboutOutputDuringTests="true"
cacheDirectory=".phpunit.cache"
backupStaticProperties="false"
>
<php>
<!--<const name="PHPUNIT_LONGTEST" value="1"/> uncomment to execute also slow or otherwise expensive tests-->
<const name="PHPUNIT_SEQUENCE_START" value=""/>
<!--Following constants instruct tests to fetch external test files from alternative location
or skip tests if empty, clone https://github.com/moodlehq/moodle-exttests to local web server-->
<!--<const name="TEST_EXTERNAL_FILES_HTTP_URL" value="http://download.moodle.org/unittest"/>
uncomment and alter to fetch external test files from alternative location-->
<!--<const name="TEST_EXTERNAL_FILES_HTTPS_URL" value="https://download.moodle.org/unittest"/>
uncomment and alter to fetch external test files from alternative location-->
</php>
<extensions>
<bootstrap class="core\tests\phpunit\moodle_extension"/>
</extensions>
<!--All core suites need to be manually added here-->
<testsuites>
<testsuite name="core_phpunit_testsuite">
<directory suffix="_test.php">@root@public/lib/phpunit/tests</directory>
<exclude>@root@public/lib/phpunit/tests/classes</exclude>
<exclude>@root@public/lib/phpunit/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_test_testsuite">
<directory suffix="_test.php">@root@public/lib/testing/tests</directory>
<exclude>@root@public/lib/testing/tests/classes</exclude>
<exclude>@root@public/lib/testing/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_ddl_testsuite">
<directory suffix="_test.php">@root@public/lib/ddl/tests</directory>
<exclude>@root@public/lib/ddl/tests/classes</exclude>
<exclude>@root@public/lib/ddl/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_dml_testsuite">
<directory suffix="_test.php">@root@public/lib/dml/tests</directory>
<exclude>@root@public/lib/dml/tests/classes</exclude>
<exclude>@root@public/lib/dml/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_testsuite">
<directory suffix="_test.php">@root@public/lib/tests</directory>
<exclude>@root@public/lib/tests/classes</exclude>
<exclude>@root@public/lib/tests/fixtures</exclude>
<!-- <directory suffix="_test.php">@root@public/lib/ajax/tests</directory> -->
</testsuite>
<testsuite name="core_external_testsuite">
<directory suffix="_test.php">@root@public/lib/external/tests</directory>
<exclude>@root@public/lib/external/tests/classes</exclude>
<exclude>@root@public/lib/external/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_favourites_testsuite">
<directory suffix="_test.php">@root@public/favourites/tests</directory>
<exclude>@root@public/favourites/tests/classes</exclude>
<exclude>@root@public/favourites/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_form_testsuite">
<directory suffix="_test.php">@root@public/lib/form/tests</directory>
<exclude>@root@public/lib/form/tests/classes</exclude>
<exclude>@root@public/lib/form/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_files_testsuite">
<directory suffix="_test.php">@root@public/lib/filestorage/tests</directory>
<directory suffix="_test.php">@root@public/lib/filebrowser/tests</directory>
<directory suffix="_test.php">@root@public/files/tests</directory>
<exclude>@root@public/lib/filestorage/tests/classes</exclude>
<exclude>@root@public/lib/filestorage/tests/fixtures</exclude>
<exclude>@root@public/lib/filebrowser/tests/classes</exclude>
<exclude>@root@public/lib/filebrowser/tests/fixtures</exclude>
<exclude>@root@public/files/tests/classes</exclude>
<exclude>@root@public/files/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_filter_testsuite">
<directory suffix="_test.php">@root@public/filter/tests</directory>
<exclude>@root@public/filter/tests/classes</exclude>
<exclude>@root@public/filter/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_role_testsuite">
<directory suffix="_test.php">@root@public/admin/roles/tests</directory>
<exclude>@root@public/admin/roles/tests/classes</exclude>
</testsuite>
<testsuite name="core_cohort_testsuite">
<directory suffix="_test.php">@root@public/cohort/tests</directory>
<exclude>@root@public/cohort/tests/classes</exclude>
</testsuite>
<testsuite name="core_grades_testsuite">
<directory suffix="_test.php">@root@public/lib/grade/tests</directory>
<directory suffix="_test.php">@root@public/grade/tests</directory>
<directory suffix="_test.php">@root@public/grade/grading/tests</directory>
<exclude>@root@public/lib/grade/tests/classes</exclude>
<exclude>@root@public/grade/tests/classes</exclude>
<exclude>@root@public/grade/grading/tests/classes</exclude>
</testsuite>
<testsuite name="core_analytics_testsuite">
<directory suffix="_test.php">@root@public/analytics/tests</directory>
<exclude>@root@public/analytics/tests/classes</exclude>
</testsuite>
<testsuite name="core_availability_testsuite">
<directory suffix="_test.php">@root@public/availability/tests</directory>
<exclude>@root@public/availability/tests/classes</exclude>
</testsuite>
<testsuite name="core_backup_testsuite">
<directory suffix="_test.php">@root@public/backup/controller/tests</directory>
<directory suffix="_test.php">@root@public/backup/converter/moodle1/tests</directory>
<directory suffix="_test.php">@root@public/backup/moodle2/tests</directory>
<directory suffix="_test.php">@root@public/backup/tests</directory>
<directory suffix="_test.php">@root@public/backup/util</directory>
<exclude>@root@public/backup/controller/tests/classes</exclude>
<exclude>@root@public/backup/converter/moodle1/tests/classes</exclude>
<exclude>@root@public/backup/moodle2/tests/classes</exclude>
<exclude>@root@public/backup/tests/classes</exclude>
<exclude>@root@public/backup/util/classes</exclude>
</testsuite>
<testsuite name="core_badges_testsuite">
<directory suffix="_test.php">@root@public/badges/tests</directory>
<exclude>@root@public/badges/tests/classes</exclude>
</testsuite>
<testsuite name="core_blog_testsuite">
<directory suffix="_test.php">@root@public/blog/tests</directory>
<exclude>@root@public/blog/tests/classes</exclude>
</testsuite>
<testsuite name="core_customfield_testsuite">
<directory suffix="_test.php">@root@public/customfield/tests</directory>
<exclude>@root@public/customfield/tests/classes</exclude>
</testsuite>
<testsuite name="core_iplookup_testsuite">
<directory suffix="_test.php">@root@public/iplookup/tests</directory>
<exclude>@root@public/iplookup/tests/classes</exclude>
</testsuite>
<testsuite name="core_course_testsuite">
<directory suffix="_test.php">@root@public/course/tests</directory>
<exclude>@root@public/course/tests/classes</exclude>
</testsuite>
<testsuite name="core_courseformat_testsuite">
<directory suffix="_test.php">@root@public/course/format/tests</directory>
<exclude>@root@public/course/format/tests/classes</exclude>
</testsuite>
<testsuite name="core_privacy_testsuite">
<directory suffix="_test.php">@root@public/privacy/tests</directory>
<exclude>@root@public/privacy/tests/classes</exclude>
</testsuite>
<testsuite name="core_question_testsuite">
<directory suffix="_test.php">@root@public/question/engine/tests</directory>
<directory suffix="_test.php">@root@public/question/tests</directory>
<directory suffix="_test.php">@root@public/question/type/tests</directory>
<directory suffix="_test.php">@root@public/question/engine/upgrade/tests</directory>
<exclude>@root@public/question/engine/tests/classes</exclude>
<exclude>@root@public/question/tests/classes</exclude>
<exclude>@root@public/question/type/tests/classes</exclude>
<exclude>@root@public/question/engine/upgrade/tests/classes</exclude>
</testsuite>
<testsuite name="core_cache_testsuite">
<directory suffix="_test.php">@root@public/cache/tests</directory>
<exclude>@root@public/cache/tests/classes</exclude>
<exclude>@root@public/cache/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_calendar_testsuite">
<directory suffix="_test.php">@root@public/calendar/tests</directory>
<exclude>@root@public/calendar/tests/classes</exclude>
<exclude>@root@public/calendar/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_enrol_testsuite">
<directory suffix="_test.php">@root@public/enrol/tests</directory>
<exclude>@root@public/enrol/tests/classes</exclude>
<exclude>@root@public/enrol/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_group_testsuite">
<directory suffix="_test.php">@root@public/group/tests</directory>
<exclude>@root@public/group/tests/classes</exclude>
<exclude>@root@public/group/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_message_testsuite">
<directory suffix="_test.php">@root@public/message/tests</directory>
<exclude>@root@public/message/tests/classes</exclude>
<exclude>@root@public/message/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_notes_testsuite">
<directory suffix="_test.php">@root@public/notes/tests</directory>
<exclude>@root@public/notes/tests/classes</exclude>
<exclude>@root@public/notes/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_tag_testsuite">
<directory suffix="_test.php">@root@public/tag/tests</directory>
<exclude>@root@public/tag/tests/classes</exclude>
<exclude>@root@public/tag/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_rating_testsuite">
<directory suffix="_test.php">@root@public/rating/tests</directory>
<exclude>@root@public/rating/tests/classes</exclude>
<exclude>@root@public/rating/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_repository_testsuite">
<directory suffix="_test.php">@root@public/repository/tests</directory>
<exclude>@root@public/repository/tests/classes</exclude>
<exclude>@root@public/repository/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_userkey_testsuite">
<directory suffix="_test.php">@root@public/lib/userkey/tests</directory>
<exclude>@root@public/lib/userkey/tests/classes</exclude>
<exclude>@root@public/lib/userkey/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_user_testsuite">
<directory suffix="_test.php">@root@public/user/tests</directory>
<exclude>@root@public/user/tests/classes</exclude>
<exclude>@root@public/user/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_webservice_testsuite">
<directory suffix="_test.php">@root@public/webservice/tests</directory>
<exclude>@root@public/webservice/tests/classes</exclude>
<exclude>@root@public/webservice/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_mnet_testsuite">
<directory suffix="_test.php">@root@public/mnet/tests</directory>
<exclude>@root@public/mnet/tests/classes</exclude>
<exclude>@root@public/mnet/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_completion_testsuite">
<directory suffix="_test.php">@root@public/completion/tests</directory>
<exclude>@root@public/completion/tests/classes</exclude>
<exclude>@root@public/completion/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_comment_testsuite">
<directory suffix="_test.php">@root@public/comment/tests</directory>
<exclude>@root@public/comment/tests/classes</exclude>
<exclude>@root@public/comment/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_search_testsuite">
<directory suffix="_test.php">@root@public/search/tests</directory>
<exclude>@root@public/search/tests/classes</exclude>
<exclude>@root@public/search/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_competency_testsuite">
<directory suffix="_test.php">@root@public/competency/tests</directory>
<exclude>@root@public/competency/tests/classes</exclude>
<exclude>@root@public/competency/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_my_testsuite">
<directory suffix="_test.php">@root@public/my/tests</directory>
<exclude>@root@public/my/tests/classes</exclude>
<exclude>@root@public/my/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_auth_testsuite">
<directory suffix="_test.php">@root@public/auth/tests</directory>
<exclude>@root@public/auth/tests/classes</exclude>
<exclude>@root@public/auth/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_block_testsuite">
<directory suffix="_test.php">@root@public/blocks/tests</directory>
<exclude>@root@public/blocks/tests/classes</exclude>
<exclude>@root@public/blocks/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_login_testsuite">
<directory suffix="_test.php">@root@public/login/tests</directory>
<exclude>@root@public/login/tests/classes</exclude>
<exclude>@root@public/login/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_plagiarism_testsuite">
<directory suffix="_test.php">@root@public/plagiarism/tests</directory>
<exclude>@root@public/plagiarism/tests/classes</exclude>
<exclude>@root@public/plagiarism/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_portfolio_testsuite">
<directory suffix="_test.php">@root@public/portfolio/tests</directory>
<exclude>@root@public/portfolio/tests/classes</exclude>
<exclude>@root@public/portfolio/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_editor_testsuite">
<directory suffix="_test.php">@root@public/lib/editor/tests</directory>
<exclude>@root@public/lib/editor/tests/classes</exclude>
<exclude>@root@public/lib/editor/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_rss_testsuite">
<directory suffix="_test.php">@root@public/rss/tests</directory>
<exclude>@root@public/rss/tests/classes</exclude>
<exclude>@root@public/rss/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_table_testsuite">
<directory suffix="_test.php">@root@public/lib/table/tests</directory>
<exclude>@root@public/lib/table/tests/classes</exclude>
<exclude>@root@public/lib/table/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_h5p_testsuite">
<directory suffix="_test.php">@root@public/h5p/tests</directory>
<exclude>@root@public/h5p/tests/classes</exclude>
<exclude>@root@public/h5p/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_xapi_testsuite">
<directory suffix="_test.php">@root@public/lib/xapi/tests</directory>
<exclude>@root@public/lib/xapi/tests/classes</exclude>
<exclude>@root@public/lib/xapi/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_contentbank_testsuite">
<directory suffix="_test.php">@root@public/contentbank/tests</directory>
<exclude>@root@public/contentbank/tests/classes</exclude>
<exclude>@root@public/contentbank/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_payment_testsuite">
<directory suffix="_test.php">@root@public/payment/tests</directory>
<exclude>@root@public/payment/tests/classes</exclude>
<exclude>@root@public/payment/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_reportbuilder_testsuite">
<directory suffix="_test.php">@root@public/reportbuilder/tests</directory>
<exclude>@root@public/reportbuilder/tests/classes</exclude>
<exclude>@root@public/reportbuilder/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_adminpresets_testsuite">
<directory suffix="_test.php">@root@public/admin/presets/tests</directory>
<exclude>@root@public/admin/presets/tests/classes</exclude>
<exclude>@root@public/admin/presets/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_admin_testsuite">
<directory suffix="_test.php">@root@public/admin/tests</directory>
<exclude>@root@public/admin/tests/classes</exclude>
<exclude>@root@public/admin/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_communication_testsuite">
<directory suffix="_test.php">@root@public/communication/tests</directory>
<exclude>@root@public/communication/tests/classes</exclude>
<exclude>@root@public/communication/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_ai_testsuite">
<directory suffix="_test.php">@root@public/ai/tests</directory>
<exclude>@root@public/ai/tests/classes</exclude>
<exclude>@root@public/ai/tests/fixtures</exclude>
</testsuite>
<testsuite name="core_sms_testsuite">
<directory suffix="_test.php">@root@public/sms/tests</directory>
<exclude>@root@public/sms/tests/classes</exclude>
<exclude>@root@public/sms/tests/fixtures</exclude>
</testsuite>
<!--Plugin suites: use admin/tool/phpunit/cli/util.php to build phpunit.xml from
phpunit.xml.dist with up-to-date list of plugins in current install-->
<!--@plugin_suites_start@-->
<!--@plugin_suites_end@-->
</testsuites>
<source>
<!--@coveragelist@-->
</source>
</phpunit>