diff --git a/core/modules/views/tests/src/Kernel/ViewsKernelTestBase.php b/core/modules/views/tests/src/Kernel/ViewsKernelTestBase.php
index f53309b..f149b7f 100644
--- a/core/modules/views/tests/src/Kernel/ViewsKernelTestBase.php
+++ b/core/modules/views/tests/src/Kernel/ViewsKernelTestBase.php
@@ -11,7 +11,7 @@
/**
* Defines a base class for Views kernel testing.
*/
-class ViewsKernelTestBase extends KernelTestBase {
+abstract class ViewsKernelTestBase extends KernelTestBase {
use ViewResultAssertionTrait;
diff --git a/core/phpunit.xml.dist b/core/phpunit.xml.dist
index 2b45c64..951bd55 100644
--- a/core/phpunit.xml.dist
+++ b/core/phpunit.xml.dist
@@ -28,48 +28,16 @@
- ./tests/Drupal/Tests
- ./modules/*/tests/src/Unit
- ../modules/*/tests/src/Unit
- ../profiles/*/tests/src/Unit
- ../sites/*/modules/*/tests/src/Unit
-
- ./vendor
-
- ./drush/tests
+ ./tests/TestSuites/UnitTestSuite.php
- ./tests/Drupal/KernelTests
- ./modules/*/tests/src/Kernel
- ../modules/*/tests/src/Kernel
- ../profiles/*/tests/src/Kernel
- ../sites/*/modules/*/tests/src/Kernel
-
- ./vendor
-
- ./drush/tests
+ ./tests/TestSuites/KernelTestSuite.php
- ./tests/Drupal/FunctionalTests
- ./modules/*/tests/src/Functional
- ../modules/*/tests/src/Functional
- ../profiles/*/tests/src/Functional
- ../sites/*/modules/*/tests/src/Functional
-
- ./vendor
-
- ./drush/tests
+ ./tests/TestSuites/FunctionalTestSuite.php
- ./tests/Drupal/FunctionalJavascriptTests
- ./modules/*/tests/src/FunctionalJavascript
- ../modules/*/tests/src/FunctionalJavascript
- ../profiles/*/tests/src/FunctionalJavascript
- ../sites/*/modules/*/tests/src/FunctionalJavascript
-
- ./vendor
-
- ./drush/tests
+ ./tests/TestSuites/FunctionalJavascriptTestSuite.php
diff --git a/core/tests/Drupal/Tests/Core/Render/RendererTestBase.php b/core/tests/Drupal/Tests/Core/Render/RendererTestBase.php
index 834d0a4..7c5e855 100644
--- a/core/tests/Drupal/Tests/Core/Render/RendererTestBase.php
+++ b/core/tests/Drupal/Tests/Core/Render/RendererTestBase.php
@@ -22,7 +22,7 @@
/**
* Base class for the actual unit tests testing \Drupal\Core\Render\Renderer.
*/
-class RendererTestBase extends UnitTestCase {
+abstract class RendererTestBase extends UnitTestCase {
/**
* The tested renderer.
diff --git a/core/tests/TestSuites/FunctionalJavascriptTestSuite.php b/core/tests/TestSuites/FunctionalJavascriptTestSuite.php
new file mode 100644
index 0000000..626be02
--- /dev/null
+++ b/core/tests/TestSuites/FunctionalJavascriptTestSuite.php
@@ -0,0 +1,27 @@
+addTestsBySuiteNamespace($root, 'FunctionalJavascript');
+
+ return $suite;
+ }
+
+}
diff --git a/core/tests/TestSuites/FunctionalTestSuite.php b/core/tests/TestSuites/FunctionalTestSuite.php
new file mode 100644
index 0000000..221a20d
--- /dev/null
+++ b/core/tests/TestSuites/FunctionalTestSuite.php
@@ -0,0 +1,27 @@
+addTestsBySuiteNamespace($root, 'Functional');
+
+ return $suite;
+ }
+
+}
diff --git a/core/tests/TestSuites/KernelTestSuite.php b/core/tests/TestSuites/KernelTestSuite.php
new file mode 100644
index 0000000..2625e2b
--- /dev/null
+++ b/core/tests/TestSuites/KernelTestSuite.php
@@ -0,0 +1,27 @@
+addTestsBySuiteNamespace($root, 'Kernel');
+
+ return $suite;
+ }
+
+}
diff --git a/core/tests/TestSuites/TestSuiteBase.php b/core/tests/TestSuites/TestSuiteBase.php
new file mode 100644
index 0000000..9044337
--- /dev/null
+++ b/core/tests/TestSuites/TestSuiteBase.php
@@ -0,0 +1,57 @@
+addTestFiles(TestDiscovery::scanDirectory("Drupal\\Tests\\", "$root/core/tests/Drupal/Tests"));
+ }
+ else {
+ $this->addTestFiles(TestDiscovery::scanDirectory("Drupal\\${suite_namespace}Tests\\", "$root/core/tests/Drupal/${suite_namespace}Tests"));
+ }
+
+ // Extensions' tests will always be in the namespace
+ // Drupal\Tests\$extension_name\$suite_namespace\ and be in the
+ // $extension_path/tests/src/$suite_namespace directory. Not all extensions
+ // will have all kinds of tests.
+ foreach (static::findExtensionDirectories() as $extension_name => $dir) {
+ $test_path = "$dir/tests/src/$suite_namespace";
+ if (is_dir($test_path)) {
+ $this->addTestFiles(TestDiscovery::scanDirectory("Drupal\\Tests\\$extension_name\\$suite_namespace\\", $test_path));
+ }
+ }
+ }
+
+}
diff --git a/core/tests/TestSuites/UnitTestSuite.php b/core/tests/TestSuites/UnitTestSuite.php
new file mode 100644
index 0000000..b05d455
--- /dev/null
+++ b/core/tests/TestSuites/UnitTestSuite.php
@@ -0,0 +1,27 @@
+addTestsBySuiteNamespace($root, 'Unit');
+
+ return $suite;
+ }
+
+}