diff --git a/lib/phpunit/classes/util.php b/lib/phpunit/classes/util.php
index c3f0cafd527..c6e9e44d9c6 100644
--- a/lib/phpunit/classes/util.php
+++ b/lib/phpunit/classes/util.php
@@ -524,6 +524,7 @@ class phpunit_util extends testing_util {
@dir@
@dir@/classes
+ @dir@/fixtures
EOF;
@@ -615,8 +616,9 @@ class phpunit_util extends testing_util {
$template = <<
- .
- ./classes
+ tests
+ tests/classes
+ tests/fixtures
EOT;
@@ -625,7 +627,7 @@ class phpunit_util extends testing_util {
.
- .
+ tests
EOT;
diff --git a/lib/tests/fixtures/fixtures_not_tested_test.php b/lib/tests/fixtures/fixtures_not_tested_test.php
new file mode 100644
index 00000000000..e2c805cd34a
--- /dev/null
+++ b/lib/tests/fixtures/fixtures_not_tested_test.php
@@ -0,0 +1,38 @@
+.
+
+namespace core\fixtures;
+
+/**
+ * Test to ensure that fixtures are excluded from phpunit configuration.
+ *
+ * @package core
+ * @category phpunit
+ * @copyright Andrew Lyons
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+final class fixtures_not_tested_test extends \advanced_testcase {
+ /**
+ * Ensure that test fixtures are not tested.
+ *
+ * This test deliberately fails, but it should never be included in a test run.
+ *
+ * If this test is failing, then something has broken the PHPUnit configuration.
+ */
+ public function test_fixture_are_not_included(): void {
+ $this->assertFalse(true);
+ }
+}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index de77041fcf2..c899720e4cc 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -36,47 +36,59 @@
lib/phpunit/tests
lib/phpunit/tests/classes
+ lib/phpunit/tests/fixtures
lib/testing/tests
lib/testing/tests/classes
+ lib/testing/tests/fixtures
lib/ddl/tests
lib/ddl/tests/classes
+ lib/ddl/tests/fixtures
lib/dml/tests
lib/dml/tests/classes
+ lib/dml/tests/fixtures
lib/tests
lib/tests/classes
+ lib/tests/fixtures
lib/external/tests
lib/external/tests/classes
+ lib/external/tests/fixtures
favourites/tests
favourites/tests/classes
+ favourites/tests/fixtures
lib/form/tests
lib/form/tests/classes
+ lib/form/tests/fixtures
lib/filestorage/tests
lib/filebrowser/tests
files/tests
lib/filestorage/tests/classes
+ lib/filestorage/tests/fixtures
lib/filebrowser/tests/classes
+ lib/filebrowser/tests/fixtures
files/tests/classes
+ files/tests/fixtures
filter/tests
filter/tests/classes
+ filter/tests/fixtures
admin/roles/tests
@@ -157,138 +169,172 @@
cache/tests
cache/tests/classes
+ cache/tests/fixtures
calendar/tests
calendar/tests/classes
+ calendar/tests/fixtures
enrol/tests
enrol/tests/classes
+ enrol/tests/fixtures
group/tests
group/tests/classes
+ group/tests/fixtures
message/tests
message/tests/classes
+ message/tests/fixtures
notes/tests
notes/tests/classes
+ notes/tests/fixtures
tag/tests
tag/tests/classes
+ tag/tests/fixtures
rating/tests
rating/tests/classes
+ rating/tests/fixtures
repository/tests
repository/tests/classes
+ repository/tests/fixtures
lib/userkey/tests
lib/userkey/tests/classes
+ lib/userkey/tests/fixtures
user/tests
user/tests/classes
+ user/tests/fixtures
webservice/tests
webservice/tests/classes
+ webservice/tests/fixtures
mnet/tests
mnet/tests/classes
+ mnet/tests/fixtures
completion/tests
completion/tests/classes
+ completion/tests/fixtures
comment/tests
comment/tests/classes
+ comment/tests/fixtures
search/tests
search/tests/classes
+ search/tests/fixtures
competency/tests
competency/tests/classes
+ competency/tests/fixtures
my/tests
my/tests/classes
+ my/tests/fixtures
auth/tests
auth/tests/classes
+ auth/tests/fixtures
blocks/tests
blocks/tests/classes
+ blocks/tests/fixtures
login/tests
login/tests/classes
+ login/tests/fixtures
plagiarism/tests
plagiarism/tests/classes
+ plagiarism/tests/fixtures
portfolio/tests
portfolio/tests/classes
+ portfolio/tests/fixtures
lib/editor/tests
lib/editor/tests/classes
+ lib/editor/tests/fixtures
rss/tests
rss/tests/classes
+ rss/tests/fixtures
lib/table/tests
lib/table/tests/classes
+ lib/table/tests/fixtures
h5p/tests
h5p/tests/classes
+ h5p/tests/fixtures
lib/xapi/tests
lib/xapi/tests/classes
+ lib/xapi/tests/fixtures
contentbank/tests
contentbank/tests/classes
+ contentbank/tests/fixtures
payment/tests
payment/tests/classes
+ payment/tests/fixtures
reportbuilder/tests
reportbuilder/tests/classes
+ reportbuilder/tests/fixtures
admin/presets/tests
admin/presets/tests/classes
+ admin/presets/tests/fixtures
admin/tests
admin/tests/classes
+ admin/tests/fixtures
communication/tests
communication/tests/classes
+ communication/tests/fixtures