mirror of
https://github.com/moodle/moodle.git
synced 2026-03-13 08:23:51 +08:00
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.
This commit is contained in:
384
phpunit.xml.dist
384
phpunit.xml.dist
@@ -2,7 +2,7 @@
|
||||
<phpunit
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd"
|
||||
bootstrap="public/lib/phpunit/bootstrap.php"
|
||||
bootstrap="@root@public/lib/phpunit/bootstrap.php"
|
||||
processIsolation="false"
|
||||
backupGlobals="false"
|
||||
cacheResult="false"
|
||||
@@ -38,315 +38,315 @@
|
||||
|
||||
<testsuites>
|
||||
<testsuite name="core_phpunit_testsuite">
|
||||
<directory suffix="_test.php">public/lib/phpunit/tests</directory>
|
||||
<exclude>public/lib/phpunit/tests/classes</exclude>
|
||||
<exclude>public/lib/phpunit/tests/fixtures</exclude>
|
||||
<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">public/lib/testing/tests</directory>
|
||||
<exclude>public/lib/testing/tests/classes</exclude>
|
||||
<exclude>public/lib/testing/tests/fixtures</exclude>
|
||||
<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">public/lib/ddl/tests</directory>
|
||||
<exclude>public/lib/ddl/tests/classes</exclude>
|
||||
<exclude>public/lib/ddl/tests/fixtures</exclude>
|
||||
<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">public/lib/dml/tests</directory>
|
||||
<exclude>public/lib/dml/tests/classes</exclude>
|
||||
<exclude>public/lib/dml/tests/fixtures</exclude>
|
||||
<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">public/lib/tests</directory>
|
||||
<exclude>public/lib/tests/classes</exclude>
|
||||
<exclude>public/lib/tests/fixtures</exclude>
|
||||
<!-- <directory suffix="_test.php">public/lib/ajax/tests</directory> -->
|
||||
<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">public/lib/external/tests</directory>
|
||||
<exclude>public/lib/external/tests/classes</exclude>
|
||||
<exclude>public/lib/external/tests/fixtures</exclude>
|
||||
<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">public/favourites/tests</directory>
|
||||
<exclude>public/favourites/tests/classes</exclude>
|
||||
<exclude>public/favourites/tests/fixtures</exclude>
|
||||
<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">public/lib/form/tests</directory>
|
||||
<exclude>public/lib/form/tests/classes</exclude>
|
||||
<exclude>public/lib/form/tests/fixtures</exclude>
|
||||
<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">public/lib/filestorage/tests</directory>
|
||||
<directory suffix="_test.php">public/lib/filebrowser/tests</directory>
|
||||
<directory suffix="_test.php">public/files/tests</directory>
|
||||
<exclude>public/lib/filestorage/tests/classes</exclude>
|
||||
<exclude>public/lib/filestorage/tests/fixtures</exclude>
|
||||
<exclude>public/lib/filebrowser/tests/classes</exclude>
|
||||
<exclude>public/lib/filebrowser/tests/fixtures</exclude>
|
||||
<exclude>public/files/tests/classes</exclude>
|
||||
<exclude>public/files/tests/fixtures</exclude>
|
||||
<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">public/filter/tests</directory>
|
||||
<exclude>public/filter/tests/classes</exclude>
|
||||
<exclude>public/filter/tests/fixtures</exclude>
|
||||
<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">public/admin/roles/tests</directory>
|
||||
<exclude>public/admin/roles/tests/classes</exclude>
|
||||
<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">public/cohort/tests</directory>
|
||||
<exclude>public/cohort/tests/classes</exclude>
|
||||
<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">public/lib/grade/tests</directory>
|
||||
<directory suffix="_test.php">public/grade/tests</directory>
|
||||
<directory suffix="_test.php">public/grade/grading/tests</directory>
|
||||
<exclude>public/lib/grade/tests/classes</exclude>
|
||||
<exclude>public/grade/tests/classes</exclude>
|
||||
<exclude>public/grade/grading/tests/classes</exclude>
|
||||
<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">public/analytics/tests</directory>
|
||||
<exclude>public/analytics/tests/classes</exclude>
|
||||
<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">public/availability/tests</directory>
|
||||
<exclude>public/availability/tests/classes</exclude>
|
||||
<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">public/backup/controller/tests</directory>
|
||||
<directory suffix="_test.php">public/backup/converter/moodle1/tests</directory>
|
||||
<directory suffix="_test.php">public/backup/moodle2/tests</directory>
|
||||
<directory suffix="_test.php">public/backup/tests</directory>
|
||||
<directory suffix="_test.php">public/backup/util</directory>
|
||||
<exclude>public/backup/controller/tests/classes</exclude>
|
||||
<exclude>public/backup/converter/moodle1/tests/classes</exclude>
|
||||
<exclude>public/backup/moodle2/tests/classes</exclude>
|
||||
<exclude>public/backup/tests/classes</exclude>
|
||||
<exclude>public/backup/util/classes</exclude>
|
||||
<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">public/badges/tests</directory>
|
||||
<exclude>public/badges/tests/classes</exclude>
|
||||
<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">public/blog/tests</directory>
|
||||
<exclude>public/blog/tests/classes</exclude>
|
||||
<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">public/customfield/tests</directory>
|
||||
<exclude>public/customfield/tests/classes</exclude>
|
||||
<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">public/iplookup/tests</directory>
|
||||
<exclude>public/iplookup/tests/classes</exclude>
|
||||
<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">public/course/tests</directory>
|
||||
<exclude>public/course/tests/classes</exclude>
|
||||
<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">public/course/format/tests</directory>
|
||||
<exclude>public/course/format/tests/classes</exclude>
|
||||
<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">public/privacy/tests</directory>
|
||||
<exclude>public/privacy/tests/classes</exclude>
|
||||
<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">public/question/engine/tests</directory>
|
||||
<directory suffix="_test.php">public/question/tests</directory>
|
||||
<directory suffix="_test.php">public/question/type/tests</directory>
|
||||
<directory suffix="_test.php">public/question/engine/upgrade/tests</directory>
|
||||
<exclude>public/question/engine/tests/classes</exclude>
|
||||
<exclude>public/question/tests/classes</exclude>
|
||||
<exclude>public/question/type/tests/classes</exclude>
|
||||
<exclude>public/question/engine/upgrade/tests/classes</exclude>
|
||||
<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">public/cache/tests</directory>
|
||||
<exclude>public/cache/tests/classes</exclude>
|
||||
<exclude>public/cache/tests/fixtures</exclude>
|
||||
<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">public/calendar/tests</directory>
|
||||
<exclude>public/calendar/tests/classes</exclude>
|
||||
<exclude>public/calendar/tests/fixtures</exclude>
|
||||
<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">public/enrol/tests</directory>
|
||||
<exclude>public/enrol/tests/classes</exclude>
|
||||
<exclude>public/enrol/tests/fixtures</exclude>
|
||||
<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">public/group/tests</directory>
|
||||
<exclude>public/group/tests/classes</exclude>
|
||||
<exclude>public/group/tests/fixtures</exclude>
|
||||
<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">public/message/tests</directory>
|
||||
<exclude>public/message/tests/classes</exclude>
|
||||
<exclude>public/message/tests/fixtures</exclude>
|
||||
<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">public/notes/tests</directory>
|
||||
<exclude>public/notes/tests/classes</exclude>
|
||||
<exclude>public/notes/tests/fixtures</exclude>
|
||||
<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">public/tag/tests</directory>
|
||||
<exclude>public/tag/tests/classes</exclude>
|
||||
<exclude>public/tag/tests/fixtures</exclude>
|
||||
<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">public/rating/tests</directory>
|
||||
<exclude>public/rating/tests/classes</exclude>
|
||||
<exclude>public/rating/tests/fixtures</exclude>
|
||||
<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">public/repository/tests</directory>
|
||||
<exclude>public/repository/tests/classes</exclude>
|
||||
<exclude>public/repository/tests/fixtures</exclude>
|
||||
<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">public/lib/userkey/tests</directory>
|
||||
<exclude>public/lib/userkey/tests/classes</exclude>
|
||||
<exclude>public/lib/userkey/tests/fixtures</exclude>
|
||||
<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">public/user/tests</directory>
|
||||
<exclude>public/user/tests/classes</exclude>
|
||||
<exclude>public/user/tests/fixtures</exclude>
|
||||
<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">public/webservice/tests</directory>
|
||||
<exclude>public/webservice/tests/classes</exclude>
|
||||
<exclude>public/webservice/tests/fixtures</exclude>
|
||||
<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">public/mnet/tests</directory>
|
||||
<exclude>public/mnet/tests/classes</exclude>
|
||||
<exclude>public/mnet/tests/fixtures</exclude>
|
||||
<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">public/completion/tests</directory>
|
||||
<exclude>public/completion/tests/classes</exclude>
|
||||
<exclude>public/completion/tests/fixtures</exclude>
|
||||
<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">public/comment/tests</directory>
|
||||
<exclude>public/comment/tests/classes</exclude>
|
||||
<exclude>public/comment/tests/fixtures</exclude>
|
||||
<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">public/search/tests</directory>
|
||||
<exclude>public/search/tests/classes</exclude>
|
||||
<exclude>public/search/tests/fixtures</exclude>
|
||||
<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">public/competency/tests</directory>
|
||||
<exclude>public/competency/tests/classes</exclude>
|
||||
<exclude>public/competency/tests/fixtures</exclude>
|
||||
<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">public/my/tests</directory>
|
||||
<exclude>public/my/tests/classes</exclude>
|
||||
<exclude>public/my/tests/fixtures</exclude>
|
||||
<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">public/auth/tests</directory>
|
||||
<exclude>public/auth/tests/classes</exclude>
|
||||
<exclude>public/auth/tests/fixtures</exclude>
|
||||
<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">public/blocks/tests</directory>
|
||||
<exclude>public/blocks/tests/classes</exclude>
|
||||
<exclude>public/blocks/tests/fixtures</exclude>
|
||||
<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">public/login/tests</directory>
|
||||
<exclude>public/login/tests/classes</exclude>
|
||||
<exclude>public/login/tests/fixtures</exclude>
|
||||
<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">public/plagiarism/tests</directory>
|
||||
<exclude>public/plagiarism/tests/classes</exclude>
|
||||
<exclude>public/plagiarism/tests/fixtures</exclude>
|
||||
<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">public/portfolio/tests</directory>
|
||||
<exclude>public/portfolio/tests/classes</exclude>
|
||||
<exclude>public/portfolio/tests/fixtures</exclude>
|
||||
<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">public/lib/editor/tests</directory>
|
||||
<exclude>public/lib/editor/tests/classes</exclude>
|
||||
<exclude>public/lib/editor/tests/fixtures</exclude>
|
||||
<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">public/rss/tests</directory>
|
||||
<exclude>public/rss/tests/classes</exclude>
|
||||
<exclude>public/rss/tests/fixtures</exclude>
|
||||
<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">public/lib/table/tests</directory>
|
||||
<exclude>public/lib/table/tests/classes</exclude>
|
||||
<exclude>public/lib/table/tests/fixtures</exclude>
|
||||
<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">public/h5p/tests</directory>
|
||||
<exclude>public/h5p/tests/classes</exclude>
|
||||
<exclude>public/h5p/tests/fixtures</exclude>
|
||||
<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">public/lib/xapi/tests</directory>
|
||||
<exclude>public/lib/xapi/tests/classes</exclude>
|
||||
<exclude>public/lib/xapi/tests/fixtures</exclude>
|
||||
<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">public/contentbank/tests</directory>
|
||||
<exclude>public/contentbank/tests/classes</exclude>
|
||||
<exclude>public/contentbank/tests/fixtures</exclude>
|
||||
<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">public/payment/tests</directory>
|
||||
<exclude>public/payment/tests/classes</exclude>
|
||||
<exclude>public/payment/tests/fixtures</exclude>
|
||||
<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">public/reportbuilder/tests</directory>
|
||||
<exclude>public/reportbuilder/tests/classes</exclude>
|
||||
<exclude>public/reportbuilder/tests/fixtures</exclude>
|
||||
<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">public/admin/presets/tests</directory>
|
||||
<exclude>public/admin/presets/tests/classes</exclude>
|
||||
<exclude>public/admin/presets/tests/fixtures</exclude>
|
||||
<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">public/admin/tests</directory>
|
||||
<exclude>public/admin/tests/classes</exclude>
|
||||
<exclude>public/admin/tests/fixtures</exclude>
|
||||
<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">public/communication/tests</directory>
|
||||
<exclude>public/communication/tests/classes</exclude>
|
||||
<exclude>public/communication/tests/fixtures</exclude>
|
||||
<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">public/ai/tests</directory>
|
||||
<exclude>public/ai/tests/classes</exclude>
|
||||
<exclude>public/ai/tests/fixtures</exclude>
|
||||
<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">public/sms/tests</directory>
|
||||
<exclude>public/sms/tests/classes</exclude>
|
||||
<exclude>public/sms/tests/fixtures</exclude>
|
||||
<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
|
||||
|
||||
@@ -44,6 +44,11 @@ putenv('BEHAT_CLI=0');
|
||||
require_once(__DIR__ . '/../../../../lib/clilib.php');
|
||||
require_once(__DIR__ . '/../../../../lib/behat/lib.php');
|
||||
|
||||
$autoload = __DIR__ . '/../../../../../vendor/autoload.php';
|
||||
if (file_exists($autoload)) {
|
||||
require_once($autoload);
|
||||
}
|
||||
|
||||
list($options, $unrecognized) = cli_get_params(
|
||||
array(
|
||||
'parallel' => 0,
|
||||
|
||||
@@ -94,7 +94,9 @@ if (!empty($options['help'])) {
|
||||
// The command will install composer if not present. Usually composer libraries are
|
||||
// installed when behat or phpunit are installed, but we do not want to force users
|
||||
// to create all phpunit or behat databases tables just to run a test scenario locally.
|
||||
if (!file_exists($CFG->dirroot . '/../vendor/autoload.php')) {
|
||||
require_once(dirname(__DIR__, 4) . '/autoload.php');
|
||||
|
||||
if (!class_exists(\Composer\Autoload\ClassLoader::class)) {
|
||||
// Force OPcache reset if used, we do not want any stale caches
|
||||
// when preparing test environment.
|
||||
if (function_exists('opcache_reset')) {
|
||||
|
||||
@@ -42,6 +42,11 @@ require_once(__DIR__.'/../../../../lib/clilib.php');
|
||||
require_once(__DIR__.'/../../../../lib/phpunit/bootstraplib.php');
|
||||
require_once(__DIR__.'/../../../../lib/testing/lib.php');
|
||||
|
||||
$autoload = __DIR__ . '/../../../../../vendor/autoload.php';
|
||||
if (file_exists($autoload)) {
|
||||
require_once($autoload);
|
||||
}
|
||||
|
||||
list($options, $unrecognized) = cli_get_params(
|
||||
[
|
||||
'help' => false,
|
||||
|
||||
@@ -57,10 +57,21 @@ list($options, $unrecognized) = cli_get_params(
|
||||
);
|
||||
|
||||
// Basic check to see if phpunit is installed.
|
||||
if (!file_exists(__DIR__.'/../../../../../vendor/phpunit/phpunit/composer.json') ||
|
||||
!file_exists(__DIR__.'/../../../../../vendor/bin/phpunit') ||
|
||||
!file_exists(__DIR__.'/../../../../../vendor/autoload.php')) {
|
||||
phpunit_bootstrap_error(PHPUNIT_EXITCODE_PHPUNITMISSING);
|
||||
|
||||
$autoload = __DIR__ . '/../../../../../vendor/autoload.php';
|
||||
if (file_exists($autoload)) {
|
||||
require_once($autoload);
|
||||
}
|
||||
|
||||
$requiredclasses = [
|
||||
\Composer\Autoload\ClassLoader::class,
|
||||
\PHPUnit\Runner\Version::class,
|
||||
];
|
||||
|
||||
foreach ($requiredclasses as $requiredclass) {
|
||||
if (!class_exists($requiredclass)) {
|
||||
phpunit_bootstrap_error(PHPUNIT_EXITCODE_PHPUNITMISSING);
|
||||
}
|
||||
}
|
||||
|
||||
if ($options['install'] || $options['drop']) {
|
||||
|
||||
@@ -40,6 +40,22 @@ class coverage_info {
|
||||
/** @var array The list of files relative to the plugin root to exclude from coverage generation. */
|
||||
protected $excludelistfiles = [];
|
||||
|
||||
/** @var string The base directory to use */
|
||||
protected string $basedir = "";
|
||||
|
||||
/**
|
||||
* Specify the base directory to use for coverage.
|
||||
*
|
||||
* @param string $basedir
|
||||
*/
|
||||
final public function set_basedir(string $basedir): void {
|
||||
if ($basedir === '') {
|
||||
$this->basedir = '';
|
||||
} else {
|
||||
$this->basedir = trim($basedir, '/') . "/";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the formatted XML list of files and folders to include.
|
||||
*
|
||||
@@ -67,11 +83,11 @@ class coverage_info {
|
||||
}
|
||||
|
||||
foreach (array_unique($includelistfolders) as $folder) {
|
||||
$coverages[] = html_writer::tag('directory', "{$plugindir}{$folder}", ['suffix' => '.php']);
|
||||
$coverages[] = html_writer::tag('directory', "{$this->basedir}{$plugindir}{$folder}", ['suffix' => '.php']);
|
||||
}
|
||||
|
||||
foreach (array_unique($includelistfiles) as $file) {
|
||||
$coverages[] = html_writer::tag('file', "{$plugindir}{$file}");
|
||||
$coverages[] = html_writer::tag('file', "{$this->basedir}{$plugindir}{$file}");
|
||||
}
|
||||
|
||||
return $coverages;
|
||||
@@ -91,11 +107,11 @@ class coverage_info {
|
||||
}
|
||||
|
||||
foreach ($this->excludelistfolders as $folder) {
|
||||
$coverages[] = html_writer::tag('directory', "{$plugindir}{$folder}", ['suffix' => '.php']);
|
||||
$coverages[] = html_writer::tag('directory', "{$this->basedir}{$plugindir}{$folder}", ['suffix' => '.php']);
|
||||
}
|
||||
|
||||
foreach ($this->excludelistfiles as $file) {
|
||||
$coverages[] = html_writer::tag('file', "{$plugindir}{$file}");
|
||||
$coverages[] = html_writer::tag('file', "{$this->basedir}{$plugindir}{$file}");
|
||||
}
|
||||
|
||||
return $coverages;
|
||||
|
||||
27
public/lib/classes/test/phpunit/exception/test_exception.php
Normal file
27
public/lib/classes/test/phpunit/exception/test_exception.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
namespace core\test\phpunit\exception;
|
||||
|
||||
/**
|
||||
* An exception thrown when an error is encountered in the setup, teardown, or other non-test parts of a unit test.
|
||||
*
|
||||
* @package core_testing
|
||||
* @copyright Andrew Lyons <andrew@nicols.co.uk>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class test_exception extends \core\exception\coding_exception {
|
||||
}
|
||||
@@ -313,7 +313,7 @@ class phpunit_util extends \core\test\testing_util {
|
||||
|
||||
if ($warnings) {
|
||||
$warnings = implode("\n", $warnings);
|
||||
throw new \core_phpunit\exception\test_exception($warnings);
|
||||
throw new \core\test\phpunit\exception\test_exception($warnings);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -362,6 +362,10 @@ class phpunit_util extends \core\test\testing_util {
|
||||
|
||||
// Refresh data in all tables, clear caches, etc.
|
||||
self::reset_all_data();
|
||||
|
||||
// Manually load the test_exception class here for legacy purposes.
|
||||
|
||||
require_once($CFG->libdir . '/phpunit/classes/exception/test_exception.php');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -524,11 +528,13 @@ class phpunit_util extends \core\test\testing_util {
|
||||
public static function build_config_file() {
|
||||
global $CFG;
|
||||
|
||||
$moodleroot = self::get_moodle_relative_to_root_package();
|
||||
|
||||
$template = <<<EOF
|
||||
<testsuite name="@component@_testsuite">
|
||||
<directory suffix="_test.php">public/@dir@</directory>
|
||||
<exclude>public/@dir@/classes</exclude>
|
||||
<exclude>public/@dir@/fixtures</exclude>
|
||||
<directory suffix="_test.php">@root@@dir@</directory>
|
||||
<exclude>@root@@dir@/classes</exclude>
|
||||
<exclude>@root@@dir@/fixtures</exclude>
|
||||
</testsuite>
|
||||
|
||||
EOF;
|
||||
@@ -549,10 +555,10 @@ class phpunit_util extends \core\test\testing_util {
|
||||
continue;
|
||||
}
|
||||
|
||||
$dir = substr($fulldir, strlen($CFG->dirroot) + 1);
|
||||
if ($coverageinfo = self::get_coverage_info($fulldir)) {
|
||||
$includelists = array_merge($includelists, $coverageinfo->get_includelists("public/{$dir}"));
|
||||
$excludelists = array_merge($excludelists, $coverageinfo->get_excludelists("public/{$dir}"));
|
||||
$dir = substr($fulldir, strlen($CFG->root) + 1);
|
||||
if ($coverageinfo = self::get_coverage_info($fulldir, $moodleroot)) {
|
||||
$includelists = array_merge($includelists, $coverageinfo->get_includelists($dir));
|
||||
$excludelists = array_merge($excludelists, $coverageinfo->get_excludelists($dir));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -567,18 +573,19 @@ class phpunit_util extends \core\test\testing_util {
|
||||
continue;
|
||||
}
|
||||
|
||||
$dir = substr($plugindir, strlen($CFG->dirroot) + 1);
|
||||
$dir = substr($plugindir, strlen($CFG->root) + 1);
|
||||
$testdir = "{$dir}/tests";
|
||||
$component = "{$type}_{$plug}";
|
||||
|
||||
$suite = str_replace('@component@', $component, $template);
|
||||
$suite = str_replace('@dir@', $testdir, $suite);
|
||||
$suite = str_replace('@root@', $moodleroot, $suite);
|
||||
|
||||
$suites .= $suite;
|
||||
|
||||
if ($coverageinfo = self::get_coverage_info($plugindir)) {
|
||||
$includelists = array_merge($includelists, $coverageinfo->get_includelists("public/{$dir}"));
|
||||
$excludelists = array_merge($excludelists, $coverageinfo->get_excludelists("public/{$dir}"));
|
||||
if ($coverageinfo = self::get_coverage_info($plugindir, $moodleroot)) {
|
||||
$includelists = array_merge($includelists, $coverageinfo->get_includelists($dir));
|
||||
$excludelists = array_merge($excludelists, $coverageinfo->get_excludelists($dir));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -594,18 +601,21 @@ class phpunit_util extends \core\test\testing_util {
|
||||
'<const name="PHPUNIT_SEQUENCE_START" value="' . $sequencestart . '"/>',
|
||||
$data
|
||||
);
|
||||
$data = str_replace('@root@', $moodleroot, $data);
|
||||
|
||||
$coverages = self::get_coverage_config($includelists, $excludelists);
|
||||
$data = preg_replace('| *<!--@coveragelist@-->|s', trim($coverages, "\n"), $data);
|
||||
|
||||
$result = false;
|
||||
if (is_writable($CFG->dirroot)) {
|
||||
if ($result = file_put_contents("$CFG->root/phpunit.xml", $data)) {
|
||||
testing_fix_file_permissions("$CFG->root/phpunit.xml");
|
||||
|
||||
$packageroot = self::get_package_root();
|
||||
if (is_writable($packageroot)) {
|
||||
if ($result = file_put_contents("$packageroot/phpunit.xml", $data)) {
|
||||
testing_fix_file_permissions("$packageroot/phpunit.xml");
|
||||
}
|
||||
}
|
||||
|
||||
return (bool)$result;
|
||||
return (bool) $result;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -642,9 +652,11 @@ class phpunit_util extends \core\test\testing_util {
|
||||
// Use the upstream file as source for the distributed configurations.
|
||||
$ftemplate = file_get_contents("$CFG->root/phpunit.xml.dist");
|
||||
$ftemplate = preg_replace('| *<!--All core suites.*</testsuites>|s', '<!--@component_suite@-->', $ftemplate);
|
||||
$ftemplate = str_replace('@root@', '', $ftemplate);
|
||||
|
||||
// Gets all the components with tests.
|
||||
$components = \tests_finder::get_components_with_tests('phpunit');
|
||||
$moodleroot = self::get_moodle_relative_to_root_package();
|
||||
|
||||
// Create the corresponding phpunit.xml file for each component.
|
||||
foreach ($components as $cname => $cpath) {
|
||||
@@ -655,7 +667,7 @@ class phpunit_util extends \core\test\testing_util {
|
||||
$fcontents = str_replace('<!--@component_suite@-->', $ctemplate, $ftemplate);
|
||||
|
||||
// Check for coverage configurations.
|
||||
if ($coverageinfo = self::get_coverage_info($cpath)) {
|
||||
if ($coverageinfo = self::get_coverage_info($cpath, $moodleroot)) {
|
||||
$coverages = self::get_coverage_config($coverageinfo->get_includelists(''), $coverageinfo->get_excludelists(''));
|
||||
} else {
|
||||
$coverages = $coveragedefault;
|
||||
@@ -1039,21 +1051,26 @@ class phpunit_util extends \core\test\testing_util {
|
||||
/**
|
||||
* Get the \core\test\phpunit\coverage_info for the specified plugin or subsystem directory.
|
||||
*
|
||||
* @param string $fulldir The directory to find the coverage info file in.
|
||||
* @return \core\test\phpunit\coverage_info
|
||||
* @param string $fulldir The directory to find the coverage info file in
|
||||
* @param string $moodleroot The base directory that Moodle is in relative to root package composer.json
|
||||
* @return coverage_info
|
||||
*/
|
||||
protected static function get_coverage_info(string $fulldir): \core\test\phpunit\coverage_info {
|
||||
protected static function get_coverage_info(
|
||||
string $fulldir,
|
||||
string $moodleroot,
|
||||
): coverage_info {
|
||||
$coverageconfig = "{$fulldir}/tests/coverage.php";
|
||||
if (file_exists($coverageconfig)) {
|
||||
$coverageinfo = require($coverageconfig);
|
||||
if (!$coverageinfo instanceof \core\test\phpunit\coverage_info) {
|
||||
throw new \coding_exception("{$coverageconfig} does not return a \core\test\phpunit\coverage_info");
|
||||
if (!$coverageinfo instanceof coverage_info) {
|
||||
throw new \core\exception\coding_exception("{$coverageconfig} does not return a \core\test\phpunit\coverage_info");
|
||||
}
|
||||
|
||||
return $coverageinfo;
|
||||
} else {
|
||||
$coverageinfo = new coverage_info();
|
||||
}
|
||||
|
||||
return new \core\test\phpunit\coverage_info();
|
||||
$coverageinfo->set_basedir($moodleroot);
|
||||
return $coverageinfo;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1072,6 +1089,15 @@ class phpunit_util extends \core\test\testing_util {
|
||||
protected static function get_framework() {
|
||||
return 'phpunit';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the path to the root of the package Moodle is installed in.
|
||||
*
|
||||
* @return bool|string
|
||||
*/
|
||||
protected static function get_package_root(): string {
|
||||
return realpath(\Composer\InstalledVersions::getRootPackage()['install_path']);
|
||||
}
|
||||
}
|
||||
|
||||
// Alias this class to the old name.
|
||||
|
||||
@@ -1020,6 +1020,42 @@ abstract class testing_util {
|
||||
|
||||
return $env;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the path to the Moodle root, relative to the root package.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function get_moodle_relative_to_root_package(): string {
|
||||
global $CFG;
|
||||
|
||||
$rootpackage = \Composer\InstalledVersions::getRootPackage();
|
||||
$rootpath = realpath(\Composer\InstalledVersions::getRootPackage()['install_path']);
|
||||
|
||||
$moodlepath = realpath($CFG->root);
|
||||
if ($rootpath === $moodlepath) {
|
||||
// Moodle is the root package.
|
||||
return '';
|
||||
}
|
||||
|
||||
// At the moment there is no way to get the name of the Moodle core package from the provided package.
|
||||
// So we need to get all installed moodle-core packages and check which one is installed.
|
||||
// It's only really possible for a single moodle-core package to be installed.
|
||||
$moodlecorepackages = \Composer\InstalledVersions::getInstalledPackagesByType('moodle-core');
|
||||
if (count($moodlecorepackages) !== 1) {
|
||||
throw new \core\exception\coding_exception('Unable to determine Moodle root relative to root package.');
|
||||
}
|
||||
$moodlecorepackage = reset($moodlecorepackages);
|
||||
if (\Composer\InstalledVersions::isInstalled($moodlecorepackage)) {
|
||||
$installpath = \Composer\InstalledVersions::getInstallPath($moodlecorepackage);
|
||||
if ($installpath !== null) {
|
||||
// Moodle core is installed as a composer package.
|
||||
return basename($installpath) . '/';
|
||||
}
|
||||
}
|
||||
|
||||
throw new \core\exception\coding_exception('Unable to determine Moodle root relative to root package.');
|
||||
}
|
||||
}
|
||||
|
||||
// Alias this class to the old name.
|
||||
|
||||
@@ -23,5 +23,5 @@ namespace core_phpunit\exception;
|
||||
* @copyright Andrew Lyons <andrew@nicols.co.uk>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class test_exception extends \core\exception\coding_exception {
|
||||
}
|
||||
|
||||
class_alias(\core\test\phpunit\exception\test_exception::class, test_exception::class);
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
namespace core;
|
||||
|
||||
use core_phpunit\exception\test_exception;
|
||||
use core\test\phpunit\exception\test_exception;
|
||||
|
||||
/**
|
||||
* Test advanced_testcase extra features.
|
||||
|
||||
@@ -233,7 +233,7 @@ STRING;
|
||||
global $DB;
|
||||
$DB->set_field('user', 'confirmed', 1, ['id' => -1]);
|
||||
|
||||
$this->expectException(\core_phpunit\exception\test_exception::class);
|
||||
$this->expectException(\core\test\phpunit\exception\test_exception::class);
|
||||
$this->expectExceptionMessage('Warning: unexpected database modification');
|
||||
phpunit_util::reset_all_data(true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user