diff --git a/composer.json b/composer.json
index 8a78ac5..bfc9c34 100644
--- a/composer.json
+++ b/composer.json
@@ -25,7 +25,8 @@
     "easyrdf/easyrdf": "0.8.*",
     "phpunit/phpunit": "4.1.*",
     "phpunit/phpunit-mock-objects": "dev-master#e60bb929c50ae4237aaf680a4f6773f4ee17f0a2",
-    "zendframework/zend-feed": "2.2.*"
+    "zendframework/zend-feed": "2.2.*",
+    "sun/staticreflection": "dev-master"
   },
   "autoload": {
     "psr-4": {
diff --git a/composer.lock b/composer.lock
index e99a1b9..7b2913f 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "d89a37ea785ca09523298ff00ade2eca",
+    "hash": "27fae8d4b8021fda1efcde568835e30f",
     "packages": [
         {
             "name": "doctrine/annotations",
@@ -1376,6 +1376,54 @@
             "time": "2014-03-07 15:35:33"
         },
         {
+            "name": "sun/staticreflection",
+            "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sun/staticreflection.git",
+                "reference": "a2c5b19f8692b245e7f4ec08b8def2f130ad0c3c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sun/staticreflection/zipball/a2c5b19f8692b245e7f4ec08b8def2f130ad0c3c",
+                "reference": "a2c5b19f8692b245e7f4ec08b8def2f130ad0c3c",
+                "shasum": ""
+            },
+            "require": {
+                "ext-reflection": "*",
+                "ext-tokenizer": "*",
+                "php": ">=5.4.2"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Sun\\StaticReflection\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Daniel F. Kudwien (sun)",
+                    "email": "sun@unleashedmind.com"
+                }
+            ],
+            "description": "Static PHP class code reflection for post-discovery scenarios.",
+            "keywords": [
+                "annotations",
+                "autoload",
+                "discovery",
+                "docblock",
+                "parser",
+                "phpdoc",
+                "reflection",
+                "token"
+            ],
+            "time": "2014-06-25 19:24:11"
+        },
+        {
             "name": "symfony-cmf/routing",
             "version": "1.1.0",
             "target-dir": "Symfony/Cmf/Component/Routing",
@@ -2393,12 +2441,8 @@
             "time": "2013-06-12 19:46:58"
         }
     ],
-    "packages-dev": [
-
-    ],
-    "aliases": [
-
-    ],
+    "packages-dev": [],
+    "aliases": [],
     "minimum-stability": "stable",
     "stability-flags": {
         "symfony/yaml": 20,
@@ -2406,12 +2450,11 @@
         "doctrine/annotations": 20,
         "kriswallsmith/assetic": 15,
         "symfony-cmf/routing": 15,
-        "phpunit/phpunit-mock-objects": 20
+        "phpunit/phpunit-mock-objects": 20,
+        "sun/staticreflection": 20
     },
     "platform": {
         "php": ">=5.4.2"
     },
-    "platform-dev": [
-
-    ]
+    "platform-dev": []
 }
diff --git a/core/modules/action/src/Tests/ActionUninstallTest.php b/core/modules/action/src/Tests/ActionUninstallTest.php
index d91b820..f43bc0c 100644
--- a/core/modules/action/src/Tests/ActionUninstallTest.php
+++ b/core/modules/action/src/Tests/ActionUninstallTest.php
@@ -10,8 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests action uninstallation.
+ * Tests that uninstalling actions does not remove other module's actions.
  *
+ * @group action
  * @see \Drupal\action\Plugin\views\field\BulkForm
  */
 class ActionUninstallTest extends WebTestBase {
@@ -23,14 +24,6 @@ class ActionUninstallTest extends WebTestBase {
    */
   public static $modules = array('views', 'action');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Uninstall action test',
-      'description' => 'Tests that uninstalling actions does not remove other module\'s actions.',
-      'group' => 'Action',
-    );
-  }
-
   /**
    * Tests Action uninstall.
    */
diff --git a/core/modules/action/src/Tests/BulkFormTest.php b/core/modules/action/src/Tests/BulkFormTest.php
index b31decb..024780b 100644
--- a/core/modules/action/src/Tests/BulkFormTest.php
+++ b/core/modules/action/src/Tests/BulkFormTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the views bulk form test.
  *
+ * @group action
  * @see \Drupal\action\Plugin\views\field\BulkForm
  */
 class BulkFormTest extends WebTestBase {
@@ -24,14 +25,6 @@ class BulkFormTest extends WebTestBase {
    */
   public static $modules = array('node', 'action_bulk_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Bulk form',
-      'description' => 'Tests the views bulk form test.',
-      'group' => 'Action',
-    );
-  }
-
   /**
    * Tests the bulk form.
    */
diff --git a/core/modules/action/src/Tests/ConfigurationTest.php b/core/modules/action/src/Tests/ConfigurationTest.php
index 97448ae..cfd35a5 100644
--- a/core/modules/action/src/Tests/ConfigurationTest.php
+++ b/core/modules/action/src/Tests/ConfigurationTest.php
@@ -11,7 +11,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Actions configuration.
+ * Tests UI CRUD configuration for complex actions.
+ *
+ * @group Action
+ * @requires module action
+ *
+ * @todo Remove the above @requires tag. Added for demo purposes only.
  */
 class ConfigurationTest extends WebTestBase {
 
@@ -22,14 +27,6 @@ class ConfigurationTest extends WebTestBase {
    */
   public static $modules = array('action');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Actions configuration',
-      'description' => 'Tests complex actions configuration by adding, editing, and deleting a complex action.',
-      'group' => 'Action',
-    );
-  }
-
   /**
    * Tests configuration of advanced actions through administration interface.
    */
diff --git a/core/modules/action/tests/src/Menu/ActionLocalTasksTest.php b/core/modules/action/tests/src/Menu/ActionLocalTasksTest.php
index 61844d2..9215139 100644
--- a/core/modules/action/tests/src/Menu/ActionLocalTasksTest.php
+++ b/core/modules/action/tests/src/Menu/ActionLocalTasksTest.php
@@ -10,21 +10,12 @@
 use Drupal\Tests\Core\Menu\LocalTaskIntegrationTest;
 
 /**
- * Tests existence of action local tasks.
+ * Tests action local tasks.
  *
- * @group Drupal
- * @group Action
+ * @group action
  */
 class ActionLocalTasksTest extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Action local tasks test',
-      'description' => 'Test action local tasks.',
-      'group' => 'Action',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array('action' => 'core/modules/action');
     parent::setUp();
diff --git a/core/modules/aggregator/src/Tests/AddFeedTest.php b/core/modules/aggregator/src/Tests/AddFeedTest.php
index 1543bae..61cb0af 100644
--- a/core/modules/aggregator/src/Tests/AddFeedTest.php
+++ b/core/modules/aggregator/src/Tests/AddFeedTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\aggregator\Tests;
 
 /**
- * Tests adding aggregator feeds.
+ * Add feed test.
+ *
+ * @group aggregator
  */
 class AddFeedTest extends AggregatorTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Add feed functionality',
-      'description' => 'Add feed test.',
-      'group' => 'Aggregator'
-    );
-  }
-
   /**
    * Creates and ensures that a feed is unique, checks source, and deletes feed.
    */
diff --git a/core/modules/aggregator/src/Tests/AggregatorConfigurationTest.php b/core/modules/aggregator/src/Tests/AggregatorConfigurationTest.php
index a3d9a44..45bed8b 100644
--- a/core/modules/aggregator/src/Tests/AggregatorConfigurationTest.php
+++ b/core/modules/aggregator/src/Tests/AggregatorConfigurationTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\aggregator\Tests;
 
 /**
- * Tests functionality of the configuration settings in the Aggregator module.
+ * Tests aggregator settings page.
+ *
+ * @group aggregator
  */
 class AggregatorConfigurationTest extends AggregatorTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Aggregator configuration',
-      'description' => 'Test aggregator settings page.',
-      'group' => 'Aggregator',
-    );
-  }
-
   /**
    * Tests the settings form to ensure the correct default values are used.
    */
diff --git a/core/modules/aggregator/src/Tests/AggregatorCronTest.php b/core/modules/aggregator/src/Tests/AggregatorCronTest.php
index d427b75..8a8ee7d 100644
--- a/core/modules/aggregator/src/Tests/AggregatorCronTest.php
+++ b/core/modules/aggregator/src/Tests/AggregatorCronTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\aggregator\Tests;
 
 /**
- * Tests functionality of the cron process in the Aggregator module.
+ * Update feeds on cron.
+ *
+ * @group aggregator
  */
 class AggregatorCronTest extends AggregatorTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Update on cron functionality',
-      'description' => 'Update feeds on cron.',
-      'group' => 'Aggregator'
-    );
-  }
-
   /**
    * Adds feeds and updates them via cron process.
    */
diff --git a/core/modules/aggregator/src/Tests/AggregatorRenderingTest.php b/core/modules/aggregator/src/Tests/AggregatorRenderingTest.php
index 161d215..8a4fb3e 100644
--- a/core/modules/aggregator/src/Tests/AggregatorRenderingTest.php
+++ b/core/modules/aggregator/src/Tests/AggregatorRenderingTest.php
@@ -10,7 +10,9 @@
 use Drupal\Component\Utility\String;
 
 /**
- * Tests rendering functionality in the Aggregator module.
+ * Tests display of aggregator items on the page.
+ *
+ * @group aggregator
  */
 class AggregatorRenderingTest extends AggregatorTestBase {
 
@@ -21,14 +23,6 @@ class AggregatorRenderingTest extends AggregatorTestBase {
    */
   public static $modules = array('block', 'test_page_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Checks display of aggregator items',
-      'description' => 'Checks display of aggregator items on the page.',
-      'group' => 'Aggregator'
-    );
-  }
-
   /**
    * Adds a feed block to the page and checks its links.
    */
diff --git a/core/modules/aggregator/src/Tests/DeleteFeedItemTest.php b/core/modules/aggregator/src/Tests/DeleteFeedItemTest.php
index 4034c57..d031f53 100644
--- a/core/modules/aggregator/src/Tests/DeleteFeedItemTest.php
+++ b/core/modules/aggregator/src/Tests/DeleteFeedItemTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\aggregator\Tests;
 
 /**
- * Tests functionality of removing a feed item in the Aggregator module.
+ * Delete feed items from a feed.
+ *
+ * @group aggregator
  */
 class DeleteFeedItemTest extends AggregatorTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Delete feed item functionality',
-      'description' => 'Delete feed items from a feed.',
-      'group' => 'Aggregator'
-    );
-  }
-
   /**
    * Tests running "delete items" from 'admin/config/services/aggregator' page.
    */
diff --git a/core/modules/aggregator/src/Tests/DeleteFeedTest.php b/core/modules/aggregator/src/Tests/DeleteFeedTest.php
index 69406d6..90cd5f1 100644
--- a/core/modules/aggregator/src/Tests/DeleteFeedTest.php
+++ b/core/modules/aggregator/src/Tests/DeleteFeedTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\aggregator\Tests;
 
 /**
- * Tests functionality for removing feeds in the Aggregator module.
+ * Delete feed test.
+ *
+ * @group aggregator
  */
 class DeleteFeedTest extends AggregatorTestBase {
 
@@ -19,14 +21,6 @@ class DeleteFeedTest extends AggregatorTestBase {
    */
   public static $modules = array('block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Delete feed functionality',
-      'description' => 'Delete feed test.',
-      'group' => 'Aggregator'
-    );
-  }
-
   /**
    * Deletes a feed and ensures that all of its services are deleted.
    */
diff --git a/core/modules/aggregator/src/Tests/FeedFetcherPluginTest.php b/core/modules/aggregator/src/Tests/FeedFetcherPluginTest.php
index 80db136..5a3a954 100644
--- a/core/modules/aggregator/src/Tests/FeedFetcherPluginTest.php
+++ b/core/modules/aggregator/src/Tests/FeedFetcherPluginTest.php
@@ -8,20 +8,13 @@
 namespace Drupal\aggregator\Tests;
 
 /**
- * Tests feed fetching in the Aggregator module.
+ * Tests the fetcher plugins functionality and discoverability.
  *
+ * @group aggregator
  * @see \Drupal\aggregator_test\Plugin\aggregator\fetcher\TestFetcher.
  */
 class FeedFetcherPluginTest extends AggregatorTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Feed fetcher plugins',
-      'description' => 'Test the fetcher plugins functionality and discoverability.',
-      'group' => 'Aggregator',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     // Enable test plugins.
diff --git a/core/modules/aggregator/src/Tests/FeedLanguageTest.php b/core/modules/aggregator/src/Tests/FeedLanguageTest.php
index d297abc..065cf0a 100644
--- a/core/modules/aggregator/src/Tests/FeedLanguageTest.php
+++ b/core/modules/aggregator/src/Tests/FeedLanguageTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests aggregator feeds in multiple languages.
+ *
+ * @group aggregator
  */
 class FeedLanguageTest extends AggregatorTestBase {
 
@@ -28,14 +30,6 @@ class FeedLanguageTest extends AggregatorTestBase {
    */
   protected $langcodes = array();
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Multilingual feeds',
-      'description' => 'Checks creating of feeds in multiple languages',
-      'group' => 'Aggregator',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/aggregator/src/Tests/FeedParserTest.php b/core/modules/aggregator/src/Tests/FeedParserTest.php
index 5d4199f..9ecccf6 100644
--- a/core/modules/aggregator/src/Tests/FeedParserTest.php
+++ b/core/modules/aggregator/src/Tests/FeedParserTest.php
@@ -10,17 +10,11 @@
 use Zend\Feed\Reader\Reader;
 
 /**
- * Tests feed parsing in the Aggregator module.
+ * Tests the built-in feed parser with valid feed samples.
+ *
+ * @group aggregator
  */
 class FeedParserTest extends AggregatorTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Feed parser functionality',
-      'description' => 'Test the built-in feed parser with valid feed samples.',
-      'group' => 'Aggregator',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Do not delete old aggregator items during these tests, since our sample
diff --git a/core/modules/aggregator/src/Tests/FeedProcessorPluginTest.php b/core/modules/aggregator/src/Tests/FeedProcessorPluginTest.php
index 28802f7..ad64b60 100644
--- a/core/modules/aggregator/src/Tests/FeedProcessorPluginTest.php
+++ b/core/modules/aggregator/src/Tests/FeedProcessorPluginTest.php
@@ -8,20 +8,13 @@
 namespace Drupal\aggregator\Tests;
 
 /**
- * Tests feed processing in the Aggregator module.
+ * Tests the processor plugins functionality and discoverability.
  *
+ * @group aggregator
  * @see \Drupal\aggregator_test\Plugin\aggregator\processor\TestProcessor.
  */
 class FeedProcessorPluginTest extends AggregatorTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Feed processor plugins',
-      'description' => 'Test the processor plugins functionality and discoverability.',
-      'group' => 'Aggregator',
-    );
-  }
-
   /**
    * Overrides \Drupal\simpletest\WebTestBase::setUp().
    */
diff --git a/core/modules/aggregator/src/Tests/ImportOpmlTest.php b/core/modules/aggregator/src/Tests/ImportOpmlTest.php
index 4f5fc9c..ced5e7d 100644
--- a/core/modules/aggregator/src/Tests/ImportOpmlTest.php
+++ b/core/modules/aggregator/src/Tests/ImportOpmlTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\aggregator\Tests;
 
 /**
- * Tests importing feeds from OPML functionality for the Aggregator module.
+ * Tests OPML import.
+ *
+ * @group aggregator
  */
 class ImportOpmlTest extends AggregatorTestBase {
 
@@ -19,14 +21,6 @@ class ImportOpmlTest extends AggregatorTestBase {
    */
   public static $modules = array('block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Import feeds from OPML functionality',
-      'description' => 'Test OPML import.',
-      'group' => 'Aggregator',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/aggregator/src/Tests/UpdateFeedItemTest.php b/core/modules/aggregator/src/Tests/UpdateFeedItemTest.php
index d53bdd1..3cc6ca2 100644
--- a/core/modules/aggregator/src/Tests/UpdateFeedItemTest.php
+++ b/core/modules/aggregator/src/Tests/UpdateFeedItemTest.php
@@ -9,17 +9,11 @@
 use Drupal\aggregator\Entity\Feed;
 
 /**
- * Tests functionality of updating a feed item in the Aggregator module.
+ * Update feed items from a feed.
+ *
+ * @group aggregator
  */
 class UpdateFeedItemTest extends AggregatorTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Update feed item functionality',
-      'description' => 'Update feed items from a feed.',
-      'group' => 'Aggregator'
-    );
-  }
-
   /**
    * Tests running "update items" from 'admin/config/services/aggregator' page.
    */
diff --git a/core/modules/aggregator/src/Tests/UpdateFeedTest.php b/core/modules/aggregator/src/Tests/UpdateFeedTest.php
index 4bd9bbf..fe3d45e 100644
--- a/core/modules/aggregator/src/Tests/UpdateFeedTest.php
+++ b/core/modules/aggregator/src/Tests/UpdateFeedTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\aggregator\Tests;
 
 /**
- * Tests functionality of updating the feed in the Aggregator module.
+ * Update feed test.
+ *
+ * @group aggregator
  */
 class UpdateFeedTest extends AggregatorTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Update feed functionality',
-      'description' => 'Update feed test.',
-      'group' => 'Aggregator'
-    );
-  }
-
   /**
    * Creates a feed and attempts to update it.
    */
diff --git a/core/modules/aggregator/src/Tests/Views/IntegrationTest.php b/core/modules/aggregator/src/Tests/Views/IntegrationTest.php
index bd8f17c..aada932 100644
--- a/core/modules/aggregator/src/Tests/Views/IntegrationTest.php
+++ b/core/modules/aggregator/src/Tests/Views/IntegrationTest.php
@@ -12,7 +12,9 @@
 use Drupal\views\Tests\ViewUnitTestBase;
 
 /**
- * Tests basic views integration of aggregator module.
+ * Tests basic integration of views data from the aggregator module.
+ *
+ * @group aggregator
  */
 class IntegrationTest extends ViewUnitTestBase {
 
@@ -44,14 +46,6 @@ class IntegrationTest extends ViewUnitTestBase {
    */
   protected $feedStorage;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Aggregator: Integration tests',
-      'description' => 'Tests basic integration of views data from the aggregator module.',
-      'group' => 'Views module integration',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/aggregator/tests/src/Menu/AggregatorLocalTasksTest.php b/core/modules/aggregator/tests/src/Menu/AggregatorLocalTasksTest.php
index 63caa74..947eea8 100644
--- a/core/modules/aggregator/tests/src/Menu/AggregatorLocalTasksTest.php
+++ b/core/modules/aggregator/tests/src/Menu/AggregatorLocalTasksTest.php
@@ -12,19 +12,10 @@
 /**
  * Tests existence of aggregator local tasks.
  *
- * @group Drupal
- * @group Aggregator
+ * @group aggregator
  */
 class AggregatorLocalTasksTest extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Aggregator local tasks test',
-      'description' => 'Test existence of aggregator local tasks.',
-      'group' => 'Aggregator',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array('aggregator' => 'core/modules/aggregator');
     parent::setUp();
diff --git a/core/modules/aggregator/tests/src/Plugin/AggregatorPluginSettingsBaseTest.php b/core/modules/aggregator/tests/src/Plugin/AggregatorPluginSettingsBaseTest.php
index 0f65e3b..b9390ff 100644
--- a/core/modules/aggregator/tests/src/Plugin/AggregatorPluginSettingsBaseTest.php
+++ b/core/modules/aggregator/tests/src/Plugin/AggregatorPluginSettingsBaseTest.php
@@ -11,10 +11,9 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests plugins settings on aggregator plugins.
+ * Tests settings configuration of individual aggregator plugins.
  *
- * @group Drupal
- * @group Aggregator
+ * @group aggregator
  */
 class AggregatorPluginSettingsBaseTest extends UnitTestCase {
 
@@ -39,14 +38,6 @@ class AggregatorPluginSettingsBaseTest extends UnitTestCase {
    */
   protected $managers;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Aggregator plugin settings tests',
-      'description' => 'Test settings configuration of individual aggregator plugins.',
-      'group' => 'Aggregator',
-    );
-  }
-
   public function setUp() {
     $this->configFactory = $this->getConfigFactoryStub(
       array(
diff --git a/core/modules/ban/src/Tests/IpAddressBlockingTest.php b/core/modules/ban/src/Tests/IpAddressBlockingTest.php
index 87d6463..0122ceb 100644
--- a/core/modules/ban/src/Tests/IpAddressBlockingTest.php
+++ b/core/modules/ban/src/Tests/IpAddressBlockingTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests IP address banning.
+ *
+ * @group ban
  */
 class IpAddressBlockingTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class IpAddressBlockingTest extends WebTestBase {
    */
   public static $modules = array('ban');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'IP address banning',
-      'description' => 'Test IP address banning.',
-      'group' => 'Ban',
-    );
-  }
-
   /**
    * Tests various user input to confirm correct validation and saving of data.
    */
diff --git a/core/modules/basic_auth/src/Tests/Authentication/BasicAuthTest.php b/core/modules/basic_auth/src/Tests/Authentication/BasicAuthTest.php
index 134ddb2..ad70e3e 100644
--- a/core/modules/basic_auth/src/Tests/Authentication/BasicAuthTest.php
+++ b/core/modules/basic_auth/src/Tests/Authentication/BasicAuthTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test for http basic authentication.
+ * Tests for BasicAuth authentication provider.
+ *
+ * @group basic_auth
  */
 class BasicAuthTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class BasicAuthTest extends WebTestBase {
    */
   public static $modules = array('basic_auth', 'router_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'BasicAuth authentication',
-      'description' => 'Tests for BasicAuth authentication provider.',
-      'group' => 'Authentication',
-    );
-  }
-
   /**
    * Test http basic authentication.
    */
diff --git a/core/modules/block/src/Tests/BlockAdminThemeTest.php b/core/modules/block/src/Tests/BlockAdminThemeTest.php
index d553440..20b892c 100644
--- a/core/modules/block/src/Tests/BlockAdminThemeTest.php
+++ b/core/modules/block/src/Tests/BlockAdminThemeTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the block system with admin themes.
+ *
+ * @group block
  */
 class BlockAdminThemeTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class BlockAdminThemeTest extends WebTestBase {
    */
   public static $modules = array('block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Administration theme',
-      'description' => 'Tests the block system with admin themes.',
-      'group' => 'Block',
-    );
-  }
-
   /**
    * Check for the accessibility of the admin theme on the  block admin page.
    */
diff --git a/core/modules/block/src/Tests/BlockCacheTest.php b/core/modules/block/src/Tests/BlockCacheTest.php
index 29e80da..6bd08fe 100644
--- a/core/modules/block/src/Tests/BlockCacheTest.php
+++ b/core/modules/block/src/Tests/BlockCacheTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test block caching.
+ * Tests block caching.
+ *
+ * @group block
  */
 class BlockCacheTest extends WebTestBase {
 
@@ -33,14 +35,6 @@ class BlockCacheTest extends WebTestBase {
    */
   protected $block;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block caching',
-      'description' => 'Test block caching.',
-      'group' => 'Block',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/block/src/Tests/BlockConfigSchemaTest.php b/core/modules/block/src/Tests/BlockConfigSchemaTest.php
index b845f04..55d0fa5 100644
--- a/core/modules/block/src/Tests/BlockConfigSchemaTest.php
+++ b/core/modules/block/src/Tests/BlockConfigSchemaTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the block config schema.
+ *
+ * @group block
  */
 class BlockConfigSchemaTest extends WebTestBase {
 
@@ -40,17 +42,6 @@ class BlockConfigSchemaTest extends WebTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Block config schema',
-      'description' => '',
-      'group' => 'Block',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/block/src/Tests/BlockHiddenRegionTest.php b/core/modules/block/src/Tests/BlockHiddenRegionTest.php
index 3fa85d6..3c7b238 100644
--- a/core/modules/block/src/Tests/BlockHiddenRegionTest.php
+++ b/core/modules/block/src/Tests/BlockHiddenRegionTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests that hidden regions do not inherit blocks when a theme is enabled.
+ * Tests that a newly enabled theme does not inherit blocks to its hidden
+ * regions.
+ *
+ * @group block
  */
 class BlockHiddenRegionTest extends WebTestBase {
 
@@ -26,14 +29,6 @@ class BlockHiddenRegionTest extends WebTestBase {
    */
   public static $modules = array('block', 'block_test', 'search');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Blocks not in hidden region',
-      'description' => 'Checks that a newly enabled theme does not inherit blocks to its hidden regions.',
-      'group' => 'Block',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/block/src/Tests/BlockHookOperationTest.php b/core/modules/block/src/Tests/BlockHookOperationTest.php
index 52120f1..8baf88a 100644
--- a/core/modules/block/src/Tests/BlockHookOperationTest.php
+++ b/core/modules/block/src/Tests/BlockHookOperationTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for the hook_entity_operations_alter().
+ * Implement hook entity operations alter.
+ *
+ * @group block
  */
 class BlockHookOperationTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class BlockHookOperationTest extends WebTestBase {
    */
   public static $modules = array('block', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block operations hook',
-      'description' => 'Implement hook entity operations alter.',
-      'group' => 'Block',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/block/src/Tests/BlockHtmlTest.php b/core/modules/block/src/Tests/BlockHtmlTest.php
index 63579b9..5e508e5 100644
--- a/core/modules/block/src/Tests/BlockHtmlTest.php
+++ b/core/modules/block/src/Tests/BlockHtmlTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests block HTML ID validity.
+ *
+ * @group block
  */
 class BlockHtmlTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class BlockHtmlTest extends WebTestBase {
    */
   public static $modules = array('block', 'block_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block HTML',
-      'description' => 'Tests block HTML validity.',
-      'group' => 'Block',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/block/src/Tests/BlockInterfaceTest.php b/core/modules/block/src/Tests/BlockInterfaceTest.php
index c69548e..77cdc7a 100644
--- a/core/modules/block/src/Tests/BlockInterfaceTest.php
+++ b/core/modules/block/src/Tests/BlockInterfaceTest.php
@@ -11,19 +11,13 @@
 use Drupal\block\BlockInterface;
 
 /**
- * Test BlockInterface methods to ensure no external dependencies exist.
+ * Tests that the block plugin can work properly without a supporting entity.
+ *
+ * @group block
  */
 class BlockInterfaceTest extends DrupalUnitTestBase {
   public static $modules = array('system', 'block', 'block_test', 'user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block Plugins Tests',
-      'description' => 'Tests that the block plugin can work properly without a supporting entity.',
-      'group' => 'Block',
-    );
-  }
-
   /**
    * Test configuration and subsequent form() and build() method calls.
    *
diff --git a/core/modules/block/src/Tests/BlockInvalidRegionTest.php b/core/modules/block/src/Tests/BlockInvalidRegionTest.php
index b44c4e2..ace9b01 100644
--- a/core/modules/block/src/Tests/BlockInvalidRegionTest.php
+++ b/core/modules/block/src/Tests/BlockInvalidRegionTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests that a block assigned to an invalid region triggers the warning.
+ * Tests that an active block assigned to a non-existing region triggers the
+ * warning message and is disabled.
+ *
+ * @group block
  */
 class BlockInvalidRegionTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class BlockInvalidRegionTest extends WebTestBase {
    */
   public static $modules = array('block', 'block_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Blocks in invalid regions',
-      'description' => 'Checks that an active block assigned to a non-existing region triggers the warning message and is disabled.',
-      'group' => 'Block',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Create an admin user.
diff --git a/core/modules/block/src/Tests/BlockLanguageCacheTest.php b/core/modules/block/src/Tests/BlockLanguageCacheTest.php
index 8fee2e2..f9e3bbc 100644
--- a/core/modules/block/src/Tests/BlockLanguageCacheTest.php
+++ b/core/modules/block/src/Tests/BlockLanguageCacheTest.php
@@ -12,7 +12,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests multilingual block definition caching.
+ * Tests display of menu blocks with multiple languages.
+ *
+ * @group block
  */
 class BlockLanguageCacheTest extends WebTestBase {
 
@@ -30,14 +32,6 @@ class BlockLanguageCacheTest extends WebTestBase {
    */
   protected $langcodes = array();
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Multilingual blocks',
-      'description' => 'Checks display of menu blocks with multiple languages.',
-      'group' => 'Block',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/block/src/Tests/BlockLanguageTest.php b/core/modules/block/src/Tests/BlockLanguageTest.php
index 7984345..527cbf8 100644
--- a/core/modules/block/src/Tests/BlockLanguageTest.php
+++ b/core/modules/block/src/Tests/BlockLanguageTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for the language list configuration forms.
+ * Tests if a block can be configure to be only visibile on a particular
+ * language.
+ *
+ * @group block
  */
 class BlockLanguageTest extends WebTestBase {
 
@@ -26,14 +29,6 @@ class BlockLanguageTest extends WebTestBase {
    */
   public static $modules = array('language', 'block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language block visibility',
-      'description' => 'Tests if a block can be configure to be only visibile on a particular language.',
-      'group' => 'Block',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/block/src/Tests/BlockPreprocessUnitTest.php b/core/modules/block/src/Tests/BlockPreprocessUnitTest.php
index e343019..d62bb56 100644
--- a/core/modules/block/src/Tests/BlockPreprocessUnitTest.php
+++ b/core/modules/block/src/Tests/BlockPreprocessUnitTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Web tests for template_preprocess_block().
+ * Tests the template_preprocess_block() function.
+ *
+ * @group block
  */
 class BlockPreprocessUnitTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class BlockPreprocessUnitTest extends WebTestBase {
    */
   public static $modules = array('block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block preprocess',
-      'description' => 'Test the template_preprocess_block() function.',
-      'group' => 'Block',
-    );
-  }
-
   /**
    * Tests block classes with template_preprocess_block().
    */
diff --git a/core/modules/block/src/Tests/BlockRenderOrderTest.php b/core/modules/block/src/Tests/BlockRenderOrderTest.php
index b6aa269..bf7d0e7 100644
--- a/core/modules/block/src/Tests/BlockRenderOrderTest.php
+++ b/core/modules/block/src/Tests/BlockRenderOrderTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests block HTML ID validity.
+ * Tests blocks are being rendered in order by weight.
+ *
+ * @group block
  */
 class BlockRenderOrderTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class BlockRenderOrderTest extends WebTestBase {
    */
   public static $modules = array('node', 'block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block Render Order',
-      'description' => 'Test blocks are being rendered in order by weight.',
-      'group' => 'Block',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Create a test user.
diff --git a/core/modules/block/src/Tests/BlockStorageUnitTest.php b/core/modules/block/src/Tests/BlockStorageUnitTest.php
index 0b26399..b063051 100644
--- a/core/modules/block/src/Tests/BlockStorageUnitTest.php
+++ b/core/modules/block/src/Tests/BlockStorageUnitTest.php
@@ -16,6 +16,8 @@
 
 /**
  * Tests the storage of blocks.
+ *
+ * @group block
  */
 class BlockStorageUnitTest extends DrupalUnitTestBase {
 
@@ -33,14 +35,6 @@ class BlockStorageUnitTest extends DrupalUnitTestBase {
    */
   protected $controller;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block storage',
-      'description' => 'Tests the storage of blocks.',
-      'group' => 'Block'
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/block/src/Tests/BlockSystemBrandingTest.php b/core/modules/block/src/Tests/BlockSystemBrandingTest.php
index 192d8fc..702d23a 100644
--- a/core/modules/block/src/Tests/BlockSystemBrandingTest.php
+++ b/core/modules/block/src/Tests/BlockSystemBrandingTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\block\Tests;
 
 /**
- * Provides testing for the branding block functionality.
+ * Tests branding block display.
+ *
+ * @group block
  */
 class BlockSystemBrandingTest extends BlockTestBase {
 
@@ -22,17 +24,6 @@ class BlockSystemBrandingTest extends BlockTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'System Branding Block',
-      'description' => 'Tests branding block display.',
-      'group' => 'Block',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     // Set a site slogan.
diff --git a/core/modules/block/src/Tests/BlockTemplateSuggestionsUnitTest.php b/core/modules/block/src/Tests/BlockTemplateSuggestionsUnitTest.php
index a3f77b4..7cc965f 100644
--- a/core/modules/block/src/Tests/BlockTemplateSuggestionsUnitTest.php
+++ b/core/modules/block/src/Tests/BlockTemplateSuggestionsUnitTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Unit tests for block_theme_suggestions_block().
+ * Tests the block_theme_suggestions_block() function.
+ *
+ * @group block
  */
 class BlockTemplateSuggestionsUnitTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class BlockTemplateSuggestionsUnitTest extends WebTestBase {
    */
   public static $modules = array('block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block template suggestions',
-      'description' => 'Test the block_theme_suggestions_block() function.',
-      'group' => 'Block',
-    );
-  }
-
   /**
    * Tests template suggestions from block_theme_suggestions_block().
    */
diff --git a/core/modules/block/src/Tests/BlockTest.php b/core/modules/block/src/Tests/BlockTest.php
index fde4c47..8f04738 100644
--- a/core/modules/block/src/Tests/BlockTest.php
+++ b/core/modules/block/src/Tests/BlockTest.php
@@ -12,18 +12,12 @@
 use Drupal\Component\Utility\String;
 
 /**
- * Provides testing for basic block module functionality.
+ * Tests basic block functionality.
+ *
+ * @group block
  */
 class BlockTest extends BlockTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block functionality',
-      'description' => 'Tests basic block functionality.',
-      'group' => 'Block',
-    );
-  }
-
   /**
    * Tests block visibility.
    */
diff --git a/core/modules/block/src/Tests/BlockTitleXSSTest.php b/core/modules/block/src/Tests/BlockTitleXSSTest.php
index f185f58..c295857 100644
--- a/core/modules/block/src/Tests/BlockTitleXSSTest.php
+++ b/core/modules/block/src/Tests/BlockTitleXSSTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests block XSS in title.
+ *
+ * @group block
  */
 class BlockTitleXSSTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class BlockTitleXSSTest extends WebTestBase {
    */
   public static $modules = array('block', 'block_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block XSS Title',
-      'description' => 'Test block XSS in title.',
-      'group' => 'Block',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/block/src/Tests/BlockUiTest.php b/core/modules/block/src/Tests/BlockUiTest.php
index 5c2dbfa..d2408da 100644
--- a/core/modules/block/src/Tests/BlockUiTest.php
+++ b/core/modules/block/src/Tests/BlockUiTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the block configuration UI.
+ * Tests that the block configuration UI exists and stores data correctly.
+ *
+ * @group block
  */
 class BlockUiTest extends WebTestBase {
 
@@ -42,14 +44,6 @@ class BlockUiTest extends WebTestBase {
    */
   protected $adminUser;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block UI',
-      'description' => 'Checks that the block configuration UI exists and stores data correctly.',
-      'group' => 'Block',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Create and log in an administrative user.
diff --git a/core/modules/block/src/Tests/BlockViewBuilderTest.php b/core/modules/block/src/Tests/BlockViewBuilderTest.php
index fa2d94e..7c1dd55 100644
--- a/core/modules/block/src/Tests/BlockViewBuilderTest.php
+++ b/core/modules/block/src/Tests/BlockViewBuilderTest.php
@@ -15,6 +15,8 @@
 
 /**
  * Tests the block view builder.
+ *
+ * @group block
  */
 class BlockViewBuilderTest extends DrupalUnitTestBase {
 
@@ -42,17 +44,6 @@ class BlockViewBuilderTest extends DrupalUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Block rendering',
-      'description' => 'Tests the block view builder.',
-      'group' => 'Block',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/block/src/Tests/NewDefaultThemeBlocksTest.php b/core/modules/block/src/Tests/NewDefaultThemeBlocksTest.php
index c544960..cc4f911 100644
--- a/core/modules/block/src/Tests/NewDefaultThemeBlocksTest.php
+++ b/core/modules/block/src/Tests/NewDefaultThemeBlocksTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test blocks correctly initialized when picking a new default theme.
+ * Tests that the new default theme gets blocks.
+ *
+ * @group block
  */
 class NewDefaultThemeBlocksTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class NewDefaultThemeBlocksTest extends WebTestBase {
    */
   public static $modules = array('block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'New default theme blocks',
-      'description' => 'Checks that the new default theme gets blocks.',
-      'group' => 'Block',
-    );
-  }
-
   /**
    * Check the enabled Bartik blocks are correctly copied over.
    */
diff --git a/core/modules/block/src/Tests/NonDefaultBlockAdminTest.php b/core/modules/block/src/Tests/NonDefaultBlockAdminTest.php
index 0048ed2..f7ffd37 100644
--- a/core/modules/block/src/Tests/NonDefaultBlockAdminTest.php
+++ b/core/modules/block/src/Tests/NonDefaultBlockAdminTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the block administration page for a non-default theme.
+ *
+ * @group block
  */
 class NonDefaultBlockAdminTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class NonDefaultBlockAdminTest extends WebTestBase {
    */
   public static $modules = array('block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Non default theme admin',
-      'description' => 'Check the administer page for non default theme.',
-      'group' => 'Block',
-    );
-  }
-
   /**
    * Test non-default theme admin.
    */
diff --git a/core/modules/block/src/Tests/Views/DisplayBlockTest.php b/core/modules/block/src/Tests/Views/DisplayBlockTest.php
index 2037a02..47d9a32 100644
--- a/core/modules/block/src/Tests/Views/DisplayBlockTest.php
+++ b/core/modules/block/src/Tests/Views/DisplayBlockTest.php
@@ -15,8 +15,9 @@
 use Drupal\Core\Template\Attribute;
 
 /**
- * Defines a test for block display.
+ * Tests the block display plugin.
  *
+ * @group block
  * @see \Drupal\block\Plugin\views\display\Block
  */
 class DisplayBlockTest extends ViewTestBase {
@@ -35,14 +36,6 @@ class DisplayBlockTest extends ViewTestBase {
    */
   public static $testViews = array('test_view_block', 'test_view_block2');
 
-  public static function getInfo() {
-    return array(
-      'name' => ' Display: Block',
-      'description' => 'Tests the block display plugin.',
-      'group' => 'Views module integration',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/block/tests/src/BlockBaseTest.php b/core/modules/block/tests/src/BlockBaseTest.php
index 575a6fb..7d9b31e 100644
--- a/core/modules/block/tests/src/BlockBaseTest.php
+++ b/core/modules/block/tests/src/BlockBaseTest.php
@@ -12,20 +12,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the base block plugin.
- *
- * @see \Drupal\block\BlockBase
+ * @coversDefaultClass \Drupal\block\BlockBase
+ * @group block
  */
 class BlockBaseTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Base plugin',
-      'description' => 'Tests the base block plugin.',
-      'group' => 'Block',
-    );
-  }
-
   /**
    * Tests the machine name suggestion.
    *
diff --git a/core/modules/block/tests/src/BlockConfigEntityUnitTest.php b/core/modules/block/tests/src/BlockConfigEntityUnitTest.php
index 76b9a30..e3fd154 100644
--- a/core/modules/block/tests/src/BlockConfigEntityUnitTest.php
+++ b/core/modules/block/tests/src/BlockConfigEntityUnitTest.php
@@ -13,9 +13,7 @@
 
 /**
  * @coversDefaultClass \Drupal\block\Entity\Block
- *
- * @group Drupal
- * @group Config
+ * @group block
  */
 class BlockConfigEntityUnitTest extends UnitTestCase {
 
@@ -50,17 +48,6 @@ class BlockConfigEntityUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\block\Entity\Block unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityTypeId = $this->randomName();
 
diff --git a/core/modules/block/tests/src/BlockFormTest.php b/core/modules/block/tests/src/BlockFormTest.php
index 698baa2..3c40a83 100644
--- a/core/modules/block/tests/src/BlockFormTest.php
+++ b/core/modules/block/tests/src/BlockFormTest.php
@@ -11,20 +11,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the block form.
- *
- * @see \Drupal\block\BlockForm
+ * @coversDefaultClass \Drupal\block\BlockForm
+ * @group block
  */
 class BlockFormTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block form',
-      'description' => 'Tests the block form.',
-      'group' => 'Block',
-    );
-  }
-
   /**
    * Tests the unique machine name generator.
    *
diff --git a/core/modules/block/tests/src/CategoryAutocompleteTest.php b/core/modules/block/tests/src/CategoryAutocompleteTest.php
index 26bd6b9..1652316 100644
--- a/core/modules/block/tests/src/CategoryAutocompleteTest.php
+++ b/core/modules/block/tests/src/CategoryAutocompleteTest.php
@@ -13,11 +13,8 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the block category autocomplete.
- *
- * @group Drupal
- *
- * @see \Drupal\block\Controller\CategoryAutocompleteController
+ * @coversDefaultClass \Drupal\block\Controller\CategoryAutocompleteController
+ * @group block
  */
 class CategoryAutocompleteTest extends UnitTestCase {
 
@@ -28,14 +25,6 @@ class CategoryAutocompleteTest extends UnitTestCase {
    */
   protected $autocompleteController;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block category autocomplete',
-      'description' => 'Tests the block category autocomplete.',
-      'group' => 'Block',
-    );
-  }
-
   public function setUp() {
     $block_manager = $this->getMock('Drupal\block\BlockManagerInterface');
     $block_manager->expects($this->any())
diff --git a/core/modules/block/tests/src/Menu/BlockLocalTasksTest.php b/core/modules/block/tests/src/Menu/BlockLocalTasksTest.php
index bf7a3e4..bb997fa 100644
--- a/core/modules/block/tests/src/Menu/BlockLocalTasksTest.php
+++ b/core/modules/block/tests/src/Menu/BlockLocalTasksTest.php
@@ -11,21 +11,12 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 /**
- * Tests existence of block local tasks.
+ * Tests block local tasks.
  *
- * @group Drupal
- * @group Block
+ * @group block
  */
 class BlockLocalTasksTest extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block local tasks test',
-      'description' => 'Test block local tasks.',
-      'group' => 'Block',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array('block' => 'core/modules/block');
     parent::setUp();
diff --git a/core/modules/block/tests/src/Plugin/views/display/BlockTest.php b/core/modules/block/tests/src/Plugin/views/display/BlockTest.php
index 765cc57..7b83990 100644
--- a/core/modules/block/tests/src/Plugin/views/display/BlockTest.php
+++ b/core/modules/block/tests/src/Plugin/views/display/BlockTest.php
@@ -10,9 +10,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the block display plugin.
- *
- * @see \Drupal\block\Plugin\views\display\Block
+ * @coversDefaultClass \Drupal\block\Plugin\views\display\Block
+ * @group block
  */
 class BlockTest extends UnitTestCase {
 
@@ -37,14 +36,6 @@ class BlockTest extends UnitTestCase {
    */
   protected $blockDisplay;
 
-  public static function getInfo() {
-    return array(
-      'name' => ' Views: Display Block',
-      'description' => 'Tests the block display plugin.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/block_content/src/Tests/BlockContentCacheTagsTest.php b/core/modules/block_content/src/Tests/BlockContentCacheTagsTest.php
index 52c3286..cc7ae4a 100644
--- a/core/modules/block_content/src/Tests/BlockContentCacheTagsTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentCacheTagsTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the Custom Block entity's cache tags.
+ *
+ * @group block_content
  */
 class BlockContentCacheTagsTest extends EntityCacheTagsTestBase {
 
@@ -23,13 +25,6 @@ class BlockContentCacheTagsTest extends EntityCacheTagsTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return parent::generateStandardizedInfo('Custom Block', 'Custom Block');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function createEntity() {
     // Create a "Llama" custom block.
     $block_content = entity_create('block_content', array(
diff --git a/core/modules/block_content/src/Tests/BlockContentCreationTest.php b/core/modules/block_content/src/Tests/BlockContentCreationTest.php
index dd98507..9b3d914 100644
--- a/core/modules/block_content/src/Tests/BlockContentCreationTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentCreationTest.php
@@ -11,7 +11,9 @@
 use Drupal\block_content\Entity\BlockContent;
 
 /**
- * Tests creating and saving a block.
+ * Create a block and test saving it.
+ *
+ * @group block_content
  */
 class BlockContentCreationTest extends BlockContentTestBase {
 
@@ -25,17 +27,6 @@ class BlockContentCreationTest extends BlockContentTestBase {
   public static $modules = array('block_content_test', 'dblog');
 
   /**
-   * Declares test information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom Block creation',
-      'description' => 'Create a block and test saving it.',
-      'group' => 'Custom Block',
-    );
-  }
-
-  /**
    * Sets the test up.
    */
   protected function setUp() {
diff --git a/core/modules/block_content/src/Tests/BlockContentFieldTest.php b/core/modules/block_content/src/Tests/BlockContentFieldTest.php
index 65c08c5..094d147 100644
--- a/core/modules/block_content/src/Tests/BlockContentFieldTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentFieldTest.php
@@ -8,8 +8,9 @@
 namespace Drupal\block_content\Tests;
 
 /**
- * Tests the block edit functionality.
+ * Tests block fieldability.
  *
+ * @group block_content
  * @todo Consider removing this test when https://drupal.org/node/1822000 is
  * fixed.
  */
@@ -45,17 +46,6 @@ class BlockContentFieldTest extends BlockContentTestBase {
 
 
   /**
-   * Declares test information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom Block field test',
-      'description' => 'Test block fieldability.',
-      'group' => 'Custom Block',
-    );
-  }
-
-  /**
    * Checks block edit functionality.
    */
   public function testBlockFields() {
diff --git a/core/modules/block_content/src/Tests/BlockContentListTest.php b/core/modules/block_content/src/Tests/BlockContentListTest.php
index 157591a..b956147 100644
--- a/core/modules/block_content/src/Tests/BlockContentListTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentListTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the listing of custom blocks.
  *
+ * @group block_content
  * @see \Drupal\block\BlockContentListBuilder
  */
 class BlockContentListTest extends WebTestBase {
@@ -23,14 +24,6 @@ class BlockContentListTest extends WebTestBase {
    */
   public static $modules = array('block', 'block_content', 'config_translation');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom Block listing',
-      'description' => 'Tests the listing of custom blocks.',
-      'group' => 'Custom Block',
-    );
-  }
-
   /**
    * Tests the custom block listing page.
    */
diff --git a/core/modules/block_content/src/Tests/BlockContentPageViewTest.php b/core/modules/block_content/src/Tests/BlockContentPageViewTest.php
index b8edb11..9d57528 100644
--- a/core/modules/block_content/src/Tests/BlockContentPageViewTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentPageViewTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\block_content\Tests;
 
 /**
- * Tests the block edit functionality.
+ * Create a block and test block access by attempting to view the block.
+ *
+ * @group block_content
  */
 class BlockContentPageViewTest extends BlockContentTestBase {
 
@@ -20,17 +22,6 @@ class BlockContentPageViewTest extends BlockContentTestBase {
   public static $modules = array('block', 'block_content', 'block_content_test');
 
   /**
-   * Declares test information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom Block page view',
-      'description' => 'Create a block and test block access by attempting to view the block.',
-      'group' => 'Custom Block',
-    );
-  }
-
-  /**
    * Checks block edit functionality.
    */
   public function testPageEdit() {
diff --git a/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php b/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php
index 0de498f..745a2d3 100644
--- a/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\block_content\Tests;
 
 /**
- * Tests the block revision functionality.
+ * Create a block with revisions.
+ *
+ * @group block_content
  */
 class BlockContentRevisionsTest extends BlockContentTestBase {
 
@@ -25,17 +27,6 @@ class BlockContentRevisionsTest extends BlockContentTestBase {
   protected $revisionLogs;
 
   /**
-   * Declares test information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom Block revisions',
-      'description' => 'Create a block with revisions.',
-      'group' => 'Custom Block',
-    );
-  }
-
-  /**
    * Sets the test up.
    */
   protected function setUp() {
diff --git a/core/modules/block_content/src/Tests/BlockContentSaveTest.php b/core/modules/block_content/src/Tests/BlockContentSaveTest.php
index 9c1b984..4e8b687 100644
--- a/core/modules/block_content/src/Tests/BlockContentSaveTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentSaveTest.php
@@ -11,7 +11,9 @@
 use Drupal\custom_block\Entity\CustomBlock;
 
 /**
- * Tests block save related functionality.
+ * Tests $block_content->save() for saving content.
+ *
+ * @group block_content
  */
 class BlockContentSaveTest extends BlockContentTestBase {
 
@@ -23,17 +25,6 @@ class BlockContentSaveTest extends BlockContentTestBase {
   public static $modules = array('block_content_test');
 
   /**
-   * Declares test information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom Block save',
-      'description' => 'Test $block_content->save() for saving content.',
-      'group' => 'Custom Block',
-    );
-  }
-
-  /**
    * Sets the test up.
    */
   protected function setUp() {
diff --git a/core/modules/block_content/src/Tests/BlockContentTranslationUITest.php b/core/modules/block_content/src/Tests/BlockContentTranslationUITest.php
index 35cf5ec..006b710 100644
--- a/core/modules/block_content/src/Tests/BlockContentTranslationUITest.php
+++ b/core/modules/block_content/src/Tests/BlockContentTranslationUITest.php
@@ -11,7 +11,9 @@
 use Drupal\block_content\Entity\BlockContent;
 
 /**
- * Tests the Custom Block Translation UI.
+ * Tests the node translation UI.
+ *
+ * @group block_content
  */
 class BlockContentTranslationUITest extends ContentTranslationUITest {
 
@@ -34,17 +36,6 @@ class BlockContentTranslationUITest extends ContentTranslationUITest {
   );
 
   /**
-   * Declares test information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom Block translation UI',
-      'description' => 'Tests the node translation UI.',
-      'group' => 'Custom Block',
-    );
-  }
-
-  /**
    * Overrides \Drupal\simpletest\WebTestBase::setUp().
    */
   public function setUp() {
diff --git a/core/modules/block_content/src/Tests/BlockContentTypeTest.php b/core/modules/block_content/src/Tests/BlockContentTypeTest.php
index fc20f0c..887ba18 100644
--- a/core/modules/block_content/src/Tests/BlockContentTypeTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentTypeTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\block_content\Tests;
 
 /**
- * Tests related to custom block types.
+ * Ensures that custom block type functions work correctly.
+ *
+ * @group block_content
  */
 class BlockContentTypeTest extends BlockContentTestBase {
 
@@ -30,17 +32,6 @@ class BlockContentTypeTest extends BlockContentTestBase {
   );
 
   /**
-   * Declares test information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom Block types',
-      'description' => 'Ensures that custom block type functions work correctly.',
-      'group' => 'Custom Block',
-    );
-  }
-
-  /**
    * Tests creating a block type programmatically and via a form.
    */
   public function testBlockContentTypeCreation() {
diff --git a/core/modules/block_content/src/Tests/PageEditTest.php b/core/modules/block_content/src/Tests/PageEditTest.php
index bc928dc..2bbd9db 100644
--- a/core/modules/block_content/src/Tests/PageEditTest.php
+++ b/core/modules/block_content/src/Tests/PageEditTest.php
@@ -8,22 +8,13 @@
 namespace Drupal\block_content\Tests;
 
 /**
- * Tests the block edit functionality.
+ * Create a block and test block edit functionality.
+ *
+ * @group block_content
  */
 class PageEditTest extends BlockContentTestBase {
 
   /**
-   * Declares test information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom Block edit',
-      'description' => 'Create a block and test block edit functionality.',
-      'group' => 'Custom Block',
-    );
-  }
-
-  /**
    * Checks block edit functionality.
    */
   public function testPageEdit() {
diff --git a/core/modules/block_content/tests/src/Menu/BlockContentLocalTasksTest.php b/core/modules/block_content/tests/src/Menu/BlockContentLocalTasksTest.php
index c989278..d962b12 100644
--- a/core/modules/block_content/tests/src/Menu/BlockContentLocalTasksTest.php
+++ b/core/modules/block_content/tests/src/Menu/BlockContentLocalTasksTest.php
@@ -13,19 +13,10 @@
 /**
  * Tests existence of block_content local tasks.
  *
- * @group Drupal
- * @group Block
+ * @group block_content
  */
 class BlockContentLocalTasksTest extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom Block local tasks test',
-      'description' => 'Test block_content local tasks.',
-      'group' => 'Block',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array(
       'block' => 'core/modules/block',
diff --git a/core/modules/book/src/Tests/BookTest.php b/core/modules/book/src/Tests/BookTest.php
index 6d8b321..b72a046 100644
--- a/core/modules/book/src/Tests/BookTest.php
+++ b/core/modules/book/src/Tests/BookTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the functionality of the Book module.
+ * Create a book, add pages, and test book interface.
+ *
+ * @group book
  */
 class BookTest extends WebTestBase {
 
@@ -50,14 +52,6 @@ class BookTest extends WebTestBase {
    */
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Book functionality',
-      'description' => 'Create a book, add pages, and test book interface.',
-      'group' => 'Book',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/book/tests/src/BookManagerTest.php b/core/modules/book/tests/src/BookManagerTest.php
index f7bd248..4abf063 100644
--- a/core/modules/book/tests/src/BookManagerTest.php
+++ b/core/modules/book/tests/src/BookManagerTest.php
@@ -11,12 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the book manager.
- *
- * @group Drupal
- * @group Book
- *
  * @coversDefaultClass \Drupal\book\BookManager
+ * @group book
  */
 class BookManagerTest extends UnitTestCase {
 
@@ -58,17 +54,6 @@ class BookManagerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Book manager',
-      'description' => 'Test the book manager.',
-      'group' => 'Book',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->connection = $this->getMockBuilder('Drupal\Core\Database\Connection')
       ->disableOriginalConstructor()
diff --git a/core/modules/book/tests/src/Menu/BookLocalTasksTest.php b/core/modules/book/tests/src/Menu/BookLocalTasksTest.php
index 86492c4..fd92757 100644
--- a/core/modules/book/tests/src/Menu/BookLocalTasksTest.php
+++ b/core/modules/book/tests/src/Menu/BookLocalTasksTest.php
@@ -12,19 +12,10 @@
 /**
  * Tests existence of book local tasks.
  *
- * @group Drupal
- * @group Book
+ * @group book
  */
 class BookLocalTasksTest extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Book local tasks test',
-      'description' => 'Test existence of book local tasks.',
-      'group' => 'Book',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array(
       'book' => 'core/modules/book',
diff --git a/core/modules/breakpoint/src/Tests/BreakpointAPITest.php b/core/modules/breakpoint/src/Tests/BreakpointAPITest.php
index 86f9816..8ec2b11 100644
--- a/core/modules/breakpoint/src/Tests/BreakpointAPITest.php
+++ b/core/modules/breakpoint/src/Tests/BreakpointAPITest.php
@@ -14,18 +14,12 @@
 use Drupal\Component\Utility\Unicode;
 
 /**
- * Tests for general breakpoint API functions.
+ * Tests general API functions of the breakpoint module.
+ *
+ * @group breakpoint
  */
 class BreakpointAPITest extends BreakpointTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Breakpoint general API functions',
-      'description' => 'Test general API functions of the breakpoint module.',
-      'group' => 'Breakpoint',
-    );
-  }
-
   /**
    * Test Breakpoint::buildConfigName().
    */
diff --git a/core/modules/breakpoint/src/Tests/BreakpointCRUDTest.php b/core/modules/breakpoint/src/Tests/BreakpointCRUDTest.php
index a9fcadf..24f96d6 100644
--- a/core/modules/breakpoint/src/Tests/BreakpointCRUDTest.php
+++ b/core/modules/breakpoint/src/Tests/BreakpointCRUDTest.php
@@ -10,18 +10,12 @@
 use Drupal\breakpoint\Entity\Breakpoint;
 
 /**
- * Tests for breakpoint CRUD operations.
+ * Tests creation, loading, updating, deleting of breakpoints.
+ *
+ * @group breakpoint
  */
 class BreakpointCRUDTest extends BreakpointTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Breakpoint CRUD operations',
-      'description' => 'Test creation, loading, updating, deleting of breakpoints.',
-      'group' => 'Breakpoint',
-    );
-  }
-
   /**
    * Test CRUD operations for breakpoints.
    */
diff --git a/core/modules/breakpoint/src/Tests/BreakpointGroupAPITest.php b/core/modules/breakpoint/src/Tests/BreakpointGroupAPITest.php
index 52c2ef4..1742203 100644
--- a/core/modules/breakpoint/src/Tests/BreakpointGroupAPITest.php
+++ b/core/modules/breakpoint/src/Tests/BreakpointGroupAPITest.php
@@ -15,18 +15,12 @@
 use Drupal\Component\Utility\Unicode;
 
 /**
- * Tests for general breakpoint group API functions.
+ * Tests general API functions of the breakpoint module.
+ *
+ * @group breakpoint
  */
 class BreakpointGroupAPITest extends BreakpointGroupTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Breakpoint group general API functions',
-      'description' => 'Test general API functions of the breakpoint module.',
-      'group' => 'Breakpoint',
-    );
-  }
-
   /**
    * Test Breakpoint::buildConfigName().
    */
diff --git a/core/modules/breakpoint/src/Tests/BreakpointGroupCRUDTest.php b/core/modules/breakpoint/src/Tests/BreakpointGroupCRUDTest.php
index e9eeb00..21724aa 100644
--- a/core/modules/breakpoint/src/Tests/BreakpointGroupCRUDTest.php
+++ b/core/modules/breakpoint/src/Tests/BreakpointGroupCRUDTest.php
@@ -11,18 +11,12 @@
 use Drupal\breakpoint\Entity\Breakpoint;
 
 /**
- * Tests for breakpoint group CRUD operations.
+ * Tests creation, loading, updating, deleting of breakpoint groups.
+ *
+ * @group breakpoint
  */
 class BreakpointGroupCRUDTest extends BreakpointGroupTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Breakpoint group CRUD operations',
-      'description' => 'Test creation, loading, updating, deleting of breakpoint groups.',
-      'group' => 'Breakpoint',
-    );
-  }
-
   /**
    * Test CRUD operations for breakpoint groups.
    */
diff --git a/core/modules/breakpoint/src/Tests/BreakpointThemeTest.php b/core/modules/breakpoint/src/Tests/BreakpointThemeTest.php
index 5715a8e..f5d3e82 100644
--- a/core/modules/breakpoint/src/Tests/BreakpointThemeTest.php
+++ b/core/modules/breakpoint/src/Tests/BreakpointThemeTest.php
@@ -11,18 +11,12 @@
 use Drupal\breakpoint\Entity\Breakpoint;
 
 /**
- * Test breakpoints provided by themes.
+ * Thoroughly test the breakpoints provided by a theme.
+ *
+ * @group breakpoint
  */
 class BreakpointThemeTest extends BreakpointGroupTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Breakpoint theme functionality',
-      'description' => 'Thoroughly test the breakpoints provided by a theme.',
-      'group' => 'Breakpoint',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     theme_enable(array('breakpoint_test_theme'));
diff --git a/core/modules/breakpoint/tests/src/BreakpointConfigEntityUnitTest.php b/core/modules/breakpoint/tests/src/BreakpointConfigEntityUnitTest.php
index dc59e9c..a9aec44 100644
--- a/core/modules/breakpoint/tests/src/BreakpointConfigEntityUnitTest.php
+++ b/core/modules/breakpoint/tests/src/BreakpointConfigEntityUnitTest.php
@@ -13,10 +13,7 @@
 
 /**
  * @coversDefaultClass \Drupal\breakpoint\Entity\Breakpoint
- *
- * @group Drupal
- * @group Config
- * @group Breakpoint
+ * @group breakpoint
  */
 class BreakpointConfigEntityUnitTest extends UnitTestCase {
 
@@ -58,17 +55,6 @@ class BreakpointConfigEntityUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\breakpoint\Entity\Breakpoint unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityTypeId = $this->randomName();
 
diff --git a/core/modules/breakpoint/tests/src/BreakpointGroupConfigEntityUnitTest.php b/core/modules/breakpoint/tests/src/BreakpointGroupConfigEntityUnitTest.php
index 4b81a65..e66541d 100644
--- a/core/modules/breakpoint/tests/src/BreakpointGroupConfigEntityUnitTest.php
+++ b/core/modules/breakpoint/tests/src/BreakpointGroupConfigEntityUnitTest.php
@@ -14,10 +14,7 @@
 
 /**
  * @coversDefaultClass \Drupal\breakpoint\Entity\BreakpointGroup
- *
- * @group Drupal
- * @group Config
- * @group Breakpoint
+ * @group breakpoint
  */
 class BreakpointGroupConfigEntityUnitTest extends UnitTestCase {
 
@@ -59,17 +56,6 @@ class BreakpointGroupConfigEntityUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\breakpoint\Entity\BreakpointGroup unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityTypeId = $this->randomName();
 
diff --git a/core/modules/breakpoint/tests/src/BreakpointMediaQueryTest.php b/core/modules/breakpoint/tests/src/BreakpointMediaQueryTest.php
index 1186619..c8ab81d 100644
--- a/core/modules/breakpoint/tests/src/BreakpointMediaQueryTest.php
+++ b/core/modules/breakpoint/tests/src/BreakpointMediaQueryTest.php
@@ -11,20 +11,12 @@
 use Drupal\breakpoint\InvalidBreakpointMediaQueryException;
 
 /**
- * Tests for media queries in a breakpoint.
+ * Tests validation of media queries.
  *
- * @group Breakpoint
+ * @group breakpoint
  */
 class BreakpointMediaQueryTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Breakpoint media query tests',
-      'description' => 'Test validation of media queries.',
-      'group' => 'Breakpoint',
-    );
-  }
-
   /**
    * Test valid media queries.
    */
diff --git a/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php b/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php
index 0d2d5b2..3d33afb 100644
--- a/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php
+++ b/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests administration of CKEditor.
+ *
+ * @group ckeditor
  */
 class CKEditorAdminTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class CKEditorAdminTest extends WebTestBase {
    */
   public static $modules = array('filter', 'editor', 'ckeditor');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CKEditor administration',
-      'description' => 'Tests administration of CKEditor.',
-      'group' => 'CKEditor',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/ckeditor/src/Tests/CKEditorLoadingTest.php b/core/modules/ckeditor/src/Tests/CKEditorLoadingTest.php
index e4231a3..286bd7a 100644
--- a/core/modules/ckeditor/src/Tests/CKEditorLoadingTest.php
+++ b/core/modules/ckeditor/src/Tests/CKEditorLoadingTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests loading of CKEditor.
+ *
+ * @group ckeditor
  */
 class CKEditorLoadingTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class CKEditorLoadingTest extends WebTestBase {
    */
   public static $modules = array('filter', 'editor', 'ckeditor', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CKEditor loading',
-      'description' => 'Tests loading of CKEditor.',
-      'group' => 'CKEditor',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/ckeditor/src/Tests/CKEditorPluginManagerTest.php b/core/modules/ckeditor/src/Tests/CKEditorPluginManagerTest.php
index a679191..f84f73e 100644
--- a/core/modules/ckeditor/src/Tests/CKEditorPluginManagerTest.php
+++ b/core/modules/ckeditor/src/Tests/CKEditorPluginManagerTest.php
@@ -11,7 +11,9 @@
 use Drupal\ckeditor\CKEditorPluginManager;
 
 /**
- * Tests for the "CKEditor plugins" plugin manager.
+ * Tests different ways of enabling CKEditor plugins.
+ *
+ * @group ckeditor
  */
 class CKEditorPluginManagerTest extends DrupalUnitTestBase {
 
@@ -29,14 +31,6 @@ class CKEditorPluginManagerTest extends DrupalUnitTestBase {
    */
   protected $manager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CKEditor plugin manager',
-      'description' => 'Tests different ways of enabling CKEditor plugins.',
-      'group' => 'CKEditor',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/ckeditor/src/Tests/CKEditorTest.php b/core/modules/ckeditor/src/Tests/CKEditorTest.php
index be08da2..41b81b8 100644
--- a/core/modules/ckeditor/src/Tests/CKEditorTest.php
+++ b/core/modules/ckeditor/src/Tests/CKEditorTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests for the 'CKEditor' text editor plugin.
+ *
+ * @group ckeditor
  */
 class CKEditorTest extends DrupalUnitTestBase {
 
@@ -37,14 +39,6 @@ class CKEditorTest extends DrupalUnitTestBase {
    */
   protected $manager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CKEditor text editor plugin',
-      'description' => 'Tests all aspects of the CKEditor text editor plugin.',
-      'group' => 'CKEditor',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/color/src/Tests/ColorConfigSchemaTest.php b/core/modules/color/src/Tests/ColorConfigSchemaTest.php
index bf7010c..865b833 100644
--- a/core/modules/color/src/Tests/ColorConfigSchemaTest.php
+++ b/core/modules/color/src/Tests/ColorConfigSchemaTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Color config schema.
+ * Ensures the color config schema is correct.
+ *
+ * @group color
  */
 class ColorConfigSchemaTest extends WebTestBase {
 
@@ -31,14 +33,6 @@ class ColorConfigSchemaTest extends WebTestBase {
    */
   protected $adminUser;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Color config schema',
-      'description' => 'Ensures the color config schema is correct.',
-      'group' => 'Color',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/color/src/Tests/ColorTest.php b/core/modules/color/src/Tests/ColorTest.php
index 32bdd1a..1516f46 100644
--- a/core/modules/color/src/Tests/ColorTest.php
+++ b/core/modules/color/src/Tests/ColorTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Color module functionality.
+ * Modify the Bartik theme colors and make sure the changes are reflected on the
+ * frontend.
+ *
+ * @group color
  */
 class ColorTest extends WebTestBase {
 
@@ -45,14 +48,6 @@ class ColorTest extends WebTestBase {
    */
   protected $colorTests;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Color functionality',
-      'description' => 'Modify the Bartik theme colors and make sure the changes are reflected on the frontend.',
-      'group' => 'Color',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/comment/src/Tests/CommentActionsTest.php b/core/modules/comment/src/Tests/CommentActionsTest.php
index 667d278..074af26 100644
--- a/core/modules/comment/src/Tests/CommentActionsTest.php
+++ b/core/modules/comment/src/Tests/CommentActionsTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests actions provided by the Comment module.
+ *
+ * @group comment
  */
 class CommentActionsTest extends CommentTestBase {
 
@@ -21,14 +23,6 @@ class CommentActionsTest extends CommentTestBase {
    */
   public static $modules = array('dblog', 'action');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment actions',
-      'description' => 'Test actions provided by the comment module.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Tests comment publish and unpublish actions.
    */
diff --git a/core/modules/comment/src/Tests/CommentAdminTest.php b/core/modules/comment/src/Tests/CommentAdminTest.php
index 11d4113..b5815c8 100644
--- a/core/modules/comment/src/Tests/CommentAdminTest.php
+++ b/core/modules/comment/src/Tests/CommentAdminTest.php
@@ -9,16 +9,10 @@
 
 /**
  * Tests comment approval functionality.
+ *
+ * @group comment
  */
 class CommentAdminTest extends CommentTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment admin',
-      'description' => 'Test comment admin functionality.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Test comment approval functionality through admin/content/comment.
    */
diff --git a/core/modules/comment/src/Tests/CommentAnonymousTest.php b/core/modules/comment/src/Tests/CommentAnonymousTest.php
index 03b88db..dca5098 100644
--- a/core/modules/comment/src/Tests/CommentAnonymousTest.php
+++ b/core/modules/comment/src/Tests/CommentAnonymousTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests anonymous commenting.
+ *
+ * @group comment
  */
 class CommentAnonymousTest extends CommentTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Anonymous comments',
-      'description' => 'Test anonymous comments.',
-      'group' => 'Comment',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/comment/src/Tests/CommentBlockTest.php b/core/modules/comment/src/Tests/CommentBlockTest.php
index f4d3dbd..da09f69 100644
--- a/core/modules/comment/src/Tests/CommentBlockTest.php
+++ b/core/modules/comment/src/Tests/CommentBlockTest.php
@@ -9,7 +9,9 @@
 use Drupal\Component\Utility\String;
 
 /**
- * Tests the Comment module blocks.
+ * Tests comment block functionality.
+ *
+ * @group comment
  */
 class CommentBlockTest extends CommentTestBase {
 
@@ -34,14 +36,6 @@ function setUp() {
      ));
   }
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment blocks',
-      'description' => 'Test comment block functionality.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Tests the recent comments block.
    */
diff --git a/core/modules/comment/src/Tests/CommentBookTest.php b/core/modules/comment/src/Tests/CommentBookTest.php
index 4d92e9d..b30b1cb 100644
--- a/core/modules/comment/src/Tests/CommentBookTest.php
+++ b/core/modules/comment/src/Tests/CommentBookTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the comment module integration for book module.
+ * Tests visibility of comments on book pages.
+ *
+ * @group comment
  */
 class CommentBookTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class CommentBookTest extends WebTestBase {
    */
   public static $modules = array('book', 'comment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Book commenting',
-      'description' => 'Test visibility of comments on book pages.',
-      'group' => 'Book',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/comment/src/Tests/CommentCSSTest.php b/core/modules/comment/src/Tests/CommentCSSTest.php
index 8c34754..98a027b 100644
--- a/core/modules/comment/src/Tests/CommentCSSTest.php
+++ b/core/modules/comment/src/Tests/CommentCSSTest.php
@@ -11,18 +11,12 @@
 use Drupal\comment\CommentInterface;
 
 /**
- * Tests comment CSS classes.
+ * Tests CSS classes on comments.
+ *
+ * @group comment
  */
 class CommentCSSTest extends CommentTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment CSS',
-      'description' => 'Tests CSS classes on comments.',
-      'group' => 'Comment',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/comment/src/Tests/CommentCacheTagsTest.php b/core/modules/comment/src/Tests/CommentCacheTagsTest.php
index d12c6bb..192beb4 100644
--- a/core/modules/comment/src/Tests/CommentCacheTagsTest.php
+++ b/core/modules/comment/src/Tests/CommentCacheTagsTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the Comment entity's cache tags.
+ *
+ * @group comment
  */
 class CommentCacheTagsTest extends EntityWithUriCacheTagsTestBase {
 
@@ -23,13 +25,6 @@ class CommentCacheTagsTest extends EntityWithUriCacheTagsTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return parent::generateStandardizedInfo('Comment', 'Comment');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/comment/src/Tests/CommentDefaultFormatterCacheTagsTest.php b/core/modules/comment/src/Tests/CommentDefaultFormatterCacheTagsTest.php
index 429ff12..1e60dac 100644
--- a/core/modules/comment/src/Tests/CommentDefaultFormatterCacheTagsTest.php
+++ b/core/modules/comment/src/Tests/CommentDefaultFormatterCacheTagsTest.php
@@ -12,7 +12,10 @@
 use Drupal\system\Tests\Entity\EntityUnitTestBase;
 
 /**
- * Tests CommentDefaultFormatter's cache tag bubbling.
+ * Tests the bubbling up of comment cache tags when using the Comment list
+ * formatter on an entity.
+ *
+ * @group comment
  */
 class CommentDefaultFormatterCacheTagsTest extends EntityUnitTestBase {
 
@@ -26,17 +29,6 @@ class CommentDefaultFormatterCacheTagsTest extends EntityUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment list cache tags',
-      'description' => 'Tests the bubbling up of comment cache tags when using the Comment list formatter on an entity.',
-      'group' => 'Comment',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/comment/src/Tests/CommentFieldsTest.php b/core/modules/comment/src/Tests/CommentFieldsTest.php
index 5dd3bb7..feecde6 100644
--- a/core/modules/comment/src/Tests/CommentFieldsTest.php
+++ b/core/modules/comment/src/Tests/CommentFieldsTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests fields on comments.
+ *
+ * @group comment
  */
 class CommentFieldsTest extends CommentTestBase {
 
@@ -23,14 +25,6 @@ class CommentFieldsTest extends CommentTestBase {
    */
   public static $modules = array('field_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment fields',
-      'description' => 'Tests fields on comments.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Tests that the default 'comment_body' field is correctly added.
    */
diff --git a/core/modules/comment/src/Tests/CommentInterfaceTest.php b/core/modules/comment/src/Tests/CommentInterfaceTest.php
index 42157e1..f00ef16 100644
--- a/core/modules/comment/src/Tests/CommentInterfaceTest.php
+++ b/core/modules/comment/src/Tests/CommentInterfaceTest.php
@@ -11,18 +11,12 @@
 use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface;
 
 /**
- * Tests the comment module administrative and end-user-facing interfaces.
+ * Tests comment user interfaces.
+ *
+ * @group comment
  */
 class CommentInterfaceTest extends CommentTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment interface',
-      'description' => 'Test comment user interfaces.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Tests the comment interface.
    */
diff --git a/core/modules/comment/src/Tests/CommentLanguageTest.php b/core/modules/comment/src/Tests/CommentLanguageTest.php
index aa3d5aa..b8ff7e7 100644
--- a/core/modules/comment/src/Tests/CommentLanguageTest.php
+++ b/core/modules/comment/src/Tests/CommentLanguageTest.php
@@ -12,7 +12,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for comment language.
+ * Tests for comment language.
+ *
+ * @group comment
  */
 class CommentLanguageTest extends WebTestBase {
 
@@ -27,14 +29,6 @@ class CommentLanguageTest extends WebTestBase {
    */
   public static $modules = array('node', 'language', 'language_test', 'comment_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment language',
-      'description' => 'Tests for comment language.',
-      'group' => 'Comment',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/comment/src/Tests/CommentLinksAlterTest.php b/core/modules/comment/src/Tests/CommentLinksAlterTest.php
index be11b76..af6d6b6 100644
--- a/core/modules/comment/src/Tests/CommentLinksAlterTest.php
+++ b/core/modules/comment/src/Tests/CommentLinksAlterTest.php
@@ -9,19 +9,13 @@
 
 /**
  * Tests comment links altering.
+ *
+ * @group comment
  */
 class CommentLinksAlterTest extends CommentTestBase {
 
   public static $modules = array('comment_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'hook_comment_links_alter()',
-      'description' => 'Tests comment links altering.',
-      'group' => 'Comment',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/comment/src/Tests/CommentLinksTest.php b/core/modules/comment/src/Tests/CommentLinksTest.php
index bce2746..3b40bdd 100644
--- a/core/modules/comment/src/Tests/CommentLinksTest.php
+++ b/core/modules/comment/src/Tests/CommentLinksTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests comment links based on environment configurations.
+ *
+ * @group comment
  */
 class CommentLinksTest extends CommentTestBase {
 
@@ -25,14 +27,6 @@ class CommentLinksTest extends CommentTestBase {
    */
   public static $modules = array('views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment links',
-      'description' => 'Tests comment links based on environment configurations.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Tests comment links.
    *
diff --git a/core/modules/comment/src/Tests/CommentNewIndicatorTest.php b/core/modules/comment/src/Tests/CommentNewIndicatorTest.php
index f955b62..d8450d2 100644
--- a/core/modules/comment/src/Tests/CommentNewIndicatorTest.php
+++ b/core/modules/comment/src/Tests/CommentNewIndicatorTest.php
@@ -12,7 +12,9 @@
 use Drupal\comment\CommentInterface;
 
 /**
- * Tests the 'new' marker on comments.
+ * Tests the 'new' indicator posted on comments.
+ *
+ * @group comment
  */
 class CommentNewIndicatorTest extends CommentTestBase {
 
@@ -25,14 +27,6 @@ class CommentNewIndicatorTest extends CommentTestBase {
    */
   public static $modules = array('views');
 
-  public static function getInfo() {
-    return array(
-      'name' => "Comment 'new' indicator",
-      'description' => "Tests the 'new' indicator posted on comments.",
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Get node "x new comments" metadata from the server for the current user.
    *
diff --git a/core/modules/comment/src/Tests/CommentNodeAccessTest.php b/core/modules/comment/src/Tests/CommentNodeAccessTest.php
index a3eba40..0aa481c 100644
--- a/core/modules/comment/src/Tests/CommentNodeAccessTest.php
+++ b/core/modules/comment/src/Tests/CommentNodeAccessTest.php
@@ -14,6 +14,8 @@
  *
  * Verifies there is no PostgreSQL error when viewing a node with threaded
  * comments (a comment and a reply), if a node access module is in use.
+ *
+ * @group comment
  */
 class CommentNodeAccessTest extends CommentTestBase {
 
@@ -24,14 +26,6 @@ class CommentNodeAccessTest extends CommentTestBase {
    */
   public static $modules = array('node_access_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment node access',
-      'description' => 'Test comment viewing with node access.',
-      'group' => 'Comment',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/comment/src/Tests/CommentNodeChangesTest.php b/core/modules/comment/src/Tests/CommentNodeChangesTest.php
index a6c8129..f1c443e 100644
--- a/core/modules/comment/src/Tests/CommentNodeChangesTest.php
+++ b/core/modules/comment/src/Tests/CommentNodeChangesTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests that comments behave correctly when the node is changed.
+ *
+ * @group comment
  */
 class CommentNodeChangesTest extends CommentTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment deletion on node changes',
-      'description' => 'Tests that comments behave correctly when the node is changed.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Tests that comments are deleted with the node.
    */
diff --git a/core/modules/comment/src/Tests/CommentNonNodeTest.php b/core/modules/comment/src/Tests/CommentNonNodeTest.php
index f4f6fec..870c908 100644
--- a/core/modules/comment/src/Tests/CommentNonNodeTest.php
+++ b/core/modules/comment/src/Tests/CommentNonNodeTest.php
@@ -15,7 +15,9 @@
 use Drupal\Core\Entity\EntityInterface;
 
 /**
- * Tests basic comment functionality against the entity_test entity type.
+ * Tests commenting on a test entity.
+ *
+ * @group comment
  */
 class CommentNonNodeTest extends WebTestBase {
 
@@ -28,14 +30,6 @@ class CommentNonNodeTest extends WebTestBase {
    */
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment non-node tests',
-      'description' => 'Test commenting on a test entity.',
-      'group' => 'Comment',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/comment/src/Tests/CommentPagerTest.php b/core/modules/comment/src/Tests/CommentPagerTest.php
index f712ce0..822dda2 100644
--- a/core/modules/comment/src/Tests/CommentPagerTest.php
+++ b/core/modules/comment/src/Tests/CommentPagerTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\comment\Tests;
 
 /**
- * Verifies pagination of comments.
+ * Tests paging of comments and their settings.
+ *
+ * @group comment
  */
 class CommentPagerTest extends CommentTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment paging settings',
-      'description' => 'Test paging of comments and their settings.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Confirms comment paging works correctly with flat and threaded comments.
    */
diff --git a/core/modules/comment/src/Tests/CommentPreviewTest.php b/core/modules/comment/src/Tests/CommentPreviewTest.php
index 1de62da..8dd3fbf 100644
--- a/core/modules/comment/src/Tests/CommentPreviewTest.php
+++ b/core/modules/comment/src/Tests/CommentPreviewTest.php
@@ -10,7 +10,9 @@
 use Drupal\Core\Datetime\DrupalDateTime;
 
 /**
- * Tests previewing comments.
+ * Tests comment preview.
+ *
+ * @group comment
  */
 class CommentPreviewTest extends CommentTestBase {
 
@@ -23,14 +25,6 @@ class CommentPreviewTest extends CommentTestBase {
    */
   protected $profile = 'standard';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment preview',
-      'description' => 'Test comment preview.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Tests comment preview.
    */
diff --git a/core/modules/comment/src/Tests/CommentRssTest.php b/core/modules/comment/src/Tests/CommentRssTest.php
index c58ada7..6c0cec1 100644
--- a/core/modules/comment/src/Tests/CommentRssTest.php
+++ b/core/modules/comment/src/Tests/CommentRssTest.php
@@ -10,7 +10,9 @@
 use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface;
 
 /**
- * Tests for Comment module integration with RSS feeds.
+ * Tests comments as part of an RSS feed.
+ *
+ * @group comment
  */
 class CommentRssTest extends CommentTestBase {
 
@@ -21,14 +23,6 @@ class CommentRssTest extends CommentTestBase {
    */
   public static $modules = array('views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment RSS',
-      'description' => 'Test comments as part of an RSS feed.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Tests comments as part of an RSS feed.
    */
diff --git a/core/modules/comment/src/Tests/CommentStatisticsTest.php b/core/modules/comment/src/Tests/CommentStatisticsTest.php
index 6906b55..a614db8 100644
--- a/core/modules/comment/src/Tests/CommentStatisticsTest.php
+++ b/core/modules/comment/src/Tests/CommentStatisticsTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\comment\Tests;
 
 /**
- * Tests the comment module administrative and end-user-facing interfaces.
+ * Tests comment statistics on nodes.
+ *
+ * @group comment
  */
 class CommentStatisticsTest extends CommentTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment statistics',
-      'description' => 'Test comment statistics on nodes.',
-      'group' => 'Comment',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/comment/src/Tests/CommentStringIdEntitiesTest.php b/core/modules/comment/src/Tests/CommentStringIdEntitiesTest.php
index e1be25d..88c2d90 100644
--- a/core/modules/comment/src/Tests/CommentStringIdEntitiesTest.php
+++ b/core/modules/comment/src/Tests/CommentStringIdEntitiesTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests that comment fields cannot be added to entities with non-integer IDs.
+ *
+ * @group comment
  */
 class CommentStringIdEntitiesTest extends KernelTestBase {
 
@@ -30,14 +32,6 @@ class CommentStringIdEntitiesTest extends KernelTestBase {
     'text',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comments on Entity Types with string IDs',
-      'description' => 'Test that comment fields cannot be added to entities with non-integer IDs',
-      'group' => 'Comment',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installEntitySchema('comment');
diff --git a/core/modules/comment/src/Tests/CommentThreadingTest.php b/core/modules/comment/src/Tests/CommentThreadingTest.php
index f0d7703..f038ef7 100644
--- a/core/modules/comment/src/Tests/CommentThreadingTest.php
+++ b/core/modules/comment/src/Tests/CommentThreadingTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\comment\Tests;
 
 /**
- * Tests comment threading.
+ * Tests to make sure the comment number increments properly.
+ *
+ * @group comment
  */
 class CommentThreadingTest extends CommentTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment Threading',
-      'description' => 'Test to make sure the comment number increments properly.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Tests the comment threading.
    */
diff --git a/core/modules/comment/src/Tests/CommentTokenReplaceTest.php b/core/modules/comment/src/Tests/CommentTokenReplaceTest.php
index ec76fb4..3cfd312 100644
--- a/core/modules/comment/src/Tests/CommentTokenReplaceTest.php
+++ b/core/modules/comment/src/Tests/CommentTokenReplaceTest.php
@@ -11,17 +11,12 @@
 use Drupal\Component\Utility\Xss;
 
 /**
- * Tests comment token replacement in strings.
+ * Generates text using placeholders for dummy content to check comment token
+ * replacement.
+ *
+ * @group comment
  */
 class CommentTokenReplaceTest extends CommentTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment token replacement',
-      'description' => 'Generates text using placeholders for dummy content to check comment token replacement.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Creates a comment, then tests the tokens generated from it.
    */
diff --git a/core/modules/comment/src/Tests/CommentTranslationUITest.php b/core/modules/comment/src/Tests/CommentTranslationUITest.php
index 7314c30..736b929 100644
--- a/core/modules/comment/src/Tests/CommentTranslationUITest.php
+++ b/core/modules/comment/src/Tests/CommentTranslationUITest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the Comment Translation UI.
+ *
+ * @group comment
  */
 class CommentTranslationUITest extends ContentTranslationUITest {
 
@@ -28,14 +30,6 @@ class CommentTranslationUITest extends ContentTranslationUITest {
    */
   public static $modules = array('language', 'content_translation', 'node', 'comment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment translation UI',
-      'description' => 'Tests the basic comment translation UI.',
-      'group' => 'Comment',
-    );
-  }
-
   function setUp() {
     $this->entityTypeId = 'comment';
     $this->nodeBundle = 'article';
diff --git a/core/modules/comment/src/Tests/CommentTypeTest.php b/core/modules/comment/src/Tests/CommentTypeTest.php
index 7005bc1..b4dfb47 100644
--- a/core/modules/comment/src/Tests/CommentTypeTest.php
+++ b/core/modules/comment/src/Tests/CommentTypeTest.php
@@ -14,7 +14,9 @@
 use Drupal\node\Entity\Node;
 
 /**
- * Tests related to custom comment types.
+ * Ensures that comment type functions work correctly.
+ *
+ * @group comment
  */
 class CommentTypeTest extends CommentTestBase {
 
@@ -45,17 +47,6 @@ public function setUp() {
   }
 
   /**
-   * Declares test information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment types',
-      'description' => 'Ensures that comment type functions work correctly.',
-      'group' => 'Comment',
-    );
-  }
-
-  /**
    * Tests creating a comment type programmatically and via a form.
    */
   public function testCommentTypeCreation() {
diff --git a/core/modules/comment/src/Tests/CommentUninstallTest.php b/core/modules/comment/src/Tests/CommentUninstallTest.php
index 5be58c8..db58aea 100644
--- a/core/modules/comment/src/Tests/CommentUninstallTest.php
+++ b/core/modules/comment/src/Tests/CommentUninstallTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests comment module uninstallation.
+ *
+ * @group comment
  */
 class CommentUninstallTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class CommentUninstallTest extends WebTestBase {
    */
   public static $modules = array('comment', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment uninstallation',
-      'description' => 'Tests comment module uninstallation.',
-      'group' => 'Comment',
-    );
-  }
-
   protected function setUp() {
     parent::setup();
 
diff --git a/core/modules/comment/src/Tests/CommentValidationTest.php b/core/modules/comment/src/Tests/CommentValidationTest.php
index b705b16..d150da0 100644
--- a/core/modules/comment/src/Tests/CommentValidationTest.php
+++ b/core/modules/comment/src/Tests/CommentValidationTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests comment validation constraints.
+ *
+ * @group comment
  */
 class CommentValidationTest extends EntityUnitTestBase {
 
@@ -25,17 +27,6 @@ class CommentValidationTest extends EntityUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment Validation',
-      'description' => 'Tests the comment validation constraints.',
-      'group' => 'Comment',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $this->installEntitySchema('node');
diff --git a/core/modules/comment/src/Tests/Views/ArgumentUserUIDTest.php b/core/modules/comment/src/Tests/Views/ArgumentUserUIDTest.php
index 0903858..040c595 100644
--- a/core/modules/comment/src/Tests/Views/ArgumentUserUIDTest.php
+++ b/core/modules/comment/src/Tests/Views/ArgumentUserUIDTest.php
@@ -10,7 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the argument_comment_user_uid handler.
+ * Tests the user posted or commented argument handler.
+ *
+ * @group comment
  */
 class ArgumentUserUIDTest extends CommentTestBase {
 
@@ -21,14 +23,6 @@ class ArgumentUserUIDTest extends CommentTestBase {
    */
   public static $testViews = array('test_comment_user_uid');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment: User UID Argument',
-      'description' => 'Tests the user posted or commented argument handler.',
-      'group' => 'Views module integration',
-    );
-  }
-
   function testCommentUserUIDTest() {
     $view = Views::getView('test_comment_user_uid');
     $this->executeView($view, array($this->account->id()));
diff --git a/core/modules/comment/src/Tests/Views/CommentRowTest.php b/core/modules/comment/src/Tests/Views/CommentRowTest.php
index e4b2065..8fa08c4 100644
--- a/core/modules/comment/src/Tests/Views/CommentRowTest.php
+++ b/core/modules/comment/src/Tests/Views/CommentRowTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests the comment row plugin.
+ *
+ * @group comment
  */
 class CommentRowTest extends CommentTestBase {
 
@@ -19,14 +21,6 @@ class CommentRowTest extends CommentTestBase {
    */
   public static $testViews = array('test_comment_row');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment: Row Plugin',
-      'description' => 'Tests the comment row plugin.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Test comment row.
    */
diff --git a/core/modules/comment/src/Tests/Views/DefaultViewRecentComments.php b/core/modules/comment/src/Tests/Views/DefaultViewRecentComments.php
index 9bf8e5b..0290908 100644
--- a/core/modules/comment/src/Tests/Views/DefaultViewRecentComments.php
+++ b/core/modules/comment/src/Tests/Views/DefaultViewRecentComments.php
@@ -12,7 +12,9 @@
 use Drupal\views\Tests\ViewTestBase;
 
 /**
- * Tests the Recent Comments default view.
+ * Tests results for the Recent Comments view shipped with the module.
+ *
+ * @group comment
  */
 class DefaultViewRecentComments extends ViewTestBase {
 
@@ -58,14 +60,6 @@ class DefaultViewRecentComments extends ViewTestBase {
    */
   public $node;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Default View - Recent Comments',
-      'description' => 'Test results for the Recent Comments view shipped with the module',
-      'group' => 'Views Config',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/comment/src/Tests/Views/FilterUserUIDTest.php b/core/modules/comment/src/Tests/Views/FilterUserUIDTest.php
index 95efc48..92e40c7 100644
--- a/core/modules/comment/src/Tests/Views/FilterUserUIDTest.php
+++ b/core/modules/comment/src/Tests/Views/FilterUserUIDTest.php
@@ -10,9 +10,11 @@
 use Drupal\views\Views;
 
 /**
- * Tests the filter_comment_user_uid handler.
+ * Tests the user posted or commented filter handler.
  *
  * The actual stuff is done in the parent class.
+ *
+ * @group comment
  */
 class FilterUserUIDTest extends CommentTestBase {
 
@@ -23,14 +25,6 @@ class FilterUserUIDTest extends CommentTestBase {
    */
   public static $testViews = array('test_comment_user_uid');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment: User UID Filter',
-      'description' => 'Tests the user posted or commented filter handler.',
-      'group' => 'Views module integration',
-    );
-  }
-
   function testCommentUserUIDTest() {
     $view = Views::getView('test_comment_user_uid');
     $view->setDisplay();
diff --git a/core/modules/comment/src/Tests/Views/RowRssTest.php b/core/modules/comment/src/Tests/Views/RowRssTest.php
index 2cee7a1..89b9c1b 100644
--- a/core/modules/comment/src/Tests/Views/RowRssTest.php
+++ b/core/modules/comment/src/Tests/Views/RowRssTest.php
@@ -10,6 +10,7 @@
 /**
  * Tests the comment rss row plugin.
  *
+ * @group comment
  * @see \Drupal\comment\Plugin\views\row\Rss
  */
 class RowRssTest extends CommentTestBase {
@@ -21,14 +22,6 @@ class RowRssTest extends CommentTestBase {
    */
   public static $testViews = array('test_comment_rss');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment: Rss Row',
-      'description' => 'Tests the comment rss row plugin.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Test comment rss output.
    */
diff --git a/core/modules/comment/src/Tests/Views/WizardTest.php b/core/modules/comment/src/Tests/Views/WizardTest.php
index 6ced3f6..f7011a7 100644
--- a/core/modules/comment/src/Tests/Views/WizardTest.php
+++ b/core/modules/comment/src/Tests/Views/WizardTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the comment module integration into the wizard.
  *
+ * @group comment
  * @see \Drupal\comment\Plugin\views\wizard\Comment
  */
 class WizardTest extends WizardTestBase {
@@ -25,14 +26,6 @@ class WizardTest extends WizardTestBase {
   public static $modules = array('node', 'comment');
 
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment: Wizard',
-      'description' => 'Tests the comment module integration into the wizard.',
-      'group' => 'Views Wizard',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/comment/tests/src/CommentStatisticsUnitTest.php b/core/modules/comment/tests/src/CommentStatisticsUnitTest.php
index 3f994df..88d4aa3 100644
--- a/core/modules/comment/tests/src/CommentStatisticsUnitTest.php
+++ b/core/modules/comment/tests/src/CommentStatisticsUnitTest.php
@@ -11,9 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the CommentStatistics service.
- *
- * @see \Drupal\comment\CommentStatistics
+ * @coversDefaultClass \Drupal\comment\CommentStatistics
+ * @group comment
  */
 class CommentStatisticsUnitTest extends UnitTestCase {
 
@@ -45,14 +44,6 @@ class CommentStatisticsUnitTest extends UnitTestCase {
    */
   protected $commentStatistics;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment statistics test',
-      'description' => 'Tests the comment statistics service.',
-      'group' => 'Comment',
-    );
-  }
-
   /**
    * Sets up required mocks and the CommentStatistics service under test.
    */
diff --git a/core/modules/comment/tests/src/Entity/CommentLockTest.php b/core/modules/comment/tests/src/Entity/CommentLockTest.php
index 887d3ca..7f667ff 100644
--- a/core/modules/comment/tests/src/Entity/CommentLockTest.php
+++ b/core/modules/comment/tests/src/Entity/CommentLockTest.php
@@ -11,25 +11,13 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Unit tests for the comment entity lock behavior.
+ * Tests comment acquires and releases the right lock.
  *
- * @group Drupal
- * @group Comment
+ * @group comment
  */
 class CommentLockTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment locks',
-      'description' => 'Test comment acquires and releases the right lock.',
-      'group' => 'Comment',
-    );
-  }
-
-  /**
    * Test the lock behavior.
    */
   public function testLocks() {
diff --git a/core/modules/config/src/Tests/ConfigCRUDTest.php b/core/modules/config/src/Tests/ConfigCRUDTest.php
index dc6de36..122843e 100644
--- a/core/modules/config/src/Tests/ConfigCRUDTest.php
+++ b/core/modules/config/src/Tests/ConfigCRUDTest.php
@@ -17,6 +17,8 @@
 
 /**
  * Tests CRUD operations on configuration objects.
+ *
+ * @group config
  */
 class ConfigCRUDTest extends DrupalUnitTestBase {
 
@@ -27,14 +29,6 @@ class ConfigCRUDTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CRUD operations',
-      'description' => 'Tests CRUD operations on configuration objects.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests CRUD operations.
    */
diff --git a/core/modules/config/src/Tests/ConfigDependencyTest.php b/core/modules/config/src/Tests/ConfigDependencyTest.php
index 0cb93e8..52c8cea 100644
--- a/core/modules/config/src/Tests/ConfigDependencyTest.php
+++ b/core/modules/config/src/Tests/ConfigDependencyTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Unit tests for configuration controllers and objects.
+ * Tests for configuration dependencies.
+ *
+ * @group config
  */
 class ConfigDependencyTest extends DrupalUnitTestBase {
 
@@ -21,14 +23,6 @@ class ConfigDependencyTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'config_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration dependency tests',
-      'description' => 'Tests for configuration dependencies.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests that calculating dependencies for system module.
    */
diff --git a/core/modules/config/src/Tests/ConfigDiffTest.php b/core/modules/config/src/Tests/ConfigDiffTest.php
index fc9dc40..960eb3c 100644
--- a/core/modules/config/src/Tests/ConfigDiffTest.php
+++ b/core/modules/config/src/Tests/ConfigDiffTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests config snapshot creation and updating.
+ * Calculating the difference between two sets of configuration.
+ *
+ * @group config
  */
 class ConfigDiffTest extends DrupalUnitTestBase {
 
@@ -21,14 +23,6 @@ class ConfigDiffTest extends DrupalUnitTestBase {
    */
   public static $modules = array('config_test', 'system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Diff functionality',
-      'description' => 'Calculating the difference between two sets of configuration.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests calculating the difference between two sets of configuration.
    */
diff --git a/core/modules/config/src/Tests/ConfigEntityFormOverrideTest.php b/core/modules/config/src/Tests/ConfigEntityFormOverrideTest.php
index 1660fcc..5ccd8ff 100644
--- a/core/modules/config/src/Tests/ConfigEntityFormOverrideTest.php
+++ b/core/modules/config/src/Tests/ConfigEntityFormOverrideTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests that config overrides do not bleed through in entity forms.
+ *
+ * @group config
  */
 class ConfigEntityFormOverrideTest extends WebTestBase {
 
@@ -20,17 +22,6 @@ class ConfigEntityFormOverrideTest extends WebTestBase {
   public static $modules = array('config_test');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Config entity form overrides',
-      'description' => 'Tests that config overrides do not affect entity forms.',
-      'group' => 'Configuration',
-    );
-  }
-
-  /**
    * Tests that overrides do not affect forms.
    */
   public function testFormsWithOverrides() {
diff --git a/core/modules/config/src/Tests/ConfigEntityListTest.php b/core/modules/config/src/Tests/ConfigEntityListTest.php
index e55f84d..b0818b9 100644
--- a/core/modules/config/src/Tests/ConfigEntityListTest.php
+++ b/core/modules/config/src/Tests/ConfigEntityListTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the listing of configuration entities.
+ *
+ * @group config
  */
 class ConfigEntityListTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class ConfigEntityListTest extends WebTestBase {
    */
   public static $modules = array('config_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration entity list',
-      'description' => 'Tests the listing of configuration entities.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests entity list builder methods.
    */
diff --git a/core/modules/config/src/Tests/ConfigEntityStatusTest.php b/core/modules/config/src/Tests/ConfigEntityStatusTest.php
index 5519de5..21c7828 100644
--- a/core/modules/config/src/Tests/ConfigEntityStatusTest.php
+++ b/core/modules/config/src/Tests/ConfigEntityStatusTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests configuration entity status functionality.
+ *
+ * @group config
  */
 class ConfigEntityStatusTest extends DrupalUnitTestBase {
 
@@ -21,14 +23,6 @@ class ConfigEntityStatusTest extends DrupalUnitTestBase {
    */
   public static $modules = array('config_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration entity status',
-      'description' => 'Tests configuration entity status functionality.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests the enabling/disabling of entities.
    */
diff --git a/core/modules/config/src/Tests/ConfigEntityStatusUITest.php b/core/modules/config/src/Tests/ConfigEntityStatusUITest.php
index 89f5b00..a4ae953 100644
--- a/core/modules/config/src/Tests/ConfigEntityStatusUITest.php
+++ b/core/modules/config/src/Tests/ConfigEntityStatusUITest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests configuration entity status UI functionality.
+ *
+ * @group config
  */
 class ConfigEntityStatusUITest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class ConfigEntityStatusUITest extends WebTestBase {
    */
   public static $modules = array('config_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration entity status UI',
-      'description' => 'Tests configuration entity status UI functionality.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests status operations.
    */
diff --git a/core/modules/config/src/Tests/ConfigEntityStorageTest.php b/core/modules/config/src/Tests/ConfigEntityStorageTest.php
index 854882e..600d220 100644
--- a/core/modules/config/src/Tests/ConfigEntityStorageTest.php
+++ b/core/modules/config/src/Tests/ConfigEntityStorageTest.php
@@ -11,7 +11,10 @@
 use Drupal\Core\Config\ConfigDuplicateUUIDException;
 
 /**
- * Tests importing config entity data when the ID or UUID matches existing data.
+ * Tests staging and importing config entities with IDs and UUIDs that match
+ * existing config.
+ *
+ * @group config
  */
 class ConfigEntityStorageTest extends DrupalUnitTestBase {
 
@@ -22,14 +25,6 @@ class ConfigEntityStorageTest extends DrupalUnitTestBase {
    */
   public static $modules = array('config_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration entity UUID conflict',
-      'description' => 'Tests staging and importing config entities with IDs and UUIDs that match existing config.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests importing fields and instances with changed IDs or UUIDs.
    */
diff --git a/core/modules/config/src/Tests/ConfigEntityTest.php b/core/modules/config/src/Tests/ConfigEntityTest.php
index 4a1bd1b..7fdbb8c 100644
--- a/core/modules/config/src/Tests/ConfigEntityTest.php
+++ b/core/modules/config/src/Tests/ConfigEntityTest.php
@@ -16,6 +16,8 @@
 
 /**
  * Tests configuration entities.
+ *
+ * @group config
  */
 class ConfigEntityTest extends WebTestBase {
 
@@ -31,14 +33,6 @@ class ConfigEntityTest extends WebTestBase {
    */
   public static $modules = array('config_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration entities',
-      'description' => 'Tests configuration entities.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests CRUD operations.
    */
diff --git a/core/modules/config/src/Tests/ConfigEntityUnitTest.php b/core/modules/config/src/Tests/ConfigEntityUnitTest.php
index 9800827..4a3574a 100644
--- a/core/modules/config/src/Tests/ConfigEntityUnitTest.php
+++ b/core/modules/config/src/Tests/ConfigEntityUnitTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Unit tests for configuration controllers and objects.
+ * Unit tests for configuration entity base methods.
+ *
+ * @group config
  */
 class ConfigEntityUnitTest extends DrupalUnitTestBase {
 
@@ -29,14 +31,6 @@ class ConfigEntityUnitTest extends DrupalUnitTestBase {
    */
   protected $storage;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration entity methods',
-      'description' => 'Unit tests for configuration entity base methods.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/config/src/Tests/ConfigEventsTest.php b/core/modules/config/src/Tests/ConfigEventsTest.php
index 27e8845..93ef627 100644
--- a/core/modules/config/src/Tests/ConfigEventsTest.php
+++ b/core/modules/config/src/Tests/ConfigEventsTest.php
@@ -12,7 +12,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests CRUD operations on configuration objects.
+ * Tests events fired on configuration objects.
+ *
+ * @group config
  */
 class ConfigEventsTest extends DrupalUnitTestBase {
 
@@ -23,14 +25,6 @@ class ConfigEventsTest extends DrupalUnitTestBase {
    */
   public static $modules = array('config_events_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Config events',
-      'description' => 'Tests events fired on configuration objects.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests configuration events.
    */
diff --git a/core/modules/config/src/Tests/ConfigExportImportUITest.php b/core/modules/config/src/Tests/ConfigExportImportUITest.php
index baa12f5..bd0c70f 100644
--- a/core/modules/config/src/Tests/ConfigExportImportUITest.php
+++ b/core/modules/config/src/Tests/ConfigExportImportUITest.php
@@ -11,11 +11,13 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Performs various configuration import/export scenarios through the UI.
+ * Tests the user interface for importing/exporting configuration.
  *
  * Each testX method does a complete rebuild of a Drupal site, so values being
  * tested need to be stored in protected properties in order to survive until
  * the next rebuild.
+ *
+ * @group config
  */
 class ConfigExportImportUITest extends WebTestBase {
 
@@ -36,17 +38,6 @@ class ConfigExportImportUITest extends WebTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Export/import UI',
-      'description' => 'Tests the user interface for importing/exporting configuration.',
-      'group' => 'Configuration',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     // The initial import must be done with uid 1 because if separately named
diff --git a/core/modules/config/src/Tests/ConfigExportUITest.php b/core/modules/config/src/Tests/ConfigExportUITest.php
index 172804c..fe3ae8d 100644
--- a/core/modules/config/src/Tests/ConfigExportUITest.php
+++ b/core/modules/config/src/Tests/ConfigExportUITest.php
@@ -12,7 +12,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests exporting configuration from active store in files.
+ * Tests the user interface for exporting configuration.
+ *
+ * @group config
  */
 class ConfigExportUITest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class ConfigExportUITest extends WebTestBase {
    */
   public static $modules = array('config', 'config_test', 'config_export_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Export UI',
-      'description' => 'Tests the user interface for exporting configuration.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/config/src/Tests/ConfigFileContentTest.php b/core/modules/config/src/Tests/ConfigFileContentTest.php
index a73155d..0cc51dd 100644
--- a/core/modules/config/src/Tests/ConfigFileContentTest.php
+++ b/core/modules/config/src/Tests/ConfigFileContentTest.php
@@ -11,17 +11,11 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests reading and writing file contents.
+ * Tests reading and writing of configuration files.
+ *
+ * @group config
  */
 class ConfigFileContentTest extends DrupalUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File content',
-      'description' => 'Tests reading and writing of configuration files.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests setting, writing, and reading of a configuration setting.
    */
diff --git a/core/modules/config/src/Tests/ConfigFormOverrideTest.php b/core/modules/config/src/Tests/ConfigFormOverrideTest.php
index 3d908ce..00aaa22 100644
--- a/core/modules/config/src/Tests/ConfigFormOverrideTest.php
+++ b/core/modules/config/src/Tests/ConfigFormOverrideTest.php
@@ -12,22 +12,12 @@
 /**
  * Tests config overrides do not appear on forms that extend ConfigFormBase.
  *
+ * @group config
  * @see \Drupal\Core\Form\ConfigFormBase
  */
 class ConfigFormOverrideTest extends WebTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Config form overrides',
-      'description' => 'Tests config overrides do not appear on forms that extend ConfigFormBase.',
-      'group' => 'Configuration',
-    );
-  }
-
-  /**
    * Tests that overrides do not affect forms.
    */
   public function testFormsWithOverrides() {
diff --git a/core/modules/config/src/Tests/ConfigImportAllTest.php b/core/modules/config/src/Tests/ConfigImportAllTest.php
index 1624211..b83e1a7 100644
--- a/core/modules/config/src/Tests/ConfigImportAllTest.php
+++ b/core/modules/config/src/Tests/ConfigImportAllTest.php
@@ -11,7 +11,10 @@
 use Drupal\system\Tests\Module\ModuleTestBase;
 
 /**
- * Tests importing all configuration from Standard profile and all core modules.
+ * Tests the largest configuration import possible with the modules and profiles
+ * provided by core.
+ *
+ * @group config
  */
 class ConfigImportAllTest extends ModuleTestBase {
 
@@ -24,14 +27,6 @@ class ConfigImportAllTest extends ModuleTestBase {
    */
   protected $profile = 'standard';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Import configuration from all modules and the standard profile',
-      'description' => 'Tests the largest configuration import possible with the modules and profiles provided by core.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests that a fixed set of modules can be installed and uninstalled.
    */
diff --git a/core/modules/config/src/Tests/ConfigImportRecreateTest.php b/core/modules/config/src/Tests/ConfigImportRecreateTest.php
index 9afec8c..9e58ee6 100644
--- a/core/modules/config/src/Tests/ConfigImportRecreateTest.php
+++ b/core/modules/config/src/Tests/ConfigImportRecreateTest.php
@@ -14,6 +14,8 @@
 
 /**
  * Tests importing recreated configuration entities.
+ *
+ * @group config
  */
 class ConfigImportRecreateTest extends DrupalUnitTestBase {
 
@@ -31,14 +33,6 @@ class ConfigImportRecreateTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'entity', 'field', 'text', 'user', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Import renamed configuration',
-      'description' => 'Tests importing renamed configuration.',
-      'group' => 'Configuration',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/config/src/Tests/ConfigImportRenameValidationTest.php b/core/modules/config/src/Tests/ConfigImportRenameValidationTest.php
index 7e8024a..a0bbb67 100644
--- a/core/modules/config/src/Tests/ConfigImportRenameValidationTest.php
+++ b/core/modules/config/src/Tests/ConfigImportRenameValidationTest.php
@@ -17,6 +17,8 @@
 
 /**
  * Tests validating renamed configuration in a configuration import.
+ *
+ * @group config
  */
 class ConfigImportRenameValidationTest extends DrupalUnitTestBase {
 
@@ -37,17 +39,6 @@ class ConfigImportRenameValidationTest extends DrupalUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration import rename validation',
-      'description' => 'Tests validating renamed configuration in a configuration import.',
-      'group' => 'Configuration',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/config/src/Tests/ConfigImportUITest.php b/core/modules/config/src/Tests/ConfigImportUITest.php
index 6f3bb2c..35a4bfa 100644
--- a/core/modules/config/src/Tests/ConfigImportUITest.php
+++ b/core/modules/config/src/Tests/ConfigImportUITest.php
@@ -12,7 +12,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests importing configuration from files into active store.
+ * Tests the user interface for importing/exporting configuration.
+ *
+ * @group config
  */
 class ConfigImportUITest extends WebTestBase {
 
@@ -20,14 +22,6 @@ class ConfigImportUITest extends WebTestBase {
   // correctly.
   public static $modules = array('config', 'config_test', 'config_import_test', 'text', 'options');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Import UI',
-      'description' => 'Tests the user interface for importing/exporting configuration.',
-      'group' => 'Configuration',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/config/src/Tests/ConfigImportUploadTest.php b/core/modules/config/src/Tests/ConfigImportUploadTest.php
index 025c2f4..59ec37e 100644
--- a/core/modules/config/src/Tests/ConfigImportUploadTest.php
+++ b/core/modules/config/src/Tests/ConfigImportUploadTest.php
@@ -11,19 +11,13 @@
 
 /**
  * Tests importing configuration from an uploaded file.
+ *
+ * @group config
  */
 class ConfigImportUploadTest extends WebTestBase {
 
   public static $modules = array('config');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Import uploaded config',
-      'description' => 'Tests importing configuration from an uploaded file.',
-      'group' => 'Configuration'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/config/src/Tests/ConfigImporterTest.php b/core/modules/config/src/Tests/ConfigImporterTest.php
index ca4d704..9c7fa14 100644
--- a/core/modules/config/src/Tests/ConfigImporterTest.php
+++ b/core/modules/config/src/Tests/ConfigImporterTest.php
@@ -15,6 +15,8 @@
 
 /**
  * Tests importing configuration from files into active configuration.
+ *
+ * @group config
  */
 class ConfigImporterTest extends DrupalUnitTestBase {
 
@@ -32,14 +34,6 @@ class ConfigImporterTest extends DrupalUnitTestBase {
    */
   public static $modules = array('config_test', 'system', 'config_import_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Import configuration',
-      'description' => 'Tests importing configuration from files into active configuration.',
-      'group' => 'Configuration',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/config/src/Tests/ConfigInstallTest.php b/core/modules/config/src/Tests/ConfigInstallTest.php
index b25f92c..b7eefd3 100644
--- a/core/modules/config/src/Tests/ConfigInstallTest.php
+++ b/core/modules/config/src/Tests/ConfigInstallTest.php
@@ -12,17 +12,10 @@
 /**
  * Tests installation of configuration objects in installation functionality.
  *
+ * @group config
  * @see \Drupal\Core\Config\ConfigInstaller
  */
 class ConfigInstallTest extends DrupalUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Installation functionality unit tests',
-      'description' => 'Tests installation of configuration objects in installation functionality.',
-      'group' => 'Configuration',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/config/src/Tests/ConfigInstallWebTest.php b/core/modules/config/src/Tests/ConfigInstallWebTest.php
index 776daa4..f7cc7ee 100644
--- a/core/modules/config/src/Tests/ConfigInstallWebTest.php
+++ b/core/modules/config/src/Tests/ConfigInstallWebTest.php
@@ -12,17 +12,12 @@
 use Drupal\Core\Config\FileStorage;
 
 /**
- * Tests installation of configuration objects in installation functionality.
+ * Tests installation and removal of configuration objects in install, disable
+ * and uninstall functionality.
+ *
+ * @group config
  */
 class ConfigInstallWebTest extends WebTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Install, disable and uninstall functionality',
-      'description' => 'Tests installation and removal of configuration objects in install, disable and uninstall functionality.',
-      'group' => 'Configuration',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/config/src/Tests/ConfigLanguageOverrideTest.php b/core/modules/config/src/Tests/ConfigLanguageOverrideTest.php
index e0d5b6b..fe76f8f 100644
--- a/core/modules/config/src/Tests/ConfigLanguageOverrideTest.php
+++ b/core/modules/config/src/Tests/ConfigLanguageOverrideTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests language config override.
+ * Confirm that language overrides work.
+ *
+ * @group config
  */
 class ConfigLanguageOverrideTest extends DrupalUnitTestBase {
 
@@ -22,14 +24,6 @@ class ConfigLanguageOverrideTest extends DrupalUnitTestBase {
    */
   public static $modules = array('user', 'language', 'config_test',  'system', 'field');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language override',
-      'description' => 'Confirm that language overrides work',
-      'group' => 'Configuration',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installConfig(array('config_test'));
diff --git a/core/modules/config/src/Tests/ConfigLanguageOverrideWebTest.php b/core/modules/config/src/Tests/ConfigLanguageOverrideWebTest.php
index 34f5172..c831b31 100644
--- a/core/modules/config/src/Tests/ConfigLanguageOverrideWebTest.php
+++ b/core/modules/config/src/Tests/ConfigLanguageOverrideWebTest.php
@@ -10,20 +10,14 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests language overrides in configuration through the request.
+ * Tests language overrides applied through the website.
+ *
+ * @group config
  */
 class ConfigLanguageOverrideWebTest extends WebTestBase {
 
   public static $modules = array('language', 'system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language overrides through the request',
-      'description' => 'Tests language overrides applied through the website.',
-      'group' => 'Configuration',
-    );
-  }
-
   function setUp() {
     parent::setUp();
   }
diff --git a/core/modules/config/src/Tests/ConfigModuleOverridesTest.php b/core/modules/config/src/Tests/ConfigModuleOverridesTest.php
index c5c7190..70163a0 100644
--- a/core/modules/config/src/Tests/ConfigModuleOverridesTest.php
+++ b/core/modules/config/src/Tests/ConfigModuleOverridesTest.php
@@ -11,19 +11,13 @@
 
 /**
  * Tests module overrides of configuration using event subscribers.
+ *
+ * @group config
  */
 class ConfigModuleOverridesTest extends DrupalUnitTestBase {
 
   public static $modules = array('system', 'config', 'config_override');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Module overrides',
-      'description' => 'Tests that modules can override configuration with event subscribers.',
-      'group' => 'Configuration',
-    );
-  }
-
   public function testSimpleModuleOverrides() {
     $GLOBALS['config_test_run_module_overrides'] = TRUE;
     $name = 'system.site';
diff --git a/core/modules/config/src/Tests/ConfigOtherModuleTest.php b/core/modules/config/src/Tests/ConfigOtherModuleTest.php
index 9ba92da..d292715 100644
--- a/core/modules/config/src/Tests/ConfigOtherModuleTest.php
+++ b/core/modules/config/src/Tests/ConfigOtherModuleTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests default configuration provided by a module that does not own it.
+ *
+ * @group config
  */
 class ConfigOtherModuleTest extends WebTestBase {
 
@@ -19,14 +21,6 @@ class ConfigOtherModuleTest extends WebTestBase {
    */
   protected $moduleHandler;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Default configuration owner',
-      'description' => 'Tests default configuration provided by a module that does not own it.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Sets up the module handler for enabling and disabling modules.
    */
diff --git a/core/modules/config/src/Tests/ConfigOverrideTest.php b/core/modules/config/src/Tests/ConfigOverrideTest.php
index 7359a35..e557298 100644
--- a/core/modules/config/src/Tests/ConfigOverrideTest.php
+++ b/core/modules/config/src/Tests/ConfigOverrideTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests configuration overrides via $config in settings.php.
+ *
+ * @group config
  */
 class ConfigOverrideTest extends DrupalUnitTestBase {
 
@@ -21,14 +23,6 @@ class ConfigOverrideTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'config_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration overrides',
-      'description' => 'Tests configuration overrides via $config in settings.php.',
-      'group' => 'Configuration',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->copyConfig($this->container->get('config.storage'), $this->container->get('config.storage.staging'));
diff --git a/core/modules/config/src/Tests/ConfigOverridesPriorityTest.php b/core/modules/config/src/Tests/ConfigOverridesPriorityTest.php
index 6deab96..c9a3add 100644
--- a/core/modules/config/src/Tests/ConfigOverridesPriorityTest.php
+++ b/core/modules/config/src/Tests/ConfigOverridesPriorityTest.php
@@ -11,20 +11,15 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests module overrides of configuration using event subscribers.
+ * Tests that language, module and settings.php are applied in the correct
+ * order.
+ *
+ * @group config
  */
 class ConfigOverridesPriorityTest extends DrupalUnitTestBase {
 
   public static $modules = array('system', 'config', 'config_override', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Override priority',
-      'description' => 'Tests that language, module and settings.php are applied in the correct order.',
-      'group' => 'Configuration',
-    );
-  }
-
   public function testOverridePriorities() {
     $GLOBALS['config_test_run_module_overrides'] = FALSE;
 
diff --git a/core/modules/config/src/Tests/ConfigSchemaTest.php b/core/modules/config/src/Tests/ConfigSchemaTest.php
index 3752800..f330a8b 100644
--- a/core/modules/config/src/Tests/ConfigSchemaTest.php
+++ b/core/modules/config/src/Tests/ConfigSchemaTest.php
@@ -15,6 +15,8 @@
 
 /**
  * Tests schema for configuration objects.
+ *
+ * @group config
  */
 class ConfigSchemaTest extends DrupalUnitTestBase {
 
@@ -25,14 +27,6 @@ class ConfigSchemaTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'language', 'locale', 'field', 'image', 'config_schema_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration schema',
-      'description' => 'Tests Metadata for configuration objects.',
-      'group' => 'Configuration',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installConfig(array('system', 'image', 'config_schema_test'));
diff --git a/core/modules/config/src/Tests/ConfigSingleImportExportTest.php b/core/modules/config/src/Tests/ConfigSingleImportExportTest.php
index 7eb4bff..5609f8f 100644
--- a/core/modules/config/src/Tests/ConfigSingleImportExportTest.php
+++ b/core/modules/config/src/Tests/ConfigSingleImportExportTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the user interface for importing/exporting a single configuration.
+ *
+ * @group config
  */
 class ConfigSingleImportExportTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class ConfigSingleImportExportTest extends WebTestBase {
    */
   public static $modules = array('config', 'config_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration Single Import/Export UI',
-      'description' => 'Tests the user interface for importing/exporting a single configuration.',
-      'group' => 'Configuration',
-    );
-  }
-
   /**
    * Tests importing a single configuration file.
    */
diff --git a/core/modules/config/src/Tests/ConfigSnapshotTest.php b/core/modules/config/src/Tests/ConfigSnapshotTest.php
index 51ca8c9..833f6be 100644
--- a/core/modules/config/src/Tests/ConfigSnapshotTest.php
+++ b/core/modules/config/src/Tests/ConfigSnapshotTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests config snapshot creation and updating.
+ *
+ * @group config
  */
 class ConfigSnapshotTest extends DrupalUnitTestBase {
 
@@ -22,14 +24,6 @@ class ConfigSnapshotTest extends DrupalUnitTestBase {
    */
   public static $modules = array('config_test', 'system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Snapshot functionality',
-      'description' => 'Config snapshot creation and updating.',
-      'group' => 'Configuration',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     // Update the config snapshot. This allows the parent::setUp() to write
diff --git a/core/modules/config/src/Tests/DefaultConfigTest.php b/core/modules/config/src/Tests/DefaultConfigTest.php
index 265461b..409fc01 100644
--- a/core/modules/config/src/Tests/DefaultConfigTest.php
+++ b/core/modules/config/src/Tests/DefaultConfigTest.php
@@ -13,7 +13,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests default configuration availability and type with configuration schema.
+ * Tests that default configuration provided by all modules matches schema.
+ *
+ * @group config
  */
 class DefaultConfigTest extends WebTestBase {
 
@@ -27,17 +29,6 @@ class DefaultConfigTest extends WebTestBase {
   public static $modules = array('config_test');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Default configuration',
-      'description' => 'Tests that default configuration provided by all modules matches schema.',
-      'group' => 'Configuration',
-    );
-  }
-
-  /**
    * Tests default configuration data type.
    */
   public function testDefaultConfig() {
diff --git a/core/modules/config/src/Tests/SchemaCheckTraitTest.php b/core/modules/config/src/Tests/SchemaCheckTraitTest.php
index 3b5793a..451392d 100644
--- a/core/modules/config/src/Tests/SchemaCheckTraitTest.php
+++ b/core/modules/config/src/Tests/SchemaCheckTraitTest.php
@@ -12,7 +12,9 @@
 
 
 /**
- * Tests \Drupal\Core\Config\Schema\SchemaCheckTrait.
+ * Tests the functionality of SchemaCheckTrait.
+ *
+ * @group config
  */
 class SchemaCheckTraitTest extends KernelTestBase {
   use SchemaCheckTrait;
@@ -34,17 +36,6 @@ class SchemaCheckTraitTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'SchemaCheckTrait test',
-      'description' => 'Tests the functionality of SchemaCheckTrait.',
-      'group' => 'Configuration',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $this->installConfig(array('config_test', 'config_schema_test'));
diff --git a/core/modules/config/src/Tests/Storage/CachedStorageTest.php b/core/modules/config/src/Tests/Storage/CachedStorageTest.php
index 766d013..bd02b7d 100644
--- a/core/modules/config/src/Tests/Storage/CachedStorageTest.php
+++ b/core/modules/config/src/Tests/Storage/CachedStorageTest.php
@@ -14,6 +14,8 @@
 
 /**
  * Tests CachedStorage operations.
+ *
+ * @group config
  */
 class CachedStorageTest extends ConfigStorageTestBase {
 
@@ -31,14 +33,6 @@ class CachedStorageTest extends ConfigStorageTestBase {
    */
   protected $filestorage;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CachedStorage operations',
-      'description' => 'Tests CachedStorage operations.',
-      'group' => 'Configuration',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->filestorage = new FileStorage($this->configDirectories[CONFIG_ACTIVE_DIRECTORY]);
diff --git a/core/modules/config/src/Tests/Storage/DatabaseStorageTest.php b/core/modules/config/src/Tests/Storage/DatabaseStorageTest.php
index 7dbf17b..3a7c176 100644
--- a/core/modules/config/src/Tests/Storage/DatabaseStorageTest.php
+++ b/core/modules/config/src/Tests/Storage/DatabaseStorageTest.php
@@ -11,16 +11,10 @@
 
 /**
  * Tests DatabaseStorage operations.
+ *
+ * @group config
  */
 class DatabaseStorageTest extends ConfigStorageTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'DatabaseStorage operations',
-      'description' => 'Tests DatabaseStorage operations.',
-      'group' => 'Configuration',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/config/src/Tests/Storage/FileStorageTest.php b/core/modules/config/src/Tests/Storage/FileStorageTest.php
index 5b72508..4aadad5 100644
--- a/core/modules/config/src/Tests/Storage/FileStorageTest.php
+++ b/core/modules/config/src/Tests/Storage/FileStorageTest.php
@@ -12,16 +12,10 @@
 
 /**
  * Tests FileStorage operations.
+ *
+ * @group config
  */
 class FileStorageTest extends ConfigStorageTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'FileStorage operations',
-      'description' => 'Tests FileStorage operations.',
-      'group' => 'Configuration',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->storage = new FileStorage($this->configDirectories[CONFIG_ACTIVE_DIRECTORY]);
diff --git a/core/modules/config/tests/src/Menu/ConfigLocalTasksTest.php b/core/modules/config/tests/src/Menu/ConfigLocalTasksTest.php
index 627f61e..f2e49a1 100644
--- a/core/modules/config/tests/src/Menu/ConfigLocalTasksTest.php
+++ b/core/modules/config/tests/src/Menu/ConfigLocalTasksTest.php
@@ -12,19 +12,10 @@
 /**
  * Tests existence of config local tasks.
  *
- * @group Drupal
  * @group config
  */
 class ConfigLocalTasksTest extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Config local tasks test',
-      'description' => 'Test existence of config local tasks.',
-      'group' => 'config',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array('config' => 'core/modules/config');
     parent::setUp();
diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationFormTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationFormTest.php
index c5bce3f..f2d6470 100644
--- a/core/modules/config_translation/src/Tests/ConfigTranslationFormTest.php
+++ b/core/modules/config_translation/src/Tests/ConfigTranslationFormTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests for altering configuration translation forms.
+ *
+ * @group config_translation
  */
 class ConfigTranslationFormTest extends WebTestBase {
 
@@ -36,14 +38,6 @@ class ConfigTranslationFormTest extends WebTestBase {
    */
   protected $langcode;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration Translation forms',
-      'description' => 'Test form altering of configuration translation forms',
-      'group' => 'Configuration Translation',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationListUiTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationListUiTest.php
index 116275b..6618503 100644
--- a/core/modules/config_translation/src/Tests/ConfigTranslationListUiTest.php
+++ b/core/modules/config_translation/src/Tests/ConfigTranslationListUiTest.php
@@ -12,8 +12,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for listings that should have translate operation, except views.
+ * Visit all lists.
  *
+ * @group config_translation
  * @see \Drupal\config_translation\Tests\ConfigTranslationViewListUiTest
  */
 class ConfigTranslationListUiTest extends WebTestBase {
@@ -39,14 +40,6 @@ class ConfigTranslationListUiTest extends WebTestBase {
     'toolbar',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration Translation lists',
-      'description' => 'Visit all lists.',
-      'group' => 'Configuration Translation',
-    );
-  }
-
   /**
    * Admin user with all needed permissions.
    *
diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationOverviewTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationOverviewTest.php
index 59a2999..38c0644 100644
--- a/core/modules/config_translation/src/Tests/ConfigTranslationOverviewTest.php
+++ b/core/modules/config_translation/src/Tests/ConfigTranslationOverviewTest.php
@@ -12,7 +12,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for the Configuration Translation pages.
+ * Translate settings and entities to various languages.
+ *
+ * @group config_translation
  */
 class ConfigTranslationOverviewTest extends WebTestBase {
 
@@ -37,14 +39,6 @@ class ConfigTranslationOverviewTest extends WebTestBase {
    */
   protected $localeStorage;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration Translation Overview',
-      'description' => 'Translate settings and entities to various languages',
-      'group' => 'Configuration Translation',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $permissions = array(
diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php
index 08e28e3..bf2c0db 100644
--- a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php
+++ b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php
@@ -15,7 +15,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for the Language list configuration forms.
+ * Translate settings and entities to various languages.
+ *
+ * @group config_translation
  */
 class ConfigTranslationUiTest extends WebTestBase {
 
@@ -54,14 +56,6 @@ class ConfigTranslationUiTest extends WebTestBase {
    */
   protected $localeStorage;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration Translation',
-      'description' => 'Translate settings and entities to various languages',
-      'group' => 'Configuration Translation',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $translator_permissions = array(
diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationUiThemeTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationUiThemeTest.php
index b51cee3..250570c 100644
--- a/core/modules/config_translation/src/Tests/ConfigTranslationUiThemeTest.php
+++ b/core/modules/config_translation/src/Tests/ConfigTranslationUiThemeTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for the Language list configuration forms.
+ * Verifies theme configuration translation settings.
+ *
+ * @group config_translation
  */
 class ConfigTranslationUiThemeTest extends WebTestBase {
 
@@ -36,14 +38,6 @@ class ConfigTranslationUiThemeTest extends WebTestBase {
    */
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme Configuration Translation',
-      'description' => 'Verifies theme configuration translation settings.',
-      'group' => 'Configuration Translation',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationViewListUiTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationViewListUiTest.php
index a4982e10..79e5a99 100644
--- a/core/modules/config_translation/src/Tests/ConfigTranslationViewListUiTest.php
+++ b/core/modules/config_translation/src/Tests/ConfigTranslationViewListUiTest.php
@@ -10,7 +10,9 @@
 use Drupal\views_ui\Tests\UITestBase;
 
 /**
- * Tests for the views_ui module that should have translate operation.
+ * Visit view list and test if translate is available.
+ *
+ * @group config_translation
  */
 class ConfigTranslationViewListUiTest extends UITestBase {
 
@@ -40,14 +42,6 @@ public function setUp() {
     $this->drupalLogin($this->drupalCreateUser($permissions));
   }
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration Translation view list',
-      'description' => 'Visit view list and test if translate is available.',
-      'group' => 'Configuration Translation',
-    );
-  }
-
   /**
    * Tests views_ui list to see if translate link is added to operations.
    */
diff --git a/core/modules/config_translation/tests/src/ConfigEntityMapperTest.php b/core/modules/config_translation/tests/src/ConfigEntityMapperTest.php
index bdc04f8..d23c339 100644
--- a/core/modules/config_translation/tests/src/ConfigEntityMapperTest.php
+++ b/core/modules/config_translation/tests/src/ConfigEntityMapperTest.php
@@ -12,10 +12,9 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests ConfigEntityMapper.
+ * Tests the functionality provided by the configuration entity mapper.
  *
- * @group Drupal
- * @group Config_translation
+ * @group config_translation
  */
 class ConfigEntityMapperTest extends UnitTestCase {
 
@@ -47,17 +46,6 @@ class ConfigEntityMapperTest extends UnitTestCase {
    */
   protected $routeProvider;
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration entity mapper',
-      'description' => 'Tests the functionality provided by the configuration entity mapper.',
-      'group' => 'Configuration Translation',
-    );
-  }
-
   public function setUp() {
     $this->entityManager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
 
diff --git a/core/modules/config_translation/tests/src/ConfigMapperManagerTest.php b/core/modules/config_translation/tests/src/ConfigMapperManagerTest.php
index 69be476..d7c47cb 100644
--- a/core/modules/config_translation/tests/src/ConfigMapperManagerTest.php
+++ b/core/modules/config_translation/tests/src/ConfigMapperManagerTest.php
@@ -16,10 +16,9 @@
 use Drupal\Core\TypedData\DataDefinitionInterface;
 
 /**
- * Tests ConfigMapperManager.
+ * Tests the functionality provided by configuration translation mapper manager.
  *
- * @group Drupal
- * @group Config_translation
+ * @group config_translation
  */
 class ConfigMapperManagerTest extends UnitTestCase {
 
@@ -37,17 +36,6 @@ class ConfigMapperManagerTest extends UnitTestCase {
    */
   protected $typedConfigManager;
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration translation mapper manager',
-      'description' => 'Tests the functionality provided by configuration translation mapper manager.',
-      'group' => 'Configuration Translation',
-    );
-  }
-
   public function setUp() {
     $language = new Language(array('id' => 'en'));
     $language_manager = $this->getMock('Drupal\Core\Language\LanguageManagerInterface');
diff --git a/core/modules/config_translation/tests/src/ConfigNamesMapperTest.php b/core/modules/config_translation/tests/src/ConfigNamesMapperTest.php
index 41a6b1a..46cd59c 100644
--- a/core/modules/config_translation/tests/src/ConfigNamesMapperTest.php
+++ b/core/modules/config_translation/tests/src/ConfigNamesMapperTest.php
@@ -15,10 +15,9 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests ConfigNamesMapper.
+ * Tests the functionality provided by the configuration names mapper.
  *
- * @group Drupal
- * @group Config_translation
+ * @group config_translation
  */
 class ConfigNamesMapperTest extends UnitTestCase {
 
@@ -66,17 +65,6 @@ class ConfigNamesMapperTest extends UnitTestCase {
    */
   protected $routeProvider;
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration names mapper',
-      'description' => 'Tests the functionality provided by the configuration names mapper.',
-      'group' => 'Configuration Translation',
-    );
-  }
-
   public function setUp() {
     $this->routeProvider = $this->getMock('Drupal\Core\Routing\RouteProviderInterface');
 
diff --git a/core/modules/contact/src/Tests/ContactAuthenticatedUserTest.php b/core/modules/contact/src/Tests/ContactAuthenticatedUserTest.php
index 059923f..d343f8d 100644
--- a/core/modules/contact/src/Tests/ContactAuthenticatedUserTest.php
+++ b/core/modules/contact/src/Tests/ContactAuthenticatedUserTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the contact form for authenticated users.
+ * Tests contact form textfields are present if authenticated.
+ *
+ * @group contact
  */
 class ContactAuthenticatedUserTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ContactAuthenticatedUserTest extends WebTestBase {
    */
   public static $modules = array('contact');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Contact form textfields',
-      'description' => 'Tests contact form textfields are present if authenticated.',
-      'group' => 'Contact',
-    );
-  }
-
   /**
    * Tests that name and email fields are not present for authenticated users.
    */
diff --git a/core/modules/contact/src/Tests/ContactPersonalTest.php b/core/modules/contact/src/Tests/ContactPersonalTest.php
index dd6c35f..4be01ac 100644
--- a/core/modules/contact/src/Tests/ContactPersonalTest.php
+++ b/core/modules/contact/src/Tests/ContactPersonalTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the personal contact form.
+ * Tests personal contact form functionality.
+ *
+ * @group contact
  */
 class ContactPersonalTest extends WebTestBase {
 
@@ -43,14 +45,6 @@ class ContactPersonalTest extends WebTestBase {
    */
   private $contact_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Personal contact form',
-      'description' => 'Tests personal contact form functionality.',
-      'group' => 'Contact',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/contact/src/Tests/ContactSitewideTest.php b/core/modules/contact/src/Tests/ContactSitewideTest.php
index 17c3f3e..a89e7a8 100644
--- a/core/modules/contact/src/Tests/ContactSitewideTest.php
+++ b/core/modules/contact/src/Tests/ContactSitewideTest.php
@@ -12,7 +12,9 @@
 use Drupal\Core\Entity\EntityTypeInterface;
 
 /**
- * Tests the site-wide contact form.
+ * Tests site-wide contact form functionality.
+ *
+ * @group contact
  */
 class ContactSitewideTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class ContactSitewideTest extends WebTestBase {
    */
   public static $modules = array('text', 'contact', 'field_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Site-wide contact form',
-      'description' => 'Tests site-wide contact form functionality.',
-      'group' => 'Contact',
-    );
-  }
-
   /**
    * Tests configuration options and the site-wide contact form.
    */
diff --git a/core/modules/contact/src/Tests/MessageEntityTest.php b/core/modules/contact/src/Tests/MessageEntityTest.php
index 489c5de..e27d23c 100644
--- a/core/modules/contact/src/Tests/MessageEntityTest.php
+++ b/core/modules/contact/src/Tests/MessageEntityTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the message entity class.
  *
+ * @group contact
  * @see \Drupal\contact\Entity\Message
  */
 class MessageEntityTest extends DrupalUnitTestBase {
@@ -23,14 +24,6 @@ class MessageEntityTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'contact', 'field', 'user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Message entity tests',
-      'description' => 'Tests the message entity class.',
-      'group' => 'Contact'
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->installConfig(array('contact'));
diff --git a/core/modules/contact/src/Tests/Views/ContactFieldsTest.php b/core/modules/contact/src/Tests/Views/ContactFieldsTest.php
index 4308ca7..e6e70ad 100644
--- a/core/modules/contact/src/Tests/Views/ContactFieldsTest.php
+++ b/core/modules/contact/src/Tests/Views/ContactFieldsTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests which checks that no fieldapi fields are added on contact.
+ *
+ * @group contact
  */
 class ContactFieldsTest extends ViewTestBase {
 
@@ -29,14 +31,6 @@ class ContactFieldsTest extends ViewTestBase {
    */
   protected $field;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Contact: Field views data',
-      'description' => 'Tests which checks that no fieldapi fields are added on contact.',
-      'group' => 'Views module integration',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/contact/src/Tests/Views/ContactLinkTest.php b/core/modules/contact/src/Tests/Views/ContactLinkTest.php
index 1bae3d4..bb7fb91 100644
--- a/core/modules/contact/src/Tests/Views/ContactLinkTest.php
+++ b/core/modules/contact/src/Tests/Views/ContactLinkTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the contact link field.
  *
+ * @group contact
  * @see \Drupal\contact\Plugin\views\field\ContactLink.
  */
 class ContactLinkTest extends ViewTestBase {
@@ -38,14 +39,6 @@ class ContactLinkTest extends ViewTestBase {
    */
   public static $testViews = array('test_contact_link');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Contact: Link Field',
-      'description' => 'Tests the contact link field.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/content_translation/src/Tests/ContentTestTranslationUITest.php b/core/modules/content_translation/src/Tests/ContentTestTranslationUITest.php
index 3b836b9..2120885 100644
--- a/core/modules/content_translation/src/Tests/ContentTestTranslationUITest.php
+++ b/core/modules/content_translation/src/Tests/ContentTestTranslationUITest.php
@@ -8,7 +8,9 @@
 namespace Drupal\content_translation\Tests;
 
 /**
- * Tests the Entity Test Translation UI.
+ * Tests the test content translation UI with the test entity.
+ *
+ * @group content_translation
  */
 class ContentTestTranslationUITest extends ContentTranslationUITest {
 
@@ -19,14 +21,6 @@ class ContentTestTranslationUITest extends ContentTranslationUITest {
    */
   public static $modules = array('language', 'content_translation', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Test translation UI',
-      'description' => 'Tests the test content translation UI with the test entity.',
-      'group' => 'Content Translation UI',
-    );
-  }
-
   /**
    * Overrides \Drupal\simpletest\WebTestBase::setUp().
    */
diff --git a/core/modules/content_translation/src/Tests/ContentTranslationContextualLinksTest.php b/core/modules/content_translation/src/Tests/ContentTranslationContextualLinksTest.php
index 94972f2..ab821d2 100644
--- a/core/modules/content_translation/src/Tests/ContentTranslationContextualLinksTest.php
+++ b/core/modules/content_translation/src/Tests/ContentTranslationContextualLinksTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests that contextual links are available for content translation.
+ *
+ * @group content_translation
  */
 class ContentTranslationContextualLinksTest extends WebTestBase {
 
@@ -51,14 +53,6 @@ class ContentTranslationContextualLinksTest extends WebTestBase {
    */
   protected $profile = 'testing';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Content translation contextual links',
-      'description' => 'Tests contextual links for content translation.',
-      'group' => 'Content Translation UI',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php b/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php
index 0db6520..84b85f0 100644
--- a/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php
+++ b/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php
@@ -13,7 +13,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Entity Test Translation UI.
+ * Tests the content translation settings UI.
+ *
+ * @group content_translation
  */
 class ContentTranslationSettingsTest extends WebTestBase {
 
@@ -24,14 +26,6 @@ class ContentTranslationSettingsTest extends WebTestBase {
    */
   public static $modules = array('language', 'content_translation', 'node', 'comment', 'field_ui', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Content Translation settings',
-      'description' => 'Tests the content translation settings UI.',
-      'group' => 'Content Translation UI',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php b/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php
index 5749baf..2e326a0 100644
--- a/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php
+++ b/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php
@@ -10,7 +10,9 @@
 use Drupal\Core\Entity\EntityInterface;
 
 /**
- * Tests the Content Translation image field synchronization capability.
+ * Tests the field synchronization behavior for the image field.
+ *
+ * @group content_translation
  */
 class ContentTranslationSyncImageTest extends ContentTranslationTestBase {
 
@@ -35,14 +37,6 @@ class ContentTranslationSyncImageTest extends ContentTranslationTestBase {
    */
   public static $modules = array('language', 'content_translation', 'entity_test', 'image', 'field_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image field synchronization',
-      'description' => 'Tests the field synchronization behavior for the image field.',
-      'group' => 'Content Translation UI',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->files = $this->drupalGetTestFiles('image');
diff --git a/core/modules/content_translation/src/Tests/ContentTranslationSyncUnitTest.php b/core/modules/content_translation/src/Tests/ContentTranslationSyncUnitTest.php
index 509287e..f06a83b 100644
--- a/core/modules/content_translation/src/Tests/ContentTranslationSyncUnitTest.php
+++ b/core/modules/content_translation/src/Tests/ContentTranslationSyncUnitTest.php
@@ -11,7 +11,9 @@
 use Drupal\content_translation\FieldTranslationSynchronizer;
 
 /**
- * Tests the Content Translation field synchronization algorithm.
+ * Tests the field synchronization logic.
+ *
+ * @group content_translation
  */
 class ContentTranslationSyncUnitTest extends DrupalUnitTestBase {
 
@@ -59,14 +61,6 @@ class ContentTranslationSyncUnitTest extends DrupalUnitTestBase {
 
   public static $modules = array('language', 'content_translation');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field synchronization',
-      'description' => 'Tests the field synchronization logic.',
-      'group' => 'Content Translation UI',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/content_translation/src/Tests/ContentTranslationWorkflowsTest.php b/core/modules/content_translation/src/Tests/ContentTranslationWorkflowsTest.php
index 06674b8..89e43b6 100644
--- a/core/modules/content_translation/src/Tests/ContentTranslationWorkflowsTest.php
+++ b/core/modules/content_translation/src/Tests/ContentTranslationWorkflowsTest.php
@@ -11,7 +11,9 @@
 use Drupal\user\UserInterface;
 
 /**
- * Tests content translation workflows.
+ * Tests the content translation workflows for the test entity.
+ *
+ * @group content_translation
  */
 class ContentTranslationWorkflowsTest extends ContentTranslationTestBase {
 
@@ -29,14 +31,6 @@ class ContentTranslationWorkflowsTest extends ContentTranslationTestBase {
    */
   public static $modules = array('language', 'content_translation', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Test translation workflows',
-      'description' => 'Tests the content translation workflows for the test entity.',
-      'group' => 'Content Translation UI',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->setupEntity();
diff --git a/core/modules/content_translation/src/Tests/Views/ContentTranslationViewsUITest.php b/core/modules/content_translation/src/Tests/Views/ContentTranslationViewsUITest.php
index 5dbe880..dc2328b 100644
--- a/core/modules/content_translation/src/Tests/Views/ContentTranslationViewsUITest.php
+++ b/core/modules/content_translation/src/Tests/Views/ContentTranslationViewsUITest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the views UI when content_translation is enabled.
+ *
+ * @group content_translation
  */
 class ContentTranslationViewsUITest extends UITestBase {
 
@@ -28,14 +30,6 @@ class ContentTranslationViewsUITest extends UITestBase {
    */
   public static $modules = array('content_translation');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Content Translation: Views UI',
-      'description' => 'Tests the views UI when content translation is enabled.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the views UI.
    */
diff --git a/core/modules/content_translation/src/Tests/Views/TranslationLinkTest.php b/core/modules/content_translation/src/Tests/Views/TranslationLinkTest.php
index e1b939c..168d513 100644
--- a/core/modules/content_translation/src/Tests/Views/TranslationLinkTest.php
+++ b/core/modules/content_translation/src/Tests/Views/TranslationLinkTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the content translation overview link field handler.
  *
+ * @group content_translation
  * @see \Drupal\content_translation\Plugin\views\field\TranslationLink
  */
 class TranslationLinkTest extends ContentTranslationTestBase {
@@ -32,14 +33,6 @@ class TranslationLinkTest extends ContentTranslationTestBase {
    */
   public static $modules = array('content_translation_test_views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Content Translation: Link field',
-      'description' => 'Tests the content translation overview link field handler.',
-      'group' => 'Views module integration',
-    );
-  }
-
   function setUp() {
     // @todo Use entity_type once it is has multilingual Views integration.
     $this->entityTypeId = 'user';
diff --git a/core/modules/content_translation/tests/src/Menu/ContentTranslationLocalTasksTest.php b/core/modules/content_translation/tests/src/Menu/ContentTranslationLocalTasksTest.php
index 057a9a4..7df4e30 100644
--- a/core/modules/content_translation/tests/src/Menu/ContentTranslationLocalTasksTest.php
+++ b/core/modules/content_translation/tests/src/Menu/ContentTranslationLocalTasksTest.php
@@ -10,21 +10,12 @@
 use Drupal\Tests\Core\Menu\LocalTaskIntegrationTest;
 
 /**
- * Tests existence of block local tasks.
+ * Tests content translation local tasks.
  *
- * @group Drupal
- * @group Block
+ * @group content_translation
  */
 class ContentTranslationLocalTasksTest extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Content translation local tasks test',
-      'description' => 'Test content translation local tasks.',
-      'group' => 'Content Translation',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array(
       'content_translation' => 'core/modules/content_translation',
diff --git a/core/modules/contextual/src/Tests/ContextualDynamicContextTest.php b/core/modules/contextual/src/Tests/ContextualDynamicContextTest.php
index fd9368a..af16592 100644
--- a/core/modules/contextual/src/Tests/ContextualDynamicContextTest.php
+++ b/core/modules/contextual/src/Tests/ContextualDynamicContextTest.php
@@ -12,7 +12,10 @@
 use Drupal\Core\Template\Attribute;
 
 /**
- * Tests accessible links after inaccessible links on dynamic context.
+ * Tests if contextual links are showing on the front page depending on
+ * permissions.
+ *
+ * @group contextual
  */
 class ContextualDynamicContextTest extends WebTestBase {
 
@@ -23,14 +26,6 @@ class ContextualDynamicContextTest extends WebTestBase {
    */
   public static $modules = array('contextual', 'node', 'views', 'views_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Contextual links on node lists',
-      'description' => 'Tests if contextual links are showing on the front page depending on permissions.',
-      'group' => 'Contextual',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/contextual/src/Tests/ContextualUnitTest.php b/core/modules/contextual/src/Tests/ContextualUnitTest.php
index fcb3a03..aca3f60 100644
--- a/core/modules/contextual/src/Tests/ContextualUnitTest.php
+++ b/core/modules/contextual/src/Tests/ContextualUnitTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests _contextual_links_to_id() & _contextual_id_to_links().
+ * Tests all edge cases of converting from #contextual_links to ids and vice
+ * versa.
+ *
+ * @group contextual
  */
 class ContextualUnitTest extends DrupalUnitTestBase {
 
@@ -21,14 +24,6 @@ class ContextualUnitTest extends DrupalUnitTestBase {
    */
   public static $modules = array('contextual');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Conversion to and from "contextual id"s (for placeholders)',
-      'description' => 'Tests all edge cases of converting from #contextual_links to ids and vice versa.',
-      'group' => 'Contextual',
-    );
-  }
-
   /**
    * Provides testcases for testContextualLinksToId() and
    */
diff --git a/core/modules/datetime/src/Tests/DateTimeFieldTest.php b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
index 62b69cb..924bdc5 100644
--- a/core/modules/datetime/src/Tests/DateTimeFieldTest.php
+++ b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests Datetime field functionality.
+ *
+ * @group datetime
  */
 class DateTimeFieldTest extends WebTestBase {
 
@@ -37,14 +39,6 @@ class DateTimeFieldTest extends WebTestBase {
    */
   protected $instance;
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Datetime Field',
-      'description'  => 'Tests datetime field functionality.',
-      'group' => 'Datetime',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/datetime/src/Tests/DateTimeItemTest.php b/core/modules/datetime/src/Tests/DateTimeItemTest.php
index 79f0781..d2ee54a 100644
--- a/core/modules/datetime/src/Tests/DateTimeItemTest.php
+++ b/core/modules/datetime/src/Tests/DateTimeItemTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the new entity API for the date field type.
+ *
+ * @group datetime
  */
 class DateTimeItemTest extends FieldUnitTestBase {
 
@@ -23,14 +25,6 @@ class DateTimeItemTest extends FieldUnitTestBase {
    */
   public static $modules = array('datetime');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Date field item',
-      'description' => 'Tests the new entity API for the Date field type.',
-      'group' => 'Field types',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/dblog/src/Tests/DbLogTest.php b/core/modules/dblog/src/Tests/DbLogTest.php
index a3dcf7d..70b8271 100644
--- a/core/modules/dblog/src/Tests/DbLogTest.php
+++ b/core/modules/dblog/src/Tests/DbLogTest.php
@@ -12,7 +12,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests logging messages to the database.
+ * Generate events and verify dblog entries; verify user access to log reports
+ * based on persmissions.
+ *
+ * @group dblog
  */
 class DbLogTest extends WebTestBase {
 
@@ -37,14 +40,6 @@ class DbLogTest extends WebTestBase {
    */
   protected $any_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'DbLog functionality',
-      'description' => 'Generate events and verify dblog entries; verify user access to log reports based on persmissions.',
-      'group' => 'DbLog',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/dblog/src/Tests/Views/ViewsIntegrationTest.php b/core/modules/dblog/src/Tests/Views/ViewsIntegrationTest.php
index 818cfd3..de7405f 100644
--- a/core/modules/dblog/src/Tests/Views/ViewsIntegrationTest.php
+++ b/core/modules/dblog/src/Tests/Views/ViewsIntegrationTest.php
@@ -15,6 +15,8 @@
 
 /**
  * Tests the views integration of dblog module.
+ *
+ * @group dblog
  */
 class ViewsIntegrationTest extends ViewUnitTestBase {
 
@@ -32,14 +34,6 @@ class ViewsIntegrationTest extends ViewUnitTestBase {
    */
   public static $modules = array('dblog_test_views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Dblog Integration',
-      'description' => 'Tests the views integration of dblog module.',
-      'group' => 'Views module integration'
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/editor/src/Tests/EditorAdminTest.php b/core/modules/editor/src/Tests/EditorAdminTest.php
index 8d95a8b..2a0a149 100644
--- a/core/modules/editor/src/Tests/EditorAdminTest.php
+++ b/core/modules/editor/src/Tests/EditorAdminTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests administration of text editors.
+ *
+ * @group editor
  */
 class EditorAdminTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class EditorAdminTest extends WebTestBase {
    */
   public static $modules = array('filter', 'editor');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Text editor administration',
-      'description' => 'Tests administration of text editors.',
-      'group' => 'Text Editor',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/editor/src/Tests/EditorFileReferenceFilterTest.php b/core/modules/editor/src/Tests/EditorFileReferenceFilterTest.php
index 3474613..214f1e3 100644
--- a/core/modules/editor/src/Tests/EditorFileReferenceFilterTest.php
+++ b/core/modules/editor/src/Tests/EditorFileReferenceFilterTest.php
@@ -11,7 +11,9 @@
 use Drupal\filter\FilterBag;
 
 /**
- * Tests for the EditorFileReference filter.
+ * Tests Editor module's file reference filter.
+ *
+ * @group editor
  */
 class EditorFileReferenceFilterTest extends KernelTestBase {
 
@@ -30,17 +32,6 @@ class EditorFileReferenceFilterTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Editor File Reference filter',
-      'description' => "Tests Editor module's file reference filter.",
-      'group' => 'Text Editor',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $this->installConfig(array('system'));
diff --git a/core/modules/editor/src/Tests/EditorFileUsageTest.php b/core/modules/editor/src/Tests/EditorFileUsageTest.php
index 184d849..c9721d9 100644
--- a/core/modules/editor/src/Tests/EditorFileUsageTest.php
+++ b/core/modules/editor/src/Tests/EditorFileUsageTest.php
@@ -10,7 +10,9 @@
 use Drupal\system\Tests\Entity\EntityUnitTestBase;
 
 /**
- * Unit tests for editor.module's entity hooks to track file usage.
+ * Tests tracking of file usage by the Text Editor module.
+ *
+ * @group editor
  */
 class EditorFileUsageTest extends EntityUnitTestBase {
 
@@ -21,14 +23,6 @@ class EditorFileUsageTest extends EntityUnitTestBase {
    */
   public static $modules = array('editor', 'editor_test', 'node', 'file');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Text Editor file usage',
-      'description' => 'Tests tracking of file usage by the Text Editor module.',
-      'group' => 'Text Editor',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installEntitySchema('node');
diff --git a/core/modules/editor/src/Tests/EditorLoadingTest.php b/core/modules/editor/src/Tests/EditorLoadingTest.php
index 94b1b88..9a2038f 100644
--- a/core/modules/editor/src/Tests/EditorLoadingTest.php
+++ b/core/modules/editor/src/Tests/EditorLoadingTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests loading of text editors.
+ *
+ * @group editor
  */
 class EditorLoadingTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class EditorLoadingTest extends WebTestBase {
    */
   public static $modules = array('filter', 'editor', 'editor_test', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Text editor loading',
-      'description' => 'Tests loading of text editors.',
-      'group' => 'Text Editor',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/editor/src/Tests/EditorManagerTest.php b/core/modules/editor/src/Tests/EditorManagerTest.php
index 51cd285..55f37da 100644
--- a/core/modules/editor/src/Tests/EditorManagerTest.php
+++ b/core/modules/editor/src/Tests/EditorManagerTest.php
@@ -11,7 +11,9 @@
 use Drupal\editor\Plugin\EditorManager;
 
 /**
- * Unit tests for the configurable text editor manager.
+ * Tests detection of text editors and correct generation of attachments.
+ *
+ * @group editor
  */
 class EditorManagerTest extends DrupalUnitTestBase {
 
@@ -29,14 +31,6 @@ class EditorManagerTest extends DrupalUnitTestBase {
    */
   protected $editorManager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Text editor manager',
-      'description' => 'Tests detection of text editors and correct generation of attachments.',
-      'group' => 'Text Editor',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/editor/src/Tests/EditorSecurityTest.php b/core/modules/editor/src/Tests/EditorSecurityTest.php
index ccac981..1c1a01b 100644
--- a/core/modules/editor/src/Tests/EditorSecurityTest.php
+++ b/core/modules/editor/src/Tests/EditorSecurityTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests XSS protection for content creators when using text editors.
+ *
+ * @group editor
  */
 class EditorSecurityTest extends WebTestBase {
 
@@ -44,14 +46,6 @@ class EditorSecurityTest extends WebTestBase {
    */
   public static $modules = array('filter', 'editor', 'editor_test', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Text editor security',
-      'description' => 'Tests XSS protection for content creators when using text editors.',
-      'group' => 'Text Editor',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php b/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php
index 74ef6fe..a0fca3a 100644
--- a/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php
+++ b/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests Quick Edit module integration endpoints.
+ *
+ * @group editor
  */
 class QuickEditIntegrationLoadingTest extends WebTestBase {
 
@@ -29,14 +31,6 @@ class QuickEditIntegrationLoadingTest extends WebTestBase {
    */
   protected static $basic_permissions = array('access content', 'create article content', 'use text format filtered_html', 'access contextual links');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'In-place text editor loading',
-      'description' => 'Tests Quick Edit module integration endpoints.',
-      'group' => 'Text Editor',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/editor/src/Tests/QuickEditIntegrationTest.php b/core/modules/editor/src/Tests/QuickEditIntegrationTest.php
index dcaf31d..f24704b 100644
--- a/core/modules/editor/src/Tests/QuickEditIntegrationTest.php
+++ b/core/modules/editor/src/Tests/QuickEditIntegrationTest.php
@@ -19,6 +19,8 @@
 
 /**
  * Tests Edit module integration (Editor module's inline editing support).
+ *
+ * @group editor
  */
 class QuickEditIntegrationTest extends QuickEditTestBase {
 
@@ -57,14 +59,6 @@ class QuickEditIntegrationTest extends QuickEditTestBase {
    */
   protected $field_name;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'In-place text editors (Quick Edit module integration)',
-      'description' => 'Tests Edit module integration (Editor module\'s inline editing support).',
-      'group' => 'Text Editor',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/editor/tests/src/EditorConfigEntityUnitTest.php b/core/modules/editor/tests/src/EditorConfigEntityUnitTest.php
index 9064172..c10e1ac 100644
--- a/core/modules/editor/tests/src/EditorConfigEntityUnitTest.php
+++ b/core/modules/editor/tests/src/EditorConfigEntityUnitTest.php
@@ -13,9 +13,7 @@
 
 /**
  * @coversDefaultClass \Drupal\editor\Entity\Editor
- *
- * @group Drupal
- * @group Config
+ * @group editor
  */
 class EditorConfigEntityUnitTest extends UnitTestCase {
 
@@ -71,17 +69,6 @@ class EditorConfigEntityUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\editor\Entity\Editor unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->editorId = $this->randomName();
     $this->entityTypeId = $this->randomName();
diff --git a/core/modules/editor/tests/src/EditorXssFilter/StandardTest.php b/core/modules/editor/tests/src/EditorXssFilter/StandardTest.php
index 7927eef..befefd5 100644
--- a/core/modules/editor/tests/src/EditorXssFilter/StandardTest.php
+++ b/core/modules/editor/tests/src/EditorXssFilter/StandardTest.php
@@ -11,12 +11,8 @@
 use Drupal\filter\Plugin\FilterInterface;
 
 /**
- * Tests the standard text editor XSS filter.
- *
- * @group Drupal
- * @group Editor
- *
- * @see \Drupal\editor\EditorXssFilter\Standard
+ * @coversDefaultClass \Drupal\editor\EditorXssFilter\Standard
+ * @group editor
  */
 class StandardTest extends UnitTestCase {
 
@@ -34,14 +30,6 @@ class StandardTest extends UnitTestCase {
    */
   protected $format;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Standard text editor XSS filter test',
-      'description' => 'Unit test of standard text editor XSS filter.',
-      'group' => 'Text Editor'
-    );
-  }
-
   protected function setUp() {
     $this->editorXssFilterClass = '\Drupal\editor\EditorXssFilter\Standard';
 
diff --git a/core/modules/entity/src/Tests/EntityDisplayModeTest.php b/core/modules/entity/src/Tests/EntityDisplayModeTest.php
index 16c55f5..583d114 100644
--- a/core/modules/entity/src/Tests/EntityDisplayModeTest.php
+++ b/core/modules/entity/src/Tests/EntityDisplayModeTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the entity display mode configuration entities.
+ * Tests the entity display modes UI.
+ *
+ * @group entity
  */
 class EntityDisplayModeTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class EntityDisplayModeTest extends WebTestBase {
    */
   public static $modules = array('entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity display modes UI',
-      'description' => 'Tests the entity display modes UI.',
-      'group' => 'Entity',
-    );
-  }
-
   /**
    * Tests the EntityViewMode user interface.
    */
diff --git a/core/modules/entity/src/Tests/EntityDisplayTest.php b/core/modules/entity/src/Tests/EntityDisplayTest.php
index f0c8e0c..d76d603 100644
--- a/core/modules/entity/src/Tests/EntityDisplayTest.php
+++ b/core/modules/entity/src/Tests/EntityDisplayTest.php
@@ -11,19 +11,13 @@
 
 /**
  * Tests the entity display configuration entities.
+ *
+ * @group entity
  */
 class EntityDisplayTest extends DrupalUnitTestBase {
 
   public static $modules = array('entity', 'field', 'entity_test', 'user', 'text', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity display configuration entities',
-      'description' => 'Tests the entity display configuration entities.',
-      'group' => 'Entity API',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->installConfig(array('field'));
diff --git a/core/modules/entity/src/Tests/EntityFormDisplayTest.php b/core/modules/entity/src/Tests/EntityFormDisplayTest.php
index 6caf775..32efcc2 100644
--- a/core/modules/entity/src/Tests/EntityFormDisplayTest.php
+++ b/core/modules/entity/src/Tests/EntityFormDisplayTest.php
@@ -11,19 +11,13 @@
 
 /**
  * Tests the entity display configuration entities.
+ *
+ * @group entity
  */
 class EntityFormDisplayTest extends DrupalUnitTestBase {
 
   public static $modules = array('entity', 'field', 'entity_test', 'user', 'text');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity form display configuration entities',
-      'description' => 'Tests the entity form display configuration entities.',
-      'group' => 'Entity API',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->installConfig(array('field'));
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php
index 60d55ba..348bf4a 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Entity Reference Admin UI.
+ * Tests for the administrative UI.
+ *
+ * @group entity_reference
  */
 class EntityReferenceAdminTest extends WebTestBase {
 
@@ -24,17 +26,6 @@ class EntityReferenceAdminTest extends WebTestBase {
    */
   public static $modules = array('node', 'field_ui', 'entity_reference', 'path');
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Reference admin UI',
-      'description' => 'Tests for the administrative UI.',
-      'group' => 'Entity Reference',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php
index 61e3308..ecdbeb6 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php
@@ -11,18 +11,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Entity Reference auto-creation feature.
+ * Tests creating new entity (e.g. taxonomy-term) from an autocomplete widget.
+ *
+ * @group entity_reference
  */
 class EntityReferenceAutoCreateTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Reference auto-create and autocomplete UI',
-      'description' => 'Tests creating new entity (e.g. taxonomy-term) from an autocomplete widget.',
-      'group' => 'Entity Reference',
-    );
-  }
-
   public static $modules = array('entity_reference', 'node');
 
   function setUp() {
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceAutocompleteTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceAutocompleteTest.php
index 1a3d934..3b2cbf7 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceAutocompleteTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceAutocompleteTest.php
@@ -16,7 +16,9 @@
 use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
 
 /**
- * Tests the autocomplete functionality of Entity Reference.
+ * Tests the autocomplete functionality.
+ *
+ * @group entity_reference
  */
 class EntityReferenceAutocompleteTest extends EntityUnitTestBase {
 
@@ -48,14 +50,6 @@ class EntityReferenceAutocompleteTest extends EntityUnitTestBase {
    */
   public static $modules = array('entity_reference', 'entity_reference_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Autocomplete',
-      'description' => 'Tests the autocomplete functionality.',
-      'group' => 'Entity Reference',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceFieldDefaultValueTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceFieldDefaultValueTest.php
index ff29c03..e65d6f9 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceFieldDefaultValueTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceFieldDefaultValueTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests entity reference field default values storage in CMI.
+ *
+ * @group entity_reference
  */
 class EntityReferenceFieldDefaultValueTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class EntityReferenceFieldDefaultValueTest extends WebTestBase {
    */
   public static $modules = array('entity_reference', 'field_ui', 'node', 'options');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Reference field default value',
-      'description' => 'Tests the entity reference field default values storage in CMI.',
-      'group' => 'Entity Reference',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceFieldTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceFieldTest.php
index d5357ba..7c157df 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceFieldTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceFieldTest.php
@@ -14,6 +14,8 @@
 
 /**
  * Tests for the entity reference field.
+ *
+ * @group entity_reference
  */
 class EntityReferenceFieldTest extends EntityUnitTestBase {
 
@@ -66,14 +68,6 @@ class EntityReferenceFieldTest extends EntityUnitTestBase {
    */
   public static $modules = array('entity_reference');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Reference field',
-      'description' => 'Tests the entity reference field.',
-      'group' => 'Entity Reference',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceFormatterTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceFormatterTest.php
index 61d0ee5..071f446 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceFormatterTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceFormatterTest.php
@@ -10,7 +10,9 @@
 use Drupal\system\Tests\Entity\EntityUnitTestBase;
 
 /**
- * Tests Entity Reference formatters.
+ * Tests the formatters functionality.
+ *
+ * @group entity_reference
  */
 class EntityReferenceFormatterTest extends EntityUnitTestBase {
 
@@ -49,14 +51,6 @@ class EntityReferenceFormatterTest extends EntityUnitTestBase {
    */
   public static $modules = array('entity_reference');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity reference formatters',
-      'description' => 'Tests the formatters functionality.',
-      'group' => 'Entity Reference',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceIntegrationTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceIntegrationTest.php
index cd6a7b5..cfe4042 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceIntegrationTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceIntegrationTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests various Entity reference UI components.
+ *
+ * @group entity_reference
  */
 class EntityReferenceIntegrationTest extends WebTestBase {
 
@@ -42,14 +44,6 @@ class EntityReferenceIntegrationTest extends WebTestBase {
    */
   public static $modules = array('config_test', 'entity_test', 'entity_reference', 'options');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity reference components (widgets, formatters, etc.)',
-      'description' => 'Tests for various Entity reference components.',
-      'group' => 'Entity Reference',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceItemTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceItemTest.php
index 8c81128..5e497fe 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceItemTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceItemTest.php
@@ -14,6 +14,8 @@
 
 /**
  * Tests the new entity API for the entity reference field type.
+ *
+ * @group entity_reference
  */
 class EntityReferenceItemTest extends FieldUnitTestBase {
 
@@ -38,14 +40,6 @@ class EntityReferenceItemTest extends FieldUnitTestBase {
    */
   protected $term;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Reference field item',
-      'description' => 'Tests using entity fields of the entity reference field type.',
-      'group' => 'Entity Reference',
-    );
-  }
-
   /**
    * Sets up the test.
    */
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceSelectionAccessTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceSelectionAccessTest.php
index 368c1d2..ae9b55a 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceSelectionAccessTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceSelectionAccessTest.php
@@ -14,18 +14,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Entity Reference Selection plugin.
+ * Tests for the base handlers provided by Entity Reference.
+ *
+ * @group entity_reference
  */
 class EntityReferenceSelectionAccessTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Reference handlers',
-      'description' => 'Tests for the base handlers provided by Entity Reference.',
-      'group' => 'Entity Reference',
-    );
-  }
-
   public static $modules = array('node', 'comment', 'entity_reference', 'entity_test');
 
   function setUp() {
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceSelectionSortTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceSelectionSortTest.php
index a0ab8db..0ae4acc 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceSelectionSortTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceSelectionSortTest.php
@@ -11,18 +11,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Entity Reference Selection plugin.
+ * Tests sorting referenced items.
+ *
+ * @group entity_reference
  */
 class EntityReferenceSelectionSortTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Reference handlers sort',
-      'description' => 'Test sorting referenced items.',
-      'group' => 'Entity Reference',
-    );
-  }
-
   public static $modules = array('node', 'entity_reference', 'entity_test');
 
   function setUp() {
diff --git a/core/modules/entity_reference/src/Tests/Views/SelectionTest.php b/core/modules/entity_reference/src/Tests/Views/SelectionTest.php
index 56328a3..cbd6045 100644
--- a/core/modules/entity_reference/src/Tests/Views/SelectionTest.php
+++ b/core/modules/entity_reference/src/Tests/Views/SelectionTest.php
@@ -11,19 +11,13 @@
 
 /**
  * Tests entity reference selection handler.
+ *
+ * @group entity_reference
  */
 class SelectionTest extends WebTestBase {
 
   public static $modules = array('node', 'views', 'entity_reference', 'entity_reference_test', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Reference: Selection handler',
-      'description' => 'Tests entity reference selection handler provided by Views.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the selection handler.
    */
diff --git a/core/modules/field/src/Tests/BulkDeleteTest.php b/core/modules/field/src/Tests/BulkDeleteTest.php
index 41636e6..36c7d03 100644
--- a/core/modules/field/src/Tests/BulkDeleteTest.php
+++ b/core/modules/field/src/Tests/BulkDeleteTest.php
@@ -14,7 +14,9 @@
 
 
 /**
- * Unit test class for field bulk delete and batch purge functionality.
+ * Bulk delete fields and instances, and clean up afterwards.
+ *
+ * @group field
  */
 class BulkDeleteTest extends FieldUnitTestBase {
 
@@ -53,14 +55,6 @@ class BulkDeleteTest extends FieldUnitTestBase {
    */
   protected $entity_type = 'entity_test';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field bulk delete tests',
-      'description' => 'Bulk delete fields and instances, and clean up afterwards.',
-      'group' => 'Field API',
-    );
-  }
-
   /**
    * Tests that the expected hooks have been invoked on the expected entities.
    *
diff --git a/core/modules/field/src/Tests/ConfigFieldDefinitionTest.php b/core/modules/field/src/Tests/ConfigFieldDefinitionTest.php
index 99be2e0..7c1d320 100644
--- a/core/modules/field/src/Tests/ConfigFieldDefinitionTest.php
+++ b/core/modules/field/src/Tests/ConfigFieldDefinitionTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests exposing field definitions for configurable fields.
+ *
+ * @group field
  */
 class ConfigFieldDefinitionTest extends FieldUnitTestBase {
 
@@ -25,17 +27,6 @@ class ConfigFieldDefinitionTest extends FieldUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Config field definitions',
-      'description' => 'Tests exposing field definitions for configurable fields.',
-      'group' => 'Field API',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/CrudTest.php b/core/modules/field/src/Tests/CrudTest.php
index 782897c..1ea5022 100644
--- a/core/modules/field/src/Tests/CrudTest.php
+++ b/core/modules/field/src/Tests/CrudTest.php
@@ -12,7 +12,9 @@
 use Drupal\field\FieldException;
 
 /**
- * Tests field CRUD operations.
+ * Tests field create, read, update, and delete.
+ *
+ * @group field
  */
 class CrudTest extends FieldUnitTestBase {
 
@@ -23,14 +25,6 @@ class CrudTest extends FieldUnitTestBase {
    */
   public static $modules = array();
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field CRUD tests',
-      'description' => 'Test field create, read, update, and delete.',
-      'group' => 'Field API',
-    );
-  }
-
   // TODO : test creation with
   // - a full fledged $field structure, check that all the values are there
   // - a minimal $field structure, check all default values are set
diff --git a/core/modules/field/src/Tests/DisplayApiTest.php b/core/modules/field/src/Tests/DisplayApiTest.php
index 9a9ed1e..83865e4 100644
--- a/core/modules/field/src/Tests/DisplayApiTest.php
+++ b/core/modules/field/src/Tests/DisplayApiTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the field display API.
+ *
+ * @group field
  */
 class DisplayApiTest extends FieldUnitTestBase {
 
@@ -56,14 +58,6 @@ class DisplayApiTest extends FieldUnitTestBase {
    */
   protected $values;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field Display API tests',
-      'description' => 'Test the display API.',
-      'group' => 'Field API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/Email/EmailFieldTest.php b/core/modules/field/src/Tests/Email/EmailFieldTest.php
index e01d129..3a10b57 100644
--- a/core/modules/field/src/Tests/Email/EmailFieldTest.php
+++ b/core/modules/field/src/Tests/Email/EmailFieldTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests email field functionality.
+ *
+ * @group field
  */
 class EmailFieldTest extends WebTestBase {
 
@@ -35,14 +37,6 @@ class EmailFieldTest extends WebTestBase {
    */
   protected $instance;
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Email field',
-      'description'  => 'Tests email field functionality.',
-      'group' => 'Field types',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/Email/EmailItemTest.php b/core/modules/field/src/Tests/Email/EmailItemTest.php
index dfeab31..3a1338b 100644
--- a/core/modules/field/src/Tests/Email/EmailItemTest.php
+++ b/core/modules/field/src/Tests/Email/EmailItemTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the new entity API for the email field type.
+ *
+ * @group field
  */
 class EmailItemTest extends FieldUnitTestBase {
 
@@ -23,14 +25,6 @@ class EmailItemTest extends FieldUnitTestBase {
    */
   public static $modules = array('email');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Email field item',
-      'description' => 'Tests the new entity API for the email field type.',
-      'group' => 'Field types',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/FieldAccessTest.php b/core/modules/field/src/Tests/FieldAccessTest.php
index 59b0cba..2bf705e 100644
--- a/core/modules/field/src/Tests/FieldAccessTest.php
+++ b/core/modules/field/src/Tests/FieldAccessTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\field\Tests;
 
 /**
- * Tests the functionality of field access.
+ * Tests Field access.
+ *
+ * @group field
  */
 class FieldAccessTest extends FieldTestBase {
 
@@ -33,14 +35,6 @@ class FieldAccessTest extends FieldTestBase {
    */
   protected $test_view_field_value;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field access tests',
-      'description' => 'Test Field access.',
-      'group' => 'Field API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/FieldAttachOtherTest.php b/core/modules/field/src/Tests/FieldAttachOtherTest.php
index 73a3b1e..9340f1e 100644
--- a/core/modules/field/src/Tests/FieldAttachOtherTest.php
+++ b/core/modules/field/src/Tests/FieldAttachOtherTest.php
@@ -10,8 +10,9 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Unit test class for non-storage related entity field functions.
+ * Tests other Field API functions.
  *
+ * @group field
  * @todo move this to the Entity module
  */
 class FieldAttachOtherTest extends FieldUnitTestBase {
@@ -30,14 +31,6 @@ class FieldAttachOtherTest extends FieldUnitTestBase {
    */
   protected $field_name_2;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field attach tests (other)',
-      'description' => 'Test other Field API functions.',
-      'group' => 'Field API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installEntitySchema('entity_test_rev');
diff --git a/core/modules/field/src/Tests/FieldAttachStorageTest.php b/core/modules/field/src/Tests/FieldAttachStorageTest.php
index 9ec1d7c..a80c401d 100644
--- a/core/modules/field/src/Tests/FieldAttachStorageTest.php
+++ b/core/modules/field/src/Tests/FieldAttachStorageTest.php
@@ -9,8 +9,9 @@
 use Drupal\field\Entity\FieldInstanceConfig;
 
 /**
- * Unit test class for storage-related field behavior.
+ * Tests storage-related Field Attach API functions.
  *
+ * @group field
  * @todo move this to the Entity module
  */
 class FieldAttachStorageTest extends FieldUnitTestBase {
@@ -29,14 +30,6 @@ class FieldAttachStorageTest extends FieldUnitTestBase {
    */
   protected $field_name;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field attach tests (storage-related)',
-      'description' => 'Test storage-related Field Attach API functions.',
-      'group' => 'Field API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installEntitySchema('entity_test_rev');
diff --git a/core/modules/field/src/Tests/FieldEntityCountTest.php b/core/modules/field/src/Tests/FieldEntityCountTest.php
index b55619f..7f5555b 100644
--- a/core/modules/field/src/Tests/FieldEntityCountTest.php
+++ b/core/modules/field/src/Tests/FieldEntityCountTest.php
@@ -12,19 +12,12 @@
 /**
  * Tests entityCount() and hasData() methods on FieldConfig entity.
  *
+ * @group field
  * @see \Drupal\field\Entity\FieldConfig::entityCount()
  * @see \Drupal\field\Entity\FieldConfig::hasData()
  */
 class FieldEntityCountTest extends FieldUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field config entityCount() and hasData() tests.',
-      'description' => 'Tests entityCount() and hasData() methods on FieldConfig entity.',
-      'group' => 'Field API',
-    );
-  }
-
   /**
    * Tests entityCount() and hadData() methods.
    */
diff --git a/core/modules/field/src/Tests/FieldHelpTest.php b/core/modules/field/src/Tests/FieldHelpTest.php
index 6eb630e..2688626 100644
--- a/core/modules/field/src/Tests/FieldHelpTest.php
+++ b/core/modules/field/src/Tests/FieldHelpTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests help display for the Field module.
+ *
+ * @group field
  */
 class FieldHelpTest extends WebTestBase {
 
@@ -29,14 +31,6 @@ class FieldHelpTest extends WebTestBase {
    */
   protected $adminUser;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field help functionality',
-      'description' => 'Verify help display for the Field module.',
-      'group' => 'Field',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/FieldImportChangeTest.php b/core/modules/field/src/Tests/FieldImportChangeTest.php
index d5d6407..fce8d0e 100644
--- a/core/modules/field/src/Tests/FieldImportChangeTest.php
+++ b/core/modules/field/src/Tests/FieldImportChangeTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\field\Tests;
 
 /**
- * Tests updating fields and instances as part of config import.
+ * Update field and instances during config change method invocation.
+ *
+ * @group field
  */
 class FieldImportChangeTest extends FieldUnitTestBase {
 
@@ -19,14 +21,6 @@ class FieldImportChangeTest extends FieldUnitTestBase {
    */
   public static $modules = array('field_test_config');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field config change tests',
-      'description' => 'Update field and instances during config change method invocation.',
-      'group' => 'Field API',
-    );
-  }
-
   /**
    * Tests importing an updated field instance.
    */
diff --git a/core/modules/field/src/Tests/FieldImportCreateTest.php b/core/modules/field/src/Tests/FieldImportCreateTest.php
index 7a1c4fb..80a4abd 100644
--- a/core/modules/field/src/Tests/FieldImportCreateTest.php
+++ b/core/modules/field/src/Tests/FieldImportCreateTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\field\Tests;
 
 /**
- * Tests creating fields and instances as part of config import.
+ * Create field and instances during config create method invocation.
+ *
+ * @group field
  */
 class FieldImportCreateTest extends FieldUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field config create tests',
-      'description' => 'Create field and instances during config create method invocation.',
-      'group' => 'Field API',
-    );
-  }
-
   /**
    * Tests creating fields and instances during default config import.
    */
diff --git a/core/modules/field/src/Tests/FieldImportDeleteTest.php b/core/modules/field/src/Tests/FieldImportDeleteTest.php
index b0485c4..4358a4f 100644
--- a/core/modules/field/src/Tests/FieldImportDeleteTest.php
+++ b/core/modules/field/src/Tests/FieldImportDeleteTest.php
@@ -10,7 +10,9 @@
 use Drupal\Component\Utility\String;
 
 /**
- * Tests deleting fields and instances as part of config import.
+ * Delete field and instances during config delete method invocation.
+ *
+ * @group field
  */
 class FieldImportDeleteTest extends FieldUnitTestBase {
 
@@ -21,14 +23,6 @@ class FieldImportDeleteTest extends FieldUnitTestBase {
    */
   public static $modules = array('field_test_config');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field config delete tests',
-      'description' => 'Delete field and instances during config delete method invocation.',
-      'group' => 'Field API',
-    );
-  }
-
   /**
    * Tests deleting fields and instances as part of config import.
    */
diff --git a/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php b/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php
index dd6fe61..05d2d6f 100644
--- a/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php
+++ b/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php
@@ -8,8 +8,10 @@
 namespace Drupal\field\Tests;
 
 /**
- * Tests config sync of deleting fields and instances and uninstalling modules.
+ * Delete field and instances during config synchronization and uninstall module
+ * that provides the field type.
  *
+ * @group field
  * @see \Drupal\field\ConfigImporterFieldPurger
  * @see field_config_import_steps_alter()
  */
@@ -22,14 +24,6 @@ class FieldImportDeleteUninstallTest extends FieldUnitTestBase {
    */
   public static $modules = array('telephone', 'menu_link');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field config delete and uninstall tests',
-      'description' => 'Delete field and instances during config synchronization and uninstall module that provides the field type.',
-      'group' => 'Field API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     // Module uninstall requires the router and users_data tables.
diff --git a/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php b/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php
index c8f6db0..e4512a7 100644
--- a/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php
+++ b/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php
@@ -8,8 +8,10 @@
 namespace Drupal\field\Tests;
 
 /**
- * Tests config sync of deleting fields and instances and uninstalling modules.
+ * Delete field and instances during config synchronization and uninstall module
+ * that provides the field type through the UI.
  *
+ * @group field
  * @see \Drupal\field\ConfigImporterFieldPurger
  * @see field_config_import_steps_alter()
  * @see field_form_config_admin_import_form_alter()
@@ -23,14 +25,6 @@ class FieldImportDeleteUninstallUiTest extends FieldTestBase {
    */
   public static $modules = array('entity_test', 'telephone', 'config', 'filter', 'text');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field config delete and uninstall UI tests',
-      'description' => 'Delete field and instances during config synchronization and uninstall module that provides the field type through the UI.',
-      'group' => 'Field API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/FieldInstanceCrudTest.php b/core/modules/field/src/Tests/FieldInstanceCrudTest.php
index 2b867e5..f5f847f 100644
--- a/core/modules/field/src/Tests/FieldInstanceCrudTest.php
+++ b/core/modules/field/src/Tests/FieldInstanceCrudTest.php
@@ -13,7 +13,9 @@
 use Drupal\field\FieldException;
 
 /**
- * Tests field instance CRUD (attaching fields to entities).
+ * Create field entities by attaching fields to entities.
+ *
+ * @group field
  */
 class FieldInstanceCrudTest extends FieldUnitTestBase {
 
@@ -38,14 +40,6 @@ class FieldInstanceCrudTest extends FieldUnitTestBase {
    */
   protected $instance_definition;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field instance CRUD tests',
-      'description' => 'Create field entities by attaching fields to entities.',
-      'group' => 'Field API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/FieldTypePluginManagerTest.php b/core/modules/field/src/Tests/FieldTypePluginManagerTest.php
index 90ee493..f079d3e 100644
--- a/core/modules/field/src/Tests/FieldTypePluginManagerTest.php
+++ b/core/modules/field/src/Tests/FieldTypePluginManagerTest.php
@@ -9,21 +9,12 @@
 
 /**
  * Tests the field type manager.
+ *
+ * @group field
  */
 class FieldTypePluginManagerTest extends FieldUnitTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Field type manager',
-      'description' => 'Tests the field type manager',
-      'group' => 'Field API',
-    );
-  }
-
-  /**
    * Tests the default settings convenience methods.
    */
   function testDefaultSettings() {
diff --git a/core/modules/field/src/Tests/FieldValidationTest.php b/core/modules/field/src/Tests/FieldValidationTest.php
index 1a57a4c..fa28f81 100644
--- a/core/modules/field/src/Tests/FieldValidationTest.php
+++ b/core/modules/field/src/Tests/FieldValidationTest.php
@@ -10,18 +10,12 @@
 use Drupal\field\Tests\FieldUnitTestBase;
 
 /**
- * Unit test class for field validation.
+ * Tests field validation.
+ *
+ * @group field
  */
 class FieldValidationTest extends FieldUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field validation',
-      'description' => 'Tests field validation.',
-      'group' => 'Field API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/FormTest.php b/core/modules/field/src/Tests/FormTest.php
index 819e389..5c28b14 100644
--- a/core/modules/field/src/Tests/FormTest.php
+++ b/core/modules/field/src/Tests/FormTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests field form handling.
+ *
+ * @group field
  */
 class FormTest extends FieldTestBase {
 
@@ -50,14 +52,6 @@ class FormTest extends FieldTestBase {
    */
   protected $instance;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field form tests',
-      'description' => 'Test Field form handling.',
-      'group' => 'Field API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/NestedFormTest.php b/core/modules/field/src/Tests/NestedFormTest.php
index b7f0708..1a4659c 100644
--- a/core/modules/field/src/Tests/NestedFormTest.php
+++ b/core/modules/field/src/Tests/NestedFormTest.php
@@ -10,6 +10,8 @@
 
 /**
  * Tests field elements in nested forms.
+ *
+ * @group field
  */
 class NestedFormTest extends FieldTestBase {
 
@@ -20,14 +22,6 @@ class NestedFormTest extends FieldTestBase {
    */
   public static $modules = array('field_test', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Nested form',
-      'description' => 'Test the support for field elements in nested forms.',
-      'group' => 'Field API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/Number/NumberFieldTest.php b/core/modules/field/src/Tests/Number/NumberFieldTest.php
index f9efa00..574d2bf 100644
--- a/core/modules/field/src/Tests/Number/NumberFieldTest.php
+++ b/core/modules/field/src/Tests/Number/NumberFieldTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for numeric field types.
+ * Tests the creation of numeric fields.
+ *
+ * @group field
  */
 class NumberFieldTest extends WebTestBase {
 
@@ -42,14 +44,6 @@ class NumberFieldTest extends WebTestBase {
    */
   protected $web_user;
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Numeric fields',
-      'description'  => 'Test the creation of numeric fields.',
-      'group' => 'Field types'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/Number/NumberItemTest.php b/core/modules/field/src/Tests/Number/NumberItemTest.php
index 011bf09..ff1b274 100644
--- a/core/modules/field/src/Tests/Number/NumberItemTest.php
+++ b/core/modules/field/src/Tests/Number/NumberItemTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the new entity API for the number field type.
+ *
+ * @group field
  */
 class NumberItemTest extends FieldUnitTestBase {
 
@@ -23,14 +25,6 @@ class NumberItemTest extends FieldUnitTestBase {
    */
   public static $modules = array();
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Number field items',
-      'description' => 'Tests the new entity API for the number field types.',
-      'group' => 'Field types',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/ShapeItemTest.php b/core/modules/field/src/Tests/ShapeItemTest.php
index d3afd9a..2f83ab0 100644
--- a/core/modules/field/src/Tests/ShapeItemTest.php
+++ b/core/modules/field/src/Tests/ShapeItemTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the new entity API for the shape field type.
+ *
+ * @group field
  */
 class ShapeItemTest extends FieldUnitTestBase {
 
@@ -29,14 +31,6 @@ class ShapeItemTest extends FieldUnitTestBase {
    */
   protected $field_name = 'field_shape';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Shape field item',
-      'description' => 'Tests the new entity API for the shape field type.',
-      'group' => 'Field types',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/TestItemTest.php b/core/modules/field/src/Tests/TestItemTest.php
index a7680d3..b7978bc 100644
--- a/core/modules/field/src/Tests/TestItemTest.php
+++ b/core/modules/field/src/Tests/TestItemTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the new entity API for the test field type.
+ *
+ * @group field
  */
 class TestItemTest extends FieldUnitTestBase {
 
@@ -30,14 +32,6 @@ class TestItemTest extends FieldUnitTestBase {
    */
   protected $field_name = 'field_test';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Test field item',
-      'description' => 'Tests the new entity API for the test field type.',
-      'group' => 'Field types',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/TranslationTest.php b/core/modules/field/src/Tests/TranslationTest.php
index 618d8a5..b45e616 100644
--- a/core/modules/field/src/Tests/TranslationTest.php
+++ b/core/modules/field/src/Tests/TranslationTest.php
@@ -10,9 +10,11 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Unit test class for the multilanguage fields logic.
+ * Tests multilanguage fields logic.
  *
  * The following tests will check the multilanguage logic in field handling.
+ *
+ * @group field
  */
 class TranslationTest extends FieldUnitTestBase {
 
@@ -68,14 +70,6 @@ class TranslationTest extends FieldUnitTestBase {
    */
   protected $instance;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field translations tests',
-      'description' => 'Test multilanguage fields logic.',
-      'group' => 'Field API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/TranslationWebTest.php b/core/modules/field/src/Tests/TranslationWebTest.php
index 18b9ef2..27f1e29 100644
--- a/core/modules/field/src/Tests/TranslationWebTest.php
+++ b/core/modules/field/src/Tests/TranslationWebTest.php
@@ -10,7 +10,9 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Web test class for the multilanguage fields logic.
+ * Tests multilanguage fields logic that require a full environment.
+ *
+ * @group field
  */
 class TranslationWebTest extends FieldTestBase {
 
@@ -49,14 +51,6 @@ class TranslationWebTest extends FieldTestBase {
    */
   protected $instance;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field translations web tests',
-      'description' => 'Test multilanguage fields logic that require a full environment.',
-      'group' => 'Field API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/Views/ApiDataTest.php b/core/modules/field/src/Tests/Views/ApiDataTest.php
index be0d496..b424480 100644
--- a/core/modules/field/src/Tests/Views/ApiDataTest.php
+++ b/core/modules/field/src/Tests/Views/ApiDataTest.php
@@ -9,7 +9,9 @@
 use Drupal\Core\Entity\ContentEntityDatabaseStorage;
 
 /**
- * Test the produced views_data.
+ * Tests the Field Views data.
+ *
+ * @group field
  */
 class ApiDataTest extends FieldTestBase {
 
@@ -18,14 +20,6 @@ class ApiDataTest extends FieldTestBase {
    */
   var $fields;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Views Data',
-      'description' => 'Tests the Field Views data.',
-      'group' => 'Views module integration',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/Views/FieldUITest.php b/core/modules/field/src/Tests/Views/FieldUITest.php
index 991fed1..d89cdeb 100644
--- a/core/modules/field/src/Tests/Views/FieldUITest.php
+++ b/core/modules/field/src/Tests/Views/FieldUITest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the UI of the field field handler.
  *
+ * @group field
  * @see \Drupal\field\Plugin\views\field\Field
  */
 class FieldUITest extends FieldTestBase {
@@ -40,17 +41,6 @@ class FieldUITest extends FieldTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Field handler UI',
-      'description' => 'Tests the UI of the field field handler.',
-      'group' => 'Views UI'
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/Views/HandlerFieldFieldTest.php b/core/modules/field/src/Tests/Views/HandlerFieldFieldTest.php
index 15a4914..5524a70 100644
--- a/core/modules/field/src/Tests/Views/HandlerFieldFieldTest.php
+++ b/core/modules/field/src/Tests/Views/HandlerFieldFieldTest.php
@@ -12,7 +12,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the field_field handler.
+ * Tests the field itself of the Field integration.
+ *
+ * @group field
  * @TODO
  *   Check a entity-type with bundles
  *   Check a entity-type without bundles
@@ -30,14 +32,6 @@ class HandlerFieldFieldTest extends FieldTestBase {
 
   public $nodes;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Field handler',
-      'description' => 'Tests the field itself of the Field integration.',
-      'group' => 'Views module integration'
-    );
-  }
-
   /**
    * @todo.
    */
diff --git a/core/modules/field/src/Tests/WidgetPluginManagerTest.php b/core/modules/field/src/Tests/WidgetPluginManagerTest.php
index 879c83e..2ac557f 100644
--- a/core/modules/field/src/Tests/WidgetPluginManagerTest.php
+++ b/core/modules/field/src/Tests/WidgetPluginManagerTest.php
@@ -9,21 +9,12 @@
 
 /**
  * Tests the field widget manager.
+ *
+ * @group field
  */
 class WidgetPluginManagerTest extends FieldUnitTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Widget manager tests',
-      'description' => 'Tests the widget manager',
-      'group' => 'Field API',
-    );
-  }
-
-  /**
    * Tests that the widget definitions alter hook works.
    */
   function testWidgetDefinitionAlter() {
diff --git a/core/modules/field/src/Tests/reEnableModuleFieldTest.php b/core/modules/field/src/Tests/reEnableModuleFieldTest.php
index 81242db..486c6b3 100644
--- a/core/modules/field/src/Tests/reEnableModuleFieldTest.php
+++ b/core/modules/field/src/Tests/reEnableModuleFieldTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests a field is still present after it's module is disabled then re-enabled.
+ * Tests the behavior of a field module after being disabled and re-enabled.
+ *
+ * @group field
  */
 class reEnableModuleFieldTest extends WebTestBase {
 
@@ -27,14 +29,6 @@ class reEnableModuleFieldTest extends WebTestBase {
     'telephone'
   );
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Test field module re-enable',
-      'description'  => "Test the behavior of a field module after being disabled and re-enabled.",
-      'group' => 'Field types'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/tests/src/FieldConfigEntityUnitTest.php b/core/modules/field/tests/src/FieldConfigEntityUnitTest.php
index 0e1c723..d9a66e5 100644
--- a/core/modules/field/tests/src/FieldConfigEntityUnitTest.php
+++ b/core/modules/field/tests/src/FieldConfigEntityUnitTest.php
@@ -13,9 +13,7 @@
 
 /**
  * @coversDefaultClass \Drupal\field\Entity\FieldConfig
- *
- * @group Drupal
- * @group Config
+ * @group field
  */
 class FieldConfigEntityUnitTest extends UnitTestCase {
 
@@ -50,17 +48,6 @@ class FieldConfigEntityUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\field\Entity\FieldConfig unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityManager = $this->getMock('\Drupal\Core\Entity\EntityManagerInterface');
     $this->uuid = $this->getMock('\Drupal\Component\Uuid\UuidInterface');
diff --git a/core/modules/field/tests/src/FieldInstanceConfigEntityUnitTest.php b/core/modules/field/tests/src/FieldInstanceConfigEntityUnitTest.php
index 450b20f..5709086 100644
--- a/core/modules/field/tests/src/FieldInstanceConfigEntityUnitTest.php
+++ b/core/modules/field/tests/src/FieldInstanceConfigEntityUnitTest.php
@@ -14,9 +14,7 @@
 
 /**
  * @coversDefaultClass \Drupal\field\Entity\FieldInstanceConfig
- *
- * @group Drupal
- * @group Config
+ * @group field
  */
 class FieldInstanceConfigEntityUnitTest extends UnitTestCase {
 
@@ -51,17 +49,6 @@ class FieldInstanceConfigEntityUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\field\Entity\FieldInstanceConfig unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityTypeId = $this->randomName();
     $this->entityType = $this->getMock('\Drupal\Core\Entity\EntityTypeInterface');
diff --git a/core/modules/field_ui/src/Tests/FieldUIRouteTest.php b/core/modules/field_ui/src/Tests/FieldUIRouteTest.php
index ef7bbfa..6677c46 100644
--- a/core/modules/field_ui/src/Tests/FieldUIRouteTest.php
+++ b/core/modules/field_ui/src/Tests/FieldUIRouteTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the functionality of the Field UI route subscriber.
+ *
+ * @group field_ui
  */
 class FieldUIRouteTest extends WebTestBase {
 
@@ -22,17 +24,6 @@ class FieldUIRouteTest extends WebTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Field UI routes',
-      'description' => 'Tests the functionality of the Field UI route subscriber.',
-      'group' => 'Field UI',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field_ui/src/Tests/ManageDisplayTest.php b/core/modules/field_ui/src/Tests/ManageDisplayTest.php
index ef3ceb3..82d7117 100644
--- a/core/modules/field_ui/src/Tests/ManageDisplayTest.php
+++ b/core/modules/field_ui/src/Tests/ManageDisplayTest.php
@@ -11,7 +11,9 @@
 use Drupal\Core\Entity\EntityInterface;
 
 /**
- * Tests the functionality of the 'Manage display' screens.
+ * Tests the Field UI "Manage display" and "Manage form display" screens.
+ *
+ * @group field_ui
  */
 class ManageDisplayTest extends FieldUiTestBase {
 
@@ -24,14 +26,6 @@ class ManageDisplayTest extends FieldUiTestBase {
    */
   public static $modules = array('search', 'field_test', 'field_third_party_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Manage display',
-      'description' => 'Test the Field UI "Manage display" and "Manage form display" screens.',
-      'group' => 'Field UI',
-    );
-  }
-
   /**
    * Tests formatter settings.
    */
diff --git a/core/modules/field_ui/src/Tests/ManageFieldsTest.php b/core/modules/field_ui/src/Tests/ManageFieldsTest.php
index d22030d..a1627a1 100644
--- a/core/modules/field_ui/src/Tests/ManageFieldsTest.php
+++ b/core/modules/field_ui/src/Tests/ManageFieldsTest.php
@@ -14,18 +14,12 @@
 use Drupal\field\Entity\FieldInstanceConfig;
 
 /**
- * Tests the functionality of the 'Manage fields' screen.
+ * Tests the Field UI "Manage fields" screen.
+ *
+ * @group field_ui
  */
 class ManageFieldsTest extends FieldUiTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Manage fields',
-      'description' => 'Test the Field UI "Manage fields" screen.',
-      'group' => 'Field UI',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/file/src/Tests/CopyTest.php b/core/modules/file/src/Tests/CopyTest.php
index 9fb0ed1..3ce3d2d 100644
--- a/core/modules/file/src/Tests/CopyTest.php
+++ b/core/modules/file/src/Tests/CopyTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\file\Tests;
 
 /**
- * Copy related tests.
+ * Tests the file copy function.
+ *
+ * @group file
  */
 class CopyTest extends FileManagedUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File copying',
-      'description' => 'Tests the file copy function.',
-      'group' => 'File Managed API',
-    );
-  }
-
   /**
    * Test file copying in the normal, base case.
    */
diff --git a/core/modules/file/src/Tests/DeleteTest.php b/core/modules/file/src/Tests/DeleteTest.php
index f7889b5..f39239f 100644
--- a/core/modules/file/src/Tests/DeleteTest.php
+++ b/core/modules/file/src/Tests/DeleteTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\file\Tests;
 
 /**
- * Deletion related tests.
+ * Tests the file delete function.
+ *
+ * @group file
  */
 class DeleteTest extends FileManagedUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File delete',
-      'description' => 'Tests the file delete function.',
-      'group' => 'File Managed API',
-    );
-  }
-
   /**
    * Tries deleting a normal file (as opposed to a directory, symlink, etc).
    */
diff --git a/core/modules/file/src/Tests/DownloadTest.php b/core/modules/file/src/Tests/DownloadTest.php
index e39b39c..2f891a6 100644
--- a/core/modules/file/src/Tests/DownloadTest.php
+++ b/core/modules/file/src/Tests/DownloadTest.php
@@ -11,16 +11,10 @@
 
 /**
  * Tests for download/file transfer functions.
+ *
+ * @group file
  */
 class DownloadTest extends FileManagedTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File download',
-      'description' => 'Tests for file download/transfer functions.',
-      'group' => 'File Managed API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Clear out any hook calls.
diff --git a/core/modules/file/src/Tests/FileFieldDisplayTest.php b/core/modules/file/src/Tests/FileFieldDisplayTest.php
index 674fa8e..8759d61 100644
--- a/core/modules/file/src/Tests/FileFieldDisplayTest.php
+++ b/core/modules/file/src/Tests/FileFieldDisplayTest.php
@@ -10,18 +10,12 @@
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 
 /**
- * Tests that formatters are working properly.
+ * Tests the display of file fields in node and views.
+ *
+ * @group file
  */
 class FileFieldDisplayTest extends FileFieldTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File field display tests',
-      'description' => 'Test the display of file fields in node and views.',
-      'group' => 'File',
-    );
-  }
-
   /**
    * Tests normal formatter display on node display.
    */
diff --git a/core/modules/file/src/Tests/FileFieldPathTest.php b/core/modules/file/src/Tests/FileFieldPathTest.php
index b9134d3..2c1ae66 100644
--- a/core/modules/file/src/Tests/FileFieldPathTest.php
+++ b/core/modules/file/src/Tests/FileFieldPathTest.php
@@ -9,16 +9,10 @@
 
 /**
  * Tests that files are uploaded to proper locations.
+ *
+ * @group file
  */
 class FileFieldPathTest extends FileFieldTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File field file path tests',
-      'description' => 'Test that files are uploaded to the proper location with token support.',
-      'group' => 'File',
-    );
-  }
-
   /**
    * Tests the normal formatter display on node display.
    */
diff --git a/core/modules/file/src/Tests/FileFieldRSSContentTest.php b/core/modules/file/src/Tests/FileFieldRSSContentTest.php
index 5b75862..4031caf 100644
--- a/core/modules/file/src/Tests/FileFieldRSSContentTest.php
+++ b/core/modules/file/src/Tests/FileFieldRSSContentTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\file\Tests;
 
 /**
- * Tests that formatters are working properly.
+ * Ensure that files added to nodes appear correctly in RSS feeds.
+ *
+ * @group file
  */
 class FileFieldRSSContentTest extends FileFieldTestBase {
 
@@ -19,14 +21,6 @@ class FileFieldRSSContentTest extends FileFieldTestBase {
    */
   public static $modules = array('node', 'views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File field RSS content',
-      'description' => 'Ensure that files added to nodes appear correctly in RSS feeds.',
-      'group' => 'File',
-    );
-  }
-
   /**
    * Tests RSS enclosure formatter display for RSS feeds.
    */
diff --git a/core/modules/file/src/Tests/FileFieldRevisionTest.php b/core/modules/file/src/Tests/FileFieldRevisionTest.php
index ed06571..a02e7a0 100644
--- a/core/modules/file/src/Tests/FileFieldRevisionTest.php
+++ b/core/modules/file/src/Tests/FileFieldRevisionTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\file\Tests;
 
 /**
- * Tests file handling with node revisions.
+ * Tests creating and deleting revisions with files attached.
+ *
+ * @group file
  */
 class FileFieldRevisionTest extends FileFieldTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File field revision test',
-      'description' => 'Test creating and deleting revisions with files attached.',
-      'group' => 'File',
-    );
-  }
-
   /**
    * Tests creating multiple revisions of a node and managing attached files.
    *
diff --git a/core/modules/file/src/Tests/FileFieldValidateTest.php b/core/modules/file/src/Tests/FileFieldValidateTest.php
index bab0f11..f4fc092 100644
--- a/core/modules/file/src/Tests/FileFieldValidateTest.php
+++ b/core/modules/file/src/Tests/FileFieldValidateTest.php
@@ -11,20 +11,15 @@
 use Drupal\field\Entity\FieldInstanceConfig;
 
 /**
- * Tests various validations.
+ * Tests validation functions such as file type, max file size, max size per
+ * node, and required.
+ *
+ * @group file
  */
 class FileFieldValidateTest extends FileFieldTestBase {
   protected $field;
   protected $node_type;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File field validation tests',
-      'description' => 'Tests validation functions such as file type, max file size, max size per node, and required.',
-      'group' => 'File',
-    );
-  }
-
   /**
    * Tests the required property on file fields.
    */
diff --git a/core/modules/file/src/Tests/FileFieldWidgetTest.php b/core/modules/file/src/Tests/FileFieldWidgetTest.php
index 3978501..368d9ab 100644
--- a/core/modules/file/src/Tests/FileFieldWidgetTest.php
+++ b/core/modules/file/src/Tests/FileFieldWidgetTest.php
@@ -9,7 +9,10 @@
 use Drupal\field\Entity\FieldInstanceConfig;
 
 /**
- * Tests file field widget.
+ * Tests the file field widget, single and multi-valued, with and without AJAX,
+ * with public and private files.
+ *
+ * @group file
  */
 class FileFieldWidgetTest extends FileFieldTestBase {
 
@@ -20,14 +23,6 @@ class FileFieldWidgetTest extends FileFieldTestBase {
    */
   public static $modules = array('comment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File field widget test',
-      'description' => 'Tests the file field widget, single and multi-valued, with and without AJAX, with public and private files.',
-      'group' => 'File',
-    );
-  }
-
   /**
    * Tests upload and remove buttons for a single-valued File field.
    */
diff --git a/core/modules/file/src/Tests/FileItemTest.php b/core/modules/file/src/Tests/FileItemTest.php
index c4fd4b4..4e5816c 100644
--- a/core/modules/file/src/Tests/FileItemTest.php
+++ b/core/modules/file/src/Tests/FileItemTest.php
@@ -13,7 +13,9 @@
 use Drupal\field\Tests\FieldUnitTestBase;
 
 /**
- * Tests the new entity API for the file field type.
+ * Tests using entity fields of the file field type.
+ *
+ * @group file
  */
 class FileItemTest extends FieldUnitTestBase {
 
@@ -31,14 +33,6 @@ class FileItemTest extends FieldUnitTestBase {
    */
   protected $file;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File field item API',
-      'description' => 'Tests using entity fields of the file field type.',
-      'group' => 'File',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/file/src/Tests/FileListingTest.php b/core/modules/file/src/Tests/FileListingTest.php
index dd27484..e327ed2 100644
--- a/core/modules/file/src/Tests/FileListingTest.php
+++ b/core/modules/file/src/Tests/FileListingTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests file listing page functionality.
+ *
+ * @group file
  */
 class FileListingTest extends FileFieldTestBase {
 
@@ -19,14 +21,6 @@ class FileListingTest extends FileFieldTestBase {
    */
   public static $modules = array('views', 'file', 'image');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File listing',
-      'description' => 'Tests file listing page functionality.',
-      'group' => 'File',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/file/src/Tests/FileManagedFileElementTest.php b/core/modules/file/src/Tests/FileManagedFileElementTest.php
index 94b34ee..8368610 100644
--- a/core/modules/file/src/Tests/FileManagedFileElementTest.php
+++ b/core/modules/file/src/Tests/FileManagedFileElementTest.php
@@ -10,18 +10,11 @@
 /**
  * Tests the 'managed_file' element type.
  *
+ * @group file
  * @todo Create a FileTestBase class and move FileFieldTestBase methods
  *   that aren't related to fields into it.
  */
 class FileManagedFileElementTest extends FileFieldTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Managed file element test',
-      'description' => 'Tests the managed_file element type.',
-      'group' => 'File',
-    );
-  }
-
   /**
    * Tests the managed_file element type.
    */
diff --git a/core/modules/file/src/Tests/FilePrivateTest.php b/core/modules/file/src/Tests/FilePrivateTest.php
index 3dce48e..dcdf910 100644
--- a/core/modules/file/src/Tests/FilePrivateTest.php
+++ b/core/modules/file/src/Tests/FilePrivateTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\file\Tests;
 
 /**
- * Tests file access on private nodes.
+ * Uploads a test to a private node and checks access.
+ *
+ * @group file
  */
 class FilePrivateTest extends FileFieldTestBase {
 
@@ -19,14 +21,6 @@ class FilePrivateTest extends FileFieldTestBase {
    */
   public static $modules = array('node_access_test', 'field_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Private file test',
-      'description' => 'Uploads a test to a private node and checks access.',
-      'group' => 'File',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     node_access_rebuild();
diff --git a/core/modules/file/src/Tests/FileTokenReplaceTest.php b/core/modules/file/src/Tests/FileTokenReplaceTest.php
index 3198681..481e8f4 100644
--- a/core/modules/file/src/Tests/FileTokenReplaceTest.php
+++ b/core/modules/file/src/Tests/FileTokenReplaceTest.php
@@ -10,17 +10,12 @@
 use Drupal\Component\Utility\String;
 
 /**
- * Tests the file token replacement in strings.
+ * Generates text using placeholders for dummy content to check file token
+ * replacement.
+ *
+ * @group file
  */
 class FileTokenReplaceTest extends FileFieldTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File token replacement',
-      'description' => 'Generates text using placeholders for dummy content to check file token replacement.',
-      'group' => 'File',
-    );
-  }
-
   /**
    * Creates a file, then tests the tokens generated from it.
    */
diff --git a/core/modules/file/src/Tests/LoadTest.php b/core/modules/file/src/Tests/LoadTest.php
index bf6a1e9..7c593cb 100644
--- a/core/modules/file/src/Tests/LoadTest.php
+++ b/core/modules/file/src/Tests/LoadTest.php
@@ -9,16 +9,10 @@
 
 /**
  * Tests the file_load() function.
+ *
+ * @group file
  */
 class LoadTest extends FileManagedUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File loading',
-      'description' => 'Tests the file_load() function.',
-      'group' => 'File Managed API',
-    );
-  }
-
   /**
    * Try to load a non-existent file by fid.
    */
diff --git a/core/modules/file/src/Tests/MoveTest.php b/core/modules/file/src/Tests/MoveTest.php
index b063afa..14f72e2 100644
--- a/core/modules/file/src/Tests/MoveTest.php
+++ b/core/modules/file/src/Tests/MoveTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\file\Tests;
 
 /**
- * Move related tests
+ * Tests the file move function.
+ *
+ * @group file
  */
 class MoveTest extends FileManagedUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File moving',
-      'description' => 'Tests the file move function.',
-      'group' => 'File Managed API',
-    );
-  }
-
   /**
    * Move a normal file.
    */
diff --git a/core/modules/file/src/Tests/RemoteFileSaveUploadTest.php b/core/modules/file/src/Tests/RemoteFileSaveUploadTest.php
index 6f2000c..138f536 100644
--- a/core/modules/file/src/Tests/RemoteFileSaveUploadTest.php
+++ b/core/modules/file/src/Tests/RemoteFileSaveUploadTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\file\Tests;
 
 /**
- * Tests the file_save_upload() function on remote filesystems.
+ * Tests the file uploading functions.
+ *
+ * @group file
  */
 class RemoteFileSaveUploadTest extends SaveUploadTest {
 
@@ -19,12 +21,6 @@ class RemoteFileSaveUploadTest extends SaveUploadTest {
    */
   public static $modules = array('file_test');
 
-  public static function getInfo() {
-    $info = parent::getInfo();
-    $info['group'] = 'File Managed API (remote)';
-    return $info;
-  }
-
   function setUp() {
     parent::setUp();
     \Drupal::config('system.file')->set('default_scheme', 'dummy-remote')->save();
diff --git a/core/modules/file/src/Tests/SaveDataTest.php b/core/modules/file/src/Tests/SaveDataTest.php
index 081b6b3..2131528 100644
--- a/core/modules/file/src/Tests/SaveDataTest.php
+++ b/core/modules/file/src/Tests/SaveDataTest.php
@@ -9,16 +9,10 @@
 
 /**
  * Tests the file_save_data() function.
+ *
+ * @group file
  */
 class SaveDataTest extends FileManagedUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File save data',
-      'description' => 'Tests the file save data function.',
-      'group' => 'File Managed API',
-    );
-  }
-
   /**
    * Test the file_save_data() function when no filename is provided.
    */
diff --git a/core/modules/file/src/Tests/SaveTest.php b/core/modules/file/src/Tests/SaveTest.php
index daa4048..a390b54 100644
--- a/core/modules/file/src/Tests/SaveTest.php
+++ b/core/modules/file/src/Tests/SaveTest.php
@@ -10,17 +10,11 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Tests saving files.
+ * File saving tests.
+ *
+ * @group file
  */
 class SaveTest extends FileManagedUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File saving',
-      'description' => 'File saving tests',
-      'group' => 'File Managed API',
-    );
-  }
-
   function testFileSave() {
     // Create a new file entity.
     $file = entity_create('file', array(
diff --git a/core/modules/file/src/Tests/SaveUploadTest.php b/core/modules/file/src/Tests/SaveUploadTest.php
index 6596f87..29e625f 100644
--- a/core/modules/file/src/Tests/SaveUploadTest.php
+++ b/core/modules/file/src/Tests/SaveUploadTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\file\Tests;
 
 /**
- * Test the file_save_upload() function.
+ * Tests the file_save_upload() function.
+ *
+ * @group file
  */
 class SaveUploadTest extends FileManagedTestBase {
   /**
@@ -26,14 +28,6 @@ class SaveUploadTest extends FileManagedTestBase {
    */
   protected $maxFidBefore;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File uploading',
-      'description' => 'Tests the file uploading functions.',
-      'group' => 'File Managed API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $account = $this->drupalCreateUser();
diff --git a/core/modules/file/src/Tests/SpaceUsedTest.php b/core/modules/file/src/Tests/SpaceUsedTest.php
index bfedef6..0d9bc65 100644
--- a/core/modules/file/src/Tests/SpaceUsedTest.php
+++ b/core/modules/file/src/Tests/SpaceUsedTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\file\Tests;
 
 /**
- *  This will run tests against the $file_managed->spaceUsed() function.
+ * Tests the spaceUsed() function.
+ *
+ * @group file
  */
 class SpaceUsedTest extends FileManagedUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File space used tests',
-      'description' => 'Tests the spaceUsed() function.',
-      'group' => 'File Managed API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/file/src/Tests/UsageTest.php b/core/modules/file/src/Tests/UsageTest.php
index 1b3ea76..d251bec 100644
--- a/core/modules/file/src/Tests/UsageTest.php
+++ b/core/modules/file/src/Tests/UsageTest.php
@@ -9,16 +9,10 @@
 
 /**
  * Tests file usage functions.
+ *
+ * @group file
  */
 class UsageTest extends FileManagedUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File usage',
-      'description' => 'Tests the file usage functions.',
-      'group' => 'File Managed API',
-    );
-  }
-
   /**
    * Tests \Drupal\file\FileUsage\DatabaseFileUsageBackend::listUsage().
    */
diff --git a/core/modules/file/src/Tests/ValidateTest.php b/core/modules/file/src/Tests/ValidateTest.php
index 59fa014..943a830 100644
--- a/core/modules/file/src/Tests/ValidateTest.php
+++ b/core/modules/file/src/Tests/ValidateTest.php
@@ -9,16 +9,10 @@
 
 /**
  * Tests the file_validate() function.
+ *
+ * @group file
  */
 class ValidateTest extends FileManagedUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File validate',
-      'description' => 'Tests the file_validate() function.',
-      'group' => 'File Managed API',
-    );
-  }
-
   /**
    * Test that the validators passed into are checked.
    */
diff --git a/core/modules/file/src/Tests/ValidatorTest.php b/core/modules/file/src/Tests/ValidatorTest.php
index d7f3af3..cb767dd 100644
--- a/core/modules/file/src/Tests/ValidatorTest.php
+++ b/core/modules/file/src/Tests/ValidatorTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\file\Tests;
 
 /**
- *  This will run tests against the file validation functions (file_validate_*).
+ * Tests the functions used to validate uploaded files.
+ *
+ * @group file
  */
 class ValidatorTest extends FileManagedUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File validator tests',
-      'description' => 'Tests the functions used to validate uploaded files.',
-      'group' => 'File Managed API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/file/src/Tests/Views/ExtensionViewsFieldTest.php b/core/modules/file/src/Tests/Views/ExtensionViewsFieldTest.php
index 1218e05..7a01bc7 100644
--- a/core/modules/file/src/Tests/Views/ExtensionViewsFieldTest.php
+++ b/core/modules/file/src/Tests/Views/ExtensionViewsFieldTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the core Drupal\file\Plugin\views\field\Extension handler.
+ *
+ * @group file
  */
 class ExtensionViewsFieldTest extends ViewUnitTestBase {
 
@@ -28,14 +30,6 @@ class ExtensionViewsFieldTest extends ViewUnitTestBase {
    */
   public static $testViews = array('file_extension_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: File extension',
-      'description' => 'Test the core Drupal\file\Plugin\views\field\Extension handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/filter/src/Tests/FilterAPITest.php b/core/modules/filter/src/Tests/FilterAPITest.php
index 2c5522a..9e52420 100644
--- a/core/modules/filter/src/Tests/FilterAPITest.php
+++ b/core/modules/filter/src/Tests/FilterAPITest.php
@@ -16,20 +16,14 @@
 use Symfony\Component\Validator\ConstraintViolationListInterface;
 
 /**
- * Tests the behavior of Filter's API.
+ * Tests the behavior of the API of the Filter module.
+ *
+ * @group filter
  */
 class FilterAPITest extends EntityUnitTestBase {
 
   public static $modules = array('system', 'filter', 'filter_test', 'user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter API',
-      'description' => 'Test the behavior of the API of the Filter module.',
-      'group' => 'Filter',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/filter/src/Tests/FilterAdminTest.php b/core/modules/filter/src/Tests/FilterAdminTest.php
index 4437c8a..e438162 100644
--- a/core/modules/filter/src/Tests/FilterAdminTest.php
+++ b/core/modules/filter/src/Tests/FilterAdminTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the administrative functionality of the Filter module.
+ * Thoroughly test the administrative interface of the filter module.
+ *
+ * @group filter
  */
 class FilterAdminTest extends WebTestBase {
 
@@ -23,17 +25,6 @@ class FilterAdminTest extends WebTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter administration functionality',
-      'description' => 'Thoroughly test the administrative interface of the filter module.',
-      'group' => 'Filter',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/filter/src/Tests/FilterCrudTest.php b/core/modules/filter/src/Tests/FilterCrudTest.php
index b592c5f..be70303 100644
--- a/core/modules/filter/src/Tests/FilterCrudTest.php
+++ b/core/modules/filter/src/Tests/FilterCrudTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests for text format and filter CRUD operations.
+ * Tests creation, loading, updating, deleting of text formats and filters.
+ *
+ * @group filter
  */
 class FilterCrudTest extends DrupalUnitTestBase {
 
@@ -21,14 +23,6 @@ class FilterCrudTest extends DrupalUnitTestBase {
    */
   public static $modules = array('filter', 'filter_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter CRUD operations',
-      'description' => 'Test creation, loading, updating, deleting of text formats and filters.',
-      'group' => 'Filter',
-    );
-  }
-
   /**
    * Tests CRUD operations for text formats and filters.
    */
diff --git a/core/modules/filter/src/Tests/FilterDefaultConfigTest.php b/core/modules/filter/src/Tests/FilterDefaultConfigTest.php
index 1ff9773..0b14268 100644
--- a/core/modules/filter/src/Tests/FilterDefaultConfigTest.php
+++ b/core/modules/filter/src/Tests/FilterDefaultConfigTest.php
@@ -11,19 +11,13 @@
 
 /**
  * Tests text format default configuration.
+ *
+ * @group filter
  */
 class FilterDefaultConfigTest extends DrupalUnitTestBase {
 
   public static $modules = array('system', 'user', 'filter', 'filter_test', 'entity');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Default configuration',
-      'description' => 'Tests text format default configuration.',
-      'group' => 'Filter',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/filter/src/Tests/FilterDefaultFormatTest.php b/core/modules/filter/src/Tests/FilterDefaultFormatTest.php
index bff71aa..f1e6f00 100644
--- a/core/modules/filter/src/Tests/FilterDefaultFormatTest.php
+++ b/core/modules/filter/src/Tests/FilterDefaultFormatTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the default filter functionality in the Filter module.
+ * Tests the default text formats for different users.
+ *
+ * @group filter
  */
 class FilterDefaultFormatTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class FilterDefaultFormatTest extends WebTestBase {
    */
   public static $modules = array('filter');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Default text format functionality',
-      'description' => 'Test the default text formats for different users.',
-      'group' => 'Filter',
-    );
-  }
-
   /**
    * Tests if the default text format is accessible to users.
    */
diff --git a/core/modules/filter/src/Tests/FilterFormTest.php b/core/modules/filter/src/Tests/FilterFormTest.php
index 142bee4..148d5db 100644
--- a/core/modules/filter/src/Tests/FilterFormTest.php
+++ b/core/modules/filter/src/Tests/FilterFormTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests form elements provided by Filter module.
+ * Tests form elements with associated text formats.
+ *
+ * @group filter
  */
 class FilterFormTest extends WebTestBase {
 
@@ -39,17 +41,6 @@ class FilterFormTest extends WebTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Text format form element',
-      'description' => 'Tests form elements with associated text formats.',
-      'group' => 'Filter',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/filter/src/Tests/FilterFormatAccessTest.php b/core/modules/filter/src/Tests/FilterFormatAccessTest.php
index c0aeb26..8689305 100644
--- a/core/modules/filter/src/Tests/FilterFormatAccessTest.php
+++ b/core/modules/filter/src/Tests/FilterFormatAccessTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the filter format access functionality in the Filter module.
+ * Tests access to text formats.
+ *
+ * @group filter
  */
 class FilterFormatAccessTest extends WebTestBase {
 
@@ -63,14 +65,6 @@ class FilterFormatAccessTest extends WebTestBase {
    */
   protected $disallowed_format;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter format access',
-      'description' => 'Tests access to text formats.',
-      'group' => 'Filter',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/filter/src/Tests/FilterHooksTest.php b/core/modules/filter/src/Tests/FilterHooksTest.php
index b23ed88..670adf9 100644
--- a/core/modules/filter/src/Tests/FilterHooksTest.php
+++ b/core/modules/filter/src/Tests/FilterHooksTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for Filter's hook invocations.
+ * Tests hooks for text formats insert/update/disable.
+ *
+ * @group filter
  */
 class FilterHooksTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class FilterHooksTest extends WebTestBase {
    */
   public static $modules = array('node', 'filter_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter format hooks',
-      'description' => 'Test hooks for text formats insert/update/disable.',
-      'group' => 'Filter',
-    );
-  }
-
   /**
    * Tests hooks on format management.
    *
diff --git a/core/modules/filter/src/Tests/FilterHtmlImageSecureTest.php b/core/modules/filter/src/Tests/FilterHtmlImageSecureTest.php
index c5b5e0d..04c58ef 100644
--- a/core/modules/filter/src/Tests/FilterHtmlImageSecureTest.php
+++ b/core/modules/filter/src/Tests/FilterHtmlImageSecureTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests restriction of IMG tags in HTML input.
+ *
+ * @group filter
  */
 class FilterHtmlImageSecureTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class FilterHtmlImageSecureTest extends WebTestBase {
    */
   public static $modules = array('filter', 'node', 'comment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Local image input filter',
-      'description' => 'Tests restriction of IMG tags in HTML input.',
-      'group' => 'Filter',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/filter/src/Tests/FilterNoFormatTest.php b/core/modules/filter/src/Tests/FilterNoFormatTest.php
index 9f2090c..64a8337 100644
--- a/core/modules/filter/src/Tests/FilterNoFormatTest.php
+++ b/core/modules/filter/src/Tests/FilterNoFormatTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the behavior of check_markup() when it is called without text format.
+ *
+ * @group filter
  */
 class FilterNoFormatTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class FilterNoFormatTest extends WebTestBase {
    */
   public static $modules = array('filter');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Unassigned text format functionality',
-      'description' => 'Test the behavior of check_markup() when it is called without a text format.',
-      'group' => 'Filter',
-    );
-  }
-
   /**
    * Tests text without format.
    *
diff --git a/core/modules/filter/src/Tests/FilterSecurityTest.php b/core/modules/filter/src/Tests/FilterSecurityTest.php
index be9ee1f..7d7b86d 100644
--- a/core/modules/filter/src/Tests/FilterSecurityTest.php
+++ b/core/modules/filter/src/Tests/FilterSecurityTest.php
@@ -11,7 +11,11 @@
 use Drupal\filter\Plugin\FilterInterface;
 
 /**
- * Security tests for missing/vanished text formats or filters.
+ * Tests the behavior of check_markup() when a filter or text format vanishes,
+ * or when check_markup() is called in such a way that it is instructed to skip
+ * all filters of the "FilterInterface::TYPE_HTML_RESTRICTOR" type.
+ *
+ * @group filter
  */
 class FilterSecurityTest extends WebTestBase {
 
@@ -29,14 +33,6 @@ class FilterSecurityTest extends WebTestBase {
    */
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter security',
-      'description' => 'Test the behavior of check_markup() when a filter or text format vanishes, or when check_markup() is called in such a way that it is instructed to skip all filters of the "FilterInterface::TYPE_HTML_RESTRICTOR" type.',
-      'group' => 'Filter',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/filter/src/Tests/FilterSettingsTest.php b/core/modules/filter/src/Tests/FilterSettingsTest.php
index f37d48b..a3fd53d 100644
--- a/core/modules/filter/src/Tests/FilterSettingsTest.php
+++ b/core/modules/filter/src/Tests/FilterSettingsTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests filter settings.
+ *
+ * @group filter
  */
 class FilterSettingsTest extends DrupalUnitTestBase {
 
@@ -21,14 +23,6 @@ class FilterSettingsTest extends DrupalUnitTestBase {
    */
   public static $modules = array('filter');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter settings',
-      'description' => 'Tests filter settings.',
-      'group' => 'Filter',
-    );
-  }
-
   /**
    * Tests explicit and implicit default settings for filters.
    */
diff --git a/core/modules/filter/src/Tests/FilterUnitTest.php b/core/modules/filter/src/Tests/FilterUnitTest.php
index b04a717..1895588 100644
--- a/core/modules/filter/src/Tests/FilterUnitTest.php
+++ b/core/modules/filter/src/Tests/FilterUnitTest.php
@@ -13,7 +13,9 @@
 use Drupal\filter\FilterBag;
 
 /**
- * Unit tests for core filters.
+ * Tests Filter module filters individually.
+ *
+ * @group filter
  */
 class FilterUnitTest extends DrupalUnitTestBase {
 
@@ -29,14 +31,6 @@ class FilterUnitTest extends DrupalUnitTestBase {
    */
   protected $filters;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter module filters',
-      'description' => 'Tests Filter module filters individually.',
-      'group' => 'Filter',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->installConfig(array('system'));
diff --git a/core/modules/forum/src/Tests/ForumBlockTest.php b/core/modules/forum/src/Tests/ForumBlockTest.php
index 1295c82..30d14d9 100644
--- a/core/modules/forum/src/Tests/ForumBlockTest.php
+++ b/core/modules/forum/src/Tests/ForumBlockTest.php
@@ -11,7 +11,9 @@
 use Drupal\Core\Datetime\DrupalDateTime;
 
 /**
- * Provides automated tests for the Forum blocks.
+ * Tests the forum blocks.
+ *
+ * @group forum
  */
 class ForumBlockTest extends WebTestBase {
 
@@ -27,14 +29,6 @@ class ForumBlockTest extends WebTestBase {
    */
   protected $adminUser;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Forum blocks',
-      'description' => 'Tests the forum blocks.',
-      'group' => 'Forum',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/forum/src/Tests/ForumIndexTest.php b/core/modules/forum/src/Tests/ForumIndexTest.php
index 8c1f3ee..9e2e9ff 100644
--- a/core/modules/forum/src/Tests/ForumIndexTest.php
+++ b/core/modules/forum/src/Tests/ForumIndexTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the forum index listing.
+ *
+ * @group forum
  */
 class ForumIndexTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ForumIndexTest extends WebTestBase {
    */
   public static $modules = array('taxonomy', 'comment', 'forum');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Forum index',
-      'description' => 'Tests the forum index listing.',
-      'group' => 'Forum',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/forum/src/Tests/ForumNodeAccessTest.php b/core/modules/forum/src/Tests/ForumNodeAccessTest.php
index 99f8b25..7e23ae0 100644
--- a/core/modules/forum/src/Tests/ForumNodeAccessTest.php
+++ b/core/modules/forum/src/Tests/ForumNodeAccessTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests forum block view for private node access.
+ *
+ * @group forum
  */
 class ForumNodeAccessTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ForumNodeAccessTest extends WebTestBase {
    */
   public static $modules = array('node', 'comment', 'forum', 'taxonomy', 'tracker', 'node_access_test', 'block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Forum private node access test',
-      'description' => 'Tests forum block view for private node access',
-      'group' => 'Forum',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     node_access_rebuild();
diff --git a/core/modules/forum/src/Tests/ForumTest.php b/core/modules/forum/src/Tests/ForumTest.php
index 6217835..890d955 100644
--- a/core/modules/forum/src/Tests/ForumTest.php
+++ b/core/modules/forum/src/Tests/ForumTest.php
@@ -11,7 +11,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Provides automated tests for the Forum module.
+ * Create, view, edit, delete, and change forum entries and verify its
+ * consistency in the database.
+ *
+ * @group forum
  */
 class ForumTest extends WebTestBase {
 
@@ -62,14 +65,6 @@ class ForumTest extends WebTestBase {
    */
   protected $nids;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Forum functionality',
-      'description' => 'Create, view, edit, delete, and change forum entries and verify its consistency in the database.',
-      'group' => 'Forum',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/forum/src/Tests/ForumUninstallTest.php b/core/modules/forum/src/Tests/ForumUninstallTest.php
index 3b38876..914099f 100644
--- a/core/modules/forum/src/Tests/ForumUninstallTest.php
+++ b/core/modules/forum/src/Tests/ForumUninstallTest.php
@@ -14,6 +14,8 @@
 
 /**
  * Tests forum module uninstallation.
+ *
+ * @group forum
  */
 class ForumUninstallTest extends WebTestBase {
 
@@ -24,14 +26,6 @@ class ForumUninstallTest extends WebTestBase {
    */
   public static $modules = array('forum');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Forum uninstallation',
-      'description' => 'Tests forum module uninstallation.',
-      'group' => 'Forum',
-    );
-  }
-
   /**
    * Tests if forum module uninstallation properly deletes the field.
    */
diff --git a/core/modules/forum/src/Tests/Views/ForumIntegrationTest.php b/core/modules/forum/src/Tests/Views/ForumIntegrationTest.php
index 6e40370..4bcaee4 100644
--- a/core/modules/forum/src/Tests/Views/ForumIntegrationTest.php
+++ b/core/modules/forum/src/Tests/Views/ForumIntegrationTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the forum integration into views.
+ *
+ * @group forum
  */
 class ForumIntegrationTest extends ViewTestBase {
 
@@ -30,14 +32,6 @@ class ForumIntegrationTest extends ViewTestBase {
    */
   public static $testViews = array('test_forum_index');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Forum: Views data',
-      'description' => 'Tests the forum integration into views.',
-      'group' => 'Views module integration',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/forum/tests/src/Breadcrumb/ForumBreadcrumbBuilderBaseTest.php b/core/modules/forum/tests/src/Breadcrumb/ForumBreadcrumbBuilderBaseTest.php
index 8b71d69..580631d 100644
--- a/core/modules/forum/tests/src/Breadcrumb/ForumBreadcrumbBuilderBaseTest.php
+++ b/core/modules/forum/tests/src/Breadcrumb/ForumBreadcrumbBuilderBaseTest.php
@@ -10,28 +10,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the ForumManager.
- *
  * @coversDefaultClass \Drupal\forum\Breadcrumb\ForumBreadcrumbBuilderBase
- * @group Forum
- * @group Drupal
- *
- * @see \Drupal\forum\ForumManager
+ * @group forum
  */
 class ForumBreadcrumbBuilderBaseTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Forum Breadcrumb Base Test',
-      'description' => 'Tests the abstract base class for forum breadcrumbs.',
-      'group' => 'Forum',
-    );
-  }
-
-  /**
    * Tests ForumBreadcrumbBuilderBase::__construct().
    *
    * @covers ::__construct()
diff --git a/core/modules/forum/tests/src/Breadcrumb/ForumListingBreadcrumbBuilderTest.php b/core/modules/forum/tests/src/Breadcrumb/ForumListingBreadcrumbBuilderTest.php
index 7a58343..2c80854 100644
--- a/core/modules/forum/tests/src/Breadcrumb/ForumListingBreadcrumbBuilderTest.php
+++ b/core/modules/forum/tests/src/Breadcrumb/ForumListingBreadcrumbBuilderTest.php
@@ -11,28 +11,12 @@
 use Symfony\Cmf\Component\Routing\RouteObjectInterface;
 
 /**
- * Tests the listing class for forum breadcrumbs.
- *
  * @coversDefaultClass \Drupal\forum\Breadcrumb\ForumListingBreadcrumbBuilder
- * @group Forum
- * @group Drupal
- *
- * @see \Drupal\forum\ForumListingBreadcrumbBuilder
+ * @group forum
  */
 class ForumListingBreadcrumbBuilderTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Forum Breadcrumb Listing Test',
-      'description' => 'Tests the listing class for forum breadcrumbs.',
-      'group' => 'Forum',
-    );
-  }
-
-  /**
    * Tests ForumListingBreadcrumbBuilder::applies().
    *
    * @param bool $expected
diff --git a/core/modules/forum/tests/src/Breadcrumb/ForumNodeBreadcrumbBuilderTest.php b/core/modules/forum/tests/src/Breadcrumb/ForumNodeBreadcrumbBuilderTest.php
index d1019f5..f29b639 100644
--- a/core/modules/forum/tests/src/Breadcrumb/ForumNodeBreadcrumbBuilderTest.php
+++ b/core/modules/forum/tests/src/Breadcrumb/ForumNodeBreadcrumbBuilderTest.php
@@ -11,28 +11,12 @@
 use Symfony\Cmf\Component\Routing\RouteObjectInterface;
 
 /**
- * Tests the listing class for forum breadcrumbs.
- *
- * @group Forum
- * @group Drupal
- *
- * @see \Drupal\forum\ForumNodeBreadcrumbBuilder
  * @coversDefaultClass \Drupal\forum\Breadcrumb\ForumNodeBreadcrumbBuilder
+ * @group forum
  */
 class ForumNodeBreadcrumbBuilderTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Forum Breadcrumb Node Test',
-      'description' => 'Tests the node class for forum breadcrumbs.',
-      'group' => 'Forum',
-    );
-  }
-
-  /**
    * Tests ForumNodeBreadcrumbBuilder::applies().
    *
    * @param bool $expected
diff --git a/core/modules/forum/tests/src/ForumManagerTest.php b/core/modules/forum/tests/src/ForumManagerTest.php
index c49a604..469c8bf 100644
--- a/core/modules/forum/tests/src/ForumManagerTest.php
+++ b/core/modules/forum/tests/src/ForumManagerTest.php
@@ -10,23 +10,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the ForumManager.
- *
- * @group Forum
- * @group Drupal
- *
- * @see \Drupal\forum\ForumManager
+ * @coversDefaultClass \Drupal\forum\ForumManager
+ * @group forum
  */
 class ForumManagerTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Forum Manager',
-      'description' => 'Tests the forum manager functionality.',
-      'group' => 'Forum',
-    );
-  }
-
   /**
    * Tests ForumManager::getIndex().
    */
diff --git a/core/modules/hal/src/Tests/DenormalizeTest.php b/core/modules/hal/src/Tests/DenormalizeTest.php
index 32bc279..9021534 100644
--- a/core/modules/hal/src/Tests/DenormalizeTest.php
+++ b/core/modules/hal/src/Tests/DenormalizeTest.php
@@ -10,18 +10,12 @@
 use Symfony\Component\Serializer\Exception\UnexpectedValueException;
 
 /**
- * Test the HAL normalizer's denormalize function.
+ * Tests that entities can be denormalized from HAL.
+ *
+ * @group hal
  */
 class DenormalizeTest extends NormalizerTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Denormalize Test',
-      'description' => 'Test that entities can be denormalized from HAL.',
-      'group' => 'HAL',
-    );
-  }
-
   /**
    * Tests that the type link relation in incoming data is handled correctly.
    */
diff --git a/core/modules/hal/src/Tests/EntityTest.php b/core/modules/hal/src/Tests/EntityTest.php
index d9a9004..d281704 100644
--- a/core/modules/hal/src/Tests/EntityTest.php
+++ b/core/modules/hal/src/Tests/EntityTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\hal\Tests;
 
 /**
- * Test the HAL normalizer on various entities
+ * Tests that nodes and terms are correctly normalized and denormalized.
+ *
+ * @group hal
  */
 class EntityTest extends NormalizerTestBase {
 
@@ -22,17 +24,6 @@ class EntityTest extends NormalizerTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity normalizer Test',
-      'description' => 'Test that nodes and terms are correctly normalized and denormalized.',
-      'group' => 'HAL',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/hal/src/Tests/FileDenormalizeTest.php b/core/modules/hal/src/Tests/FileDenormalizeTest.php
index de0c3e1..853b06d 100644
--- a/core/modules/hal/src/Tests/FileDenormalizeTest.php
+++ b/core/modules/hal/src/Tests/FileDenormalizeTest.php
@@ -11,8 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests denormalization of the FileEntityNormalizer class.
+ * Tests that file entities can be denormalized in HAL.
  *
+ * @group hal
  * @see \Drupal\hal\Normalizer\FileEntityNormalizer
  */
 class FileDenormalizeTest extends WebTestBase {
@@ -24,14 +25,6 @@ class FileDenormalizeTest extends WebTestBase {
    */
   public static $modules = array('hal', 'file', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File denormalize Test',
-      'description' => 'Test that file entities can be denormalized in HAL.',
-      'group' => 'HAL',
-    );
-  }
-
   /**
    * Tests file entity denormalization.
    */
diff --git a/core/modules/hal/src/Tests/FileNormalizeTest.php b/core/modules/hal/src/Tests/FileNormalizeTest.php
index a3ecbf1..796cf8f 100644
--- a/core/modules/hal/src/Tests/FileNormalizeTest.php
+++ b/core/modules/hal/src/Tests/FileNormalizeTest.php
@@ -18,18 +18,12 @@
 
 
 /**
- * Test the HAL normalizer.
+ * Tests that file entities can be normalized in HAL.
+ *
+ * @group hal
  */
 class FileNormalizeTest extends NormalizerTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File Normalize Test',
-      'description' => 'Test that file entities can be normalized in HAL.',
-      'group' => 'HAL',
-    );
-  }
-
   /**
    * Modules to enable.
    *
diff --git a/core/modules/hal/src/Tests/NormalizeTest.php b/core/modules/hal/src/Tests/NormalizeTest.php
index 396f40a..63b7fc6 100644
--- a/core/modules/hal/src/Tests/NormalizeTest.php
+++ b/core/modules/hal/src/Tests/NormalizeTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\hal\Tests;
 
 /**
- * Test the HAL normalizer.
+ * Tests that entities can be normalized in HAL.
+ *
+ * @group hal
  */
 class NormalizeTest extends NormalizerTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Normalize Test',
-      'description' => 'Test that entities can be normalized in HAL.',
-      'group' => 'HAL',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/hal/tests/src/FieldItemNormalizerDenormalizeExceptionsUnitTest.php b/core/modules/hal/tests/src/FieldItemNormalizerDenormalizeExceptionsUnitTest.php
index dc73cbd..5026e61 100644
--- a/core/modules/hal/tests/src/FieldItemNormalizerDenormalizeExceptionsUnitTest.php
+++ b/core/modules/hal/tests/src/FieldItemNormalizerDenormalizeExceptionsUnitTest.php
@@ -11,24 +11,11 @@
 
 /**
  * @coversDefaultClass \Drupal\hal\Normalizer\FieldItemNormalizer
- *
- * @group Drupal
- * @group HAL
+ * @group hal
  */
 class FieldItemNormalizerDenormalizeExceptionsUnitTest extends NormalizerDenormalizeExceptionsUnitTestBase {
 
   /**
-   * @inheritdoc
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'FieldItemNormalizer::denormalize() Unit Test',
-      'description' => 'Test that FieldItemNormalizer::denormalize() throws proper exceptions.',
-      'group' => 'HAL',
-    );
-  }
-
-  /**
    * Tests that the FieldItemNormalizer::denormalize() throws proper exceptions.
    *
    * @param array $context
diff --git a/core/modules/hal/tests/src/FieldNormalizerDenormalizeExceptionsUnitTest.php b/core/modules/hal/tests/src/FieldNormalizerDenormalizeExceptionsUnitTest.php
index c39ffa0..941c658 100644
--- a/core/modules/hal/tests/src/FieldNormalizerDenormalizeExceptionsUnitTest.php
+++ b/core/modules/hal/tests/src/FieldNormalizerDenormalizeExceptionsUnitTest.php
@@ -11,24 +11,11 @@
 
 /**
  * @coversDefaultClass \Drupal\hal\Normalizer\FieldNormalizer
- *
- * @group Drupal
- * @group HAL
+ * @group hal
  */
 class FieldNormalizerDenormalizeExceptionsUnitTest extends NormalizerDenormalizeExceptionsUnitTestBase {
 
   /**
-   * @inheritdoc
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'FieldNormalizer::denormalize() Unit Test',
-      'description' => 'Test that FieldNormalizer::denormalize() throws proper exceptions.',
-      'group' => 'HAL',
-    );
-  }
-
-  /**
    * Tests that the FieldNormalizer::denormalize() throws proper exceptions.
    *
    * @param array $context
diff --git a/core/modules/help/src/Tests/HelpTest.php b/core/modules/help/src/Tests/HelpTest.php
index 99d69a0..f1ce708 100644
--- a/core/modules/help/src/Tests/HelpTest.php
+++ b/core/modules/help/src/Tests/HelpTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests help display and user access for all modules implementing help.
+ * Verify help display and user access to help based on permissions.
+ *
+ * @group help
  */
 class HelpTest extends WebTestBase {
 
@@ -34,14 +36,6 @@ class HelpTest extends WebTestBase {
    */
   protected $anyUser;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Help functionality',
-      'description' => 'Verify help display and user access to help based on permissions.',
-      'group' => 'Help',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/help/src/Tests/NoHelpTest.php b/core/modules/help/src/Tests/NoHelpTest.php
index 6cd8306..beb9d1b 100644
--- a/core/modules/help/src/Tests/NoHelpTest.php
+++ b/core/modules/help/src/Tests/NoHelpTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests a module without help to verify it is not listed in the help page.
+ * Verify no help is displayed for modules not providing any help.
+ *
+ * @group help
  */
 class NoHelpTest extends WebTestBase {
 
@@ -28,14 +30,6 @@ class NoHelpTest extends WebTestBase {
    */
   protected $adminUser;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'No help',
-      'description' => 'Verify no help is displayed for modules not providing any help.',
-      'group' => 'Help',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->adminUser = $this->drupalCreateUser(array('access administration pages'));
diff --git a/core/modules/history/src/Tests/HistoryTest.php b/core/modules/history/src/Tests/HistoryTest.php
index 13b36ff..9010511 100644
--- a/core/modules/history/src/Tests/HistoryTest.php
+++ b/core/modules/history/src/Tests/HistoryTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the History endpoints.
+ *
+ * @group history
  */
 class HistoryTest extends WebTestBase {
 
@@ -36,14 +38,6 @@ class HistoryTest extends WebTestBase {
    */
   protected $test_node;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'History endpoints',
-      'description' => 'Tests the History endpoints',
-      'group' => 'History'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/history/src/Tests/Views/HistoryTimestampTest.php b/core/modules/history/src/Tests/Views/HistoryTimestampTest.php
index fe0c1cb..252d24c 100644
--- a/core/modules/history/src/Tests/Views/HistoryTimestampTest.php
+++ b/core/modules/history/src/Tests/Views/HistoryTimestampTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the history timestamp handlers.
  *
+ * @group history
  * @see \Drupal\history\Plugin\views\field\HistoryTimestamp.
  * @see \Drupal\history\Plugin\views\filter\HistoryTimestamp.
  */
@@ -32,14 +33,6 @@ class HistoryTimestampTest extends ViewTestBase {
    */
   public static $testViews = array('test_history');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'History Integration',
-      'description' => 'Tests the history timestamp handlers.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the handlers.
    */
diff --git a/core/modules/image/src/Tests/FileMoveTest.php b/core/modules/image/src/Tests/FileMoveTest.php
index 13518e0..4f3c8dd 100644
--- a/core/modules/image/src/Tests/FileMoveTest.php
+++ b/core/modules/image/src/Tests/FileMoveTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the file move function for images and image styles.
+ *
+ * @group image
  */
 class FileMoveTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class FileMoveTest extends WebTestBase {
    */
   public static $modules = array('image');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image moving',
-      'description' => 'Tests the file move function for managed files.',
-      'group' => 'Image',
-    );
-  }
-
   /**
    * Tests moving a randomly generated image.
    */
diff --git a/core/modules/image/src/Tests/ImageAdminStylesTest.php b/core/modules/image/src/Tests/ImageAdminStylesTest.php
index bcad6fc..990c93f 100644
--- a/core/modules/image/src/Tests/ImageAdminStylesTest.php
+++ b/core/modules/image/src/Tests/ImageAdminStylesTest.php
@@ -11,17 +11,11 @@
 
 /**
  * Tests creation, deletion, and editing of image styles and effects.
+ *
+ * @group image
  */
 class ImageAdminStylesTest extends ImageFieldTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image styles and effects UI configuration',
-      'description' => 'Tests creation, deletion, and editing of image styles and effects at the UI level.',
-      'group' => 'Image',
-    );
-  }
-
   /**
    * Given an image style, generate an image.
    */
diff --git a/core/modules/image/src/Tests/ImageDimensionsTest.php b/core/modules/image/src/Tests/ImageDimensionsTest.php
index 48016ea..3d787d9 100644
--- a/core/modules/image/src/Tests/ImageDimensionsTest.php
+++ b/core/modules/image/src/Tests/ImageDimensionsTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests that images have correct dimensions when styled.
+ *
+ * @group image
  */
 class ImageDimensionsTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class ImageDimensionsTest extends WebTestBase {
 
   protected $profile = 'testing';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image dimensions',
-      'description' => 'Tests that images have correct dimensions when styled.',
-      'group' => 'Image',
-    );
-  }
-
   /**
    * Test styled image dimensions cumulatively.
    */
diff --git a/core/modules/image/src/Tests/ImageEffectsTest.php b/core/modules/image/src/Tests/ImageEffectsTest.php
index 8afcb22..b2a94bf 100644
--- a/core/modules/image/src/Tests/ImageEffectsTest.php
+++ b/core/modules/image/src/Tests/ImageEffectsTest.php
@@ -10,8 +10,9 @@
 use Drupal\system\Tests\Image\ToolkitTestBase;
 
 /**
- * Use the image_test.module's mock toolkit to ensure that the effects are
- * properly passing parameters to the image toolkit.
+ * Tests that the image effects pass parameters to the toolkit correctly.
+ *
+ * @group image
  */
 class ImageEffectsTest extends ToolkitTestBase {
 
@@ -29,14 +30,6 @@ class ImageEffectsTest extends ToolkitTestBase {
    */
   protected $manager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image effects',
-      'description' => 'Test that the image effects pass parameters to the toolkit correctly.',
-      'group' => 'Image',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->manager = $this->container->get('plugin.manager.image.effect');
diff --git a/core/modules/image/src/Tests/ImageFieldDefaultImagesTest.php b/core/modules/image/src/Tests/ImageFieldDefaultImagesTest.php
index f4626a4..cbb9202 100644
--- a/core/modules/image/src/Tests/ImageFieldDefaultImagesTest.php
+++ b/core/modules/image/src/Tests/ImageFieldDefaultImagesTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\image\Tests;
 
 /**
- * Tests default image settings.
+ * Tests setting up default images both to the field and field instance.
+ *
+ * @group image
  */
 class ImageFieldDefaultImagesTest extends ImageFieldTestBase {
 
@@ -19,14 +21,6 @@ class ImageFieldDefaultImagesTest extends ImageFieldTestBase {
    */
   public static $modules = array('field_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image field default images tests',
-      'description' => 'Tests setting up default images both to the field and field instance.',
-      'group' => 'Image',
-    );
-  }
-
   /**
    * Tests CRUD for fields and fields instances with default images.
    */
diff --git a/core/modules/image/src/Tests/ImageFieldDisplayTest.php b/core/modules/image/src/Tests/ImageFieldDisplayTest.php
index 5058d2f..fd768c0 100644
--- a/core/modules/image/src/Tests/ImageFieldDisplayTest.php
+++ b/core/modules/image/src/Tests/ImageFieldDisplayTest.php
@@ -11,7 +11,9 @@
 use Drupal\field\Entity\FieldConfig;
 
 /**
- * Test class to check that formatters and display settings are working.
+ * Tests the display of image fields.
+ *
+ * @group image
  */
 class ImageFieldDisplayTest extends ImageFieldTestBase {
 
@@ -24,14 +26,6 @@ class ImageFieldDisplayTest extends ImageFieldTestBase {
    */
   public static $modules = array('field_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image field display tests',
-      'description' => 'Test the display of image fields.',
-      'group' => 'Image',
-    );
-  }
-
   /**
    * Test image formatters on node display for public files.
    */
diff --git a/core/modules/image/src/Tests/ImageFieldValidateTest.php b/core/modules/image/src/Tests/ImageFieldValidateTest.php
index b8b4a75..96670e8 100644
--- a/core/modules/image/src/Tests/ImageFieldValidateTest.php
+++ b/core/modules/image/src/Tests/ImageFieldValidateTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\image\Tests;
 
 /**
- * Test class to check for various validations.
+ * Tests validation functions such as min/max resolution.
+ *
+ * @group image
  */
 class ImageFieldValidateTest extends ImageFieldTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Image field validation tests',
-      'description' => 'Tests validation functions such as min/max resolution.',
-      'group' => 'Image',
-    );
-  }
-
   /**
    * Test min/max resolution settings.
    */
diff --git a/core/modules/image/src/Tests/ImageItemTest.php b/core/modules/image/src/Tests/ImageItemTest.php
index 53472a8..8f59e06 100644
--- a/core/modules/image/src/Tests/ImageItemTest.php
+++ b/core/modules/image/src/Tests/ImageItemTest.php
@@ -13,7 +13,9 @@
 use Drupal\field\Tests\FieldUnitTestBase;
 
 /**
- * Tests the new entity API for the image field type.
+ * Tests using entity fields of the image field type.
+ *
+ * @group image
  */
 class ImageItemTest extends FieldUnitTestBase {
 
@@ -36,14 +38,6 @@ class ImageItemTest extends FieldUnitTestBase {
    */
   protected $imageFactory;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image field item API',
-      'description' => 'Tests using entity fields of the image field type.',
-      'group' => 'Image',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/image/src/Tests/ImageStyleFlushTest.php b/core/modules/image/src/Tests/ImageStyleFlushTest.php
index 1cbe4e8..7db6de8 100644
--- a/core/modules/image/src/Tests/ImageStyleFlushTest.php
+++ b/core/modules/image/src/Tests/ImageStyleFlushTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests flushing of image styles.
+ *
+ * @group image
  */
 class ImageStyleFlushTest extends ImageFieldTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image style flushing',
-      'description' => 'Tests flushing of image styles.',
-      'group' => 'Image',
-    );
-  }
-
   /**
    * Given an image style and a wrapper, generate an image.
    */
diff --git a/core/modules/image/src/Tests/ImageStylesPathAndUrlTest.php b/core/modules/image/src/Tests/ImageStylesPathAndUrlTest.php
index 5b0c2d6..ebc4ded 100644
--- a/core/modules/image/src/Tests/ImageStylesPathAndUrlTest.php
+++ b/core/modules/image/src/Tests/ImageStylesPathAndUrlTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the functions for generating paths and URLs for image styles.
+ *
+ * @group image
  */
 class ImageStylesPathAndUrlTest extends WebTestBase {
 
@@ -27,14 +29,6 @@ class ImageStylesPathAndUrlTest extends WebTestBase {
    */
   protected $style;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image styles path and URL functions',
-      'description' => 'Tests functions for generating paths and URLs to image styles.',
-      'group' => 'Image',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/image/src/Tests/ImageThemeFunctionTest.php b/core/modules/image/src/Tests/ImageThemeFunctionTest.php
index 64bfdf1..24d20ac 100644
--- a/core/modules/image/src/Tests/ImageThemeFunctionTest.php
+++ b/core/modules/image/src/Tests/ImageThemeFunctionTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests image theme functions.
+ *
+ * @group image
  */
 class ImageThemeFunctionTest extends WebTestBase {
 
@@ -34,14 +36,6 @@ class ImageThemeFunctionTest extends WebTestBase {
    */
   protected $imageFactory;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image theme functions',
-      'description' => 'Tests the image theme functions.',
-      'group' => 'Image',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/language/src/Tests/Condition/LanguageConditionTest.php b/core/modules/language/src/Tests/Condition/LanguageConditionTest.php
index fb8bfff..f76c254 100644
--- a/core/modules/language/src/Tests/Condition/LanguageConditionTest.php
+++ b/core/modules/language/src/Tests/Condition/LanguageConditionTest.php
@@ -12,7 +12,10 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Tests the language condition.
+ * Tests that the language condition, provided by the language module, is
+ * working properly.
+ *
+ * @group language
  */
 class LanguageConditionTest extends DrupalUnitTestBase {
 
@@ -37,14 +40,6 @@ class LanguageConditionTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language Condition Plugin',
-      'description' => 'Tests that the language condition, provided by the language module, is working properly.',
-      'group' => 'Condition API',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/language/src/Tests/LanguageBrowserDetectionUnitTest.php b/core/modules/language/src/Tests/LanguageBrowserDetectionUnitTest.php
index 5571668..2c35dcb 100644
--- a/core/modules/language/src/Tests/LanguageBrowserDetectionUnitTest.php
+++ b/core/modules/language/src/Tests/LanguageBrowserDetectionUnitTest.php
@@ -13,20 +13,14 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Test browser language detection.
+ * Tests browser language detection.
+ *
+ * @group language
  */
 class LanguageBrowserDetectionUnitTest extends WebTestBase {
 
   public static $modules = array('language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Browser language detection',
-      'description' => 'Tests for the browser language detection.',
-      'group' => 'Language',
-    );
-  }
-
   /**
    * Unit tests for the language_from_browser() function.
    *
diff --git a/core/modules/language/src/Tests/LanguageConfigOverrideImportTest.php b/core/modules/language/src/Tests/LanguageConfigOverrideImportTest.php
index 30a5232..9220476 100644
--- a/core/modules/language/src/Tests/LanguageConfigOverrideImportTest.php
+++ b/core/modules/language/src/Tests/LanguageConfigOverrideImportTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests synchronization of language configuration overrides.
+ * Ensures the language config overrides can be synchronized.
+ *
+ * @group language
  */
 class LanguageConfigOverrideImportTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class LanguageConfigOverrideImportTest extends WebTestBase {
    */
   public static $modules = array('language', 'config', 'locale', 'config_translation');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language config override synchronize',
-      'description' => 'Ensures the language config overrides can be synchronized.',
-      'group' => 'Language',
-    );
-  }
-
   /**
    * Tests that language can be enabled and overrides are created during a sync.
    */
diff --git a/core/modules/language/src/Tests/LanguageConfigOverrideInstallTest.php b/core/modules/language/src/Tests/LanguageConfigOverrideInstallTest.php
index ccf56ad..281ca3e 100644
--- a/core/modules/language/src/Tests/LanguageConfigOverrideInstallTest.php
+++ b/core/modules/language/src/Tests/LanguageConfigOverrideInstallTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\KernelTestBase;
 
 /**
- * Tests language config override installation.
+ * Ensures the language config overrides can be installed.
+ *
+ * @group language
  */
 class LanguageConfigOverrideInstallTest extends KernelTestBase {
 
@@ -21,14 +23,6 @@ class LanguageConfigOverrideInstallTest extends KernelTestBase {
    */
   public static $modules = array('language', 'config_events_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language config override installation',
-      'description' => 'Ensures the language config overrides can be installed.',
-      'group' => 'Language',
-    );
-  }
-
   /**
    * Tests the configuration events are not fired during install of overrides.
    */
diff --git a/core/modules/language/src/Tests/LanguageConfigSchemaTest.php b/core/modules/language/src/Tests/LanguageConfigSchemaTest.php
index 35e207a..e4862bc 100644
--- a/core/modules/language/src/Tests/LanguageConfigSchemaTest.php
+++ b/core/modules/language/src/Tests/LanguageConfigSchemaTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the language config schema.
+ * Ensures the language config schema is correct.
+ *
+ * @group language
  */
 class LanguageConfigSchemaTest extends WebTestBase {
 
@@ -31,14 +33,6 @@ class LanguageConfigSchemaTest extends WebTestBase {
    */
   protected $adminUser;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language config schema',
-      'description' => 'Ensures the language config schema is correct.',
-      'group' => 'Language',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/language/src/Tests/LanguageConfigurationElementTest.php b/core/modules/language/src/Tests/LanguageConfigurationElementTest.php
index c7c85f1..26ad991 100644
--- a/core/modules/language/src/Tests/LanguageConfigurationElementTest.php
+++ b/core/modules/language/src/Tests/LanguageConfigurationElementTest.php
@@ -11,7 +11,9 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Functional tests for language configuration's effect on negotiation setup.
+ * Tests the features of the language configuration element field.
+ *
+ * @group language
  */
 class LanguageConfigurationElementTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class LanguageConfigurationElementTest extends WebTestBase {
    */
   public static $modules = array('node', 'language', 'language_elements_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language configuration form element tests',
-      'description' => 'Tests the features of the language configuration element field.',
-      'group' => 'Language',
-    );
-  }
-
   /**
    * Tests the language settings have been saved.
    */
diff --git a/core/modules/language/src/Tests/LanguageConfigurationTest.php b/core/modules/language/src/Tests/LanguageConfigurationTest.php
index 3ca6528..6612cba 100644
--- a/core/modules/language/src/Tests/LanguageConfigurationTest.php
+++ b/core/modules/language/src/Tests/LanguageConfigurationTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for language configuration's effect on negotiation setup.
+ * Adds and configures languages to check negotiation changes.
+ *
+ * @group language
  */
 class LanguageConfigurationTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class LanguageConfigurationTest extends WebTestBase {
    */
   public static $modules = array('language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language negotiation autoconfiguration',
-      'description' => 'Adds and configures languages to check negotiation changes.',
-      'group' => 'Language',
-    );
-  }
-
   /**
    * Functional tests for adding, editing and deleting languages.
    */
diff --git a/core/modules/language/src/Tests/LanguageCustomLanguageConfigurationTest.php b/core/modules/language/src/Tests/LanguageCustomLanguageConfigurationTest.php
index bf48f58..a4c8a5d 100644
--- a/core/modules/language/src/Tests/LanguageCustomLanguageConfigurationTest.php
+++ b/core/modules/language/src/Tests/LanguageCustomLanguageConfigurationTest.php
@@ -12,7 +12,9 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Functional tests for language configuration.
+ * Adds and configures custom languages.
+ *
+ * @group language
  */
 class LanguageCustomLanguageConfigurationTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class LanguageCustomLanguageConfigurationTest extends WebTestBase {
    */
   public static $modules = array('language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom Language configuration',
-      'description' => 'Adds and configures custom languages.',
-      'group' => 'Language',
-    );
-  }
-
   /**
    * Functional tests for adding, editing and deleting languages.
    */
diff --git a/core/modules/language/src/Tests/LanguageDependencyInjectionTest.php b/core/modules/language/src/Tests/LanguageDependencyInjectionTest.php
index 23ba560..9184510 100644
--- a/core/modules/language/src/Tests/LanguageDependencyInjectionTest.php
+++ b/core/modules/language/src/Tests/LanguageDependencyInjectionTest.php
@@ -12,22 +12,14 @@
 use Drupal\language\Exception\DeleteDefaultLanguageException;
 
 /**
- * Test for dependency injected language object.
+ * Compares the default language from $GLOBALS against the dependency injected
+ * language object.
+ *
+ * @group language
  */
 class LanguageDependencyInjectionTest extends LanguageTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Language dependency injection',
-      'description' => 'Compares the default language from $GLOBALS against the dependency injected language object.',
-      'group' => 'Language',
-    );
-  }
-
-  /**
    * Test dependency injected languages against a new Language object.
    *
    * @see \Drupal\Core\Language\LanguageInterface
diff --git a/core/modules/language/src/Tests/LanguageFallbackTest.php b/core/modules/language/src/Tests/LanguageFallbackTest.php
index 13bb821..3b15601 100644
--- a/core/modules/language/src/Tests/LanguageFallbackTest.php
+++ b/core/modules/language/src/Tests/LanguageFallbackTest.php
@@ -12,17 +12,11 @@
 
 /**
  * Tests the language fallback behavior.
+ *
+ * @group language
  */
 class LanguageFallbackTest extends LanguageTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language fallback',
-      'description' => 'Tests the language fallback behavior.',
-      'group' => 'Language',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/language/src/Tests/LanguageListModuleInstallTest.php b/core/modules/language/src/Tests/LanguageListModuleInstallTest.php
index 17e433e..891ddf8 100644
--- a/core/modules/language/src/Tests/LanguageListModuleInstallTest.php
+++ b/core/modules/language/src/Tests/LanguageListModuleInstallTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for the language list configuration forms.
+ * Tests enabling Language if a module exists that calls language_list during
+ * installation.
+ *
+ * @group language
  */
 class LanguageListModuleInstallTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class LanguageListModuleInstallTest extends WebTestBase {
    */
   public static $modules = array('language_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language list during module install',
-      'description' => 'Tests enabling Language if a module exists that calls language_list during installation.',
-      'group' => 'Language',
-    );
-  }
-
   /**
    * Tests enabling Language.
    */
diff --git a/core/modules/language/src/Tests/LanguageListTest.php b/core/modules/language/src/Tests/LanguageListTest.php
index 8d0b2da..b9a3079 100644
--- a/core/modules/language/src/Tests/LanguageListTest.php
+++ b/core/modules/language/src/Tests/LanguageListTest.php
@@ -12,7 +12,9 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Functional tests for the language list configuration forms.
+ * Adds a new language and tests changing its status and the default language.
+ *
+ * @group language
  */
 class LanguageListTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class LanguageListTest extends WebTestBase {
    */
   public static $modules = array('language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language list configuration',
-      'description' => 'Adds a new language and tests changing its status and the default language.',
-      'group' => 'Language',
-    );
-  }
-
   /**
    * Functional tests for adding, editing and deleting languages.
    */
diff --git a/core/modules/language/src/Tests/LanguageNegotiationInfoTest.php b/core/modules/language/src/Tests/LanguageNegotiationInfoTest.php
index a3245ca..136e7c0 100644
--- a/core/modules/language/src/Tests/LanguageNegotiationInfoTest.php
+++ b/core/modules/language/src/Tests/LanguageNegotiationInfoTest.php
@@ -12,7 +12,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional test for language types/negotiation info.
+ * Tests alterations to language types/negotiation info.
+ *
+ * @group language
  */
 class LanguageNegotiationInfoTest extends WebTestBase {
 
@@ -26,17 +28,6 @@ class LanguageNegotiationInfoTest extends WebTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Language negotiation info',
-      'description' => 'Tests alterations to language types/negotiation info.',
-      'group' => 'Language',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   function setUp() {
     parent::setUp();
     $admin_user = $this->drupalCreateUser(array('administer languages', 'access administration pages', 'view the administration theme'));
diff --git a/core/modules/language/src/Tests/LanguagePathMonolingualTest.php b/core/modules/language/src/Tests/LanguagePathMonolingualTest.php
index 73e5b85..b99dd7f 100644
--- a/core/modules/language/src/Tests/LanguagePathMonolingualTest.php
+++ b/core/modules/language/src/Tests/LanguagePathMonolingualTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests that paths are not prefixed on a monolingual site.
+ * Confirm that paths are not changed on monolingual non-English sites.
+ *
+ * @group language
  */
 class LanguagePathMonolingualTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class LanguagePathMonolingualTest extends WebTestBase {
    */
   public static $modules = array('language', 'path');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Paths on non-English monolingual sites',
-      'description' => 'Confirm that paths are not changed on monolingual non-English sites',
-      'group' => 'Language',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/language/src/Tests/LanguageSwitchingTest.php b/core/modules/language/src/Tests/LanguageSwitchingTest.php
index 4a2d245..dd9a850 100644
--- a/core/modules/language/src/Tests/LanguageSwitchingTest.php
+++ b/core/modules/language/src/Tests/LanguageSwitchingTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Functional tests for the language switching feature.
+ *
+ * @group language
  */
 class LanguageSwitchingTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class LanguageSwitchingTest extends WebTestBase {
    */
   public static $modules = array('language', 'block', 'language_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language switching',
-      'description' => 'Tests for the language switching feature.',
-      'group' => 'Language',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/language/src/Tests/LanguageUILanguageNegotiationTest.php b/core/modules/language/src/Tests/LanguageUILanguageNegotiationTest.php
index a3fe8e8..86a62bf 100644
--- a/core/modules/language/src/Tests/LanguageUILanguageNegotiationTest.php
+++ b/core/modules/language/src/Tests/LanguageUILanguageNegotiationTest.php
@@ -19,7 +19,7 @@
 use Drupal\language\LanguageNegotiatorInterface;
 
 /**
- * Test UI language negotiation
+ * Tests UI language switching.
  *
  * 1. URL (PATH) > DEFAULT
  *    UI Language base on URL prefix, browser language preference has no
@@ -43,6 +43,8 @@
  *          UI language in site default
  *        http://example.cn/admin/config
  *          UI language in Chinese
+ *
+ * @group language
  */
 class LanguageUILanguageNegotiationTest extends WebTestBase {
 
@@ -57,14 +59,6 @@ class LanguageUILanguageNegotiationTest extends WebTestBase {
    */
   public static $modules = array('locale', 'language_test', 'block', 'user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'UI language negotiation',
-      'description' => 'Test UI language switching.',
-      'group' => 'Language',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/language/src/Tests/LanguageUrlRewritingTest.php b/core/modules/language/src/Tests/LanguageUrlRewritingTest.php
index 1079031..ef3b782 100644
--- a/core/modules/language/src/Tests/LanguageUrlRewritingTest.php
+++ b/core/modules/language/src/Tests/LanguageUrlRewritingTest.php
@@ -12,7 +12,9 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Test that URL rewriting works as expected.
+ * Tests that URL rewriting works as expected.
+ *
+ * @group language
  */
 class LanguageUrlRewritingTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class LanguageUrlRewritingTest extends WebTestBase {
    */
   public static $modules = array('language', 'language_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'URL rewriting',
-      'description' => 'Test that URL rewriting works as expected.',
-      'group' => 'Language',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/language/src/Tests/Views/ArgumentLanguageTest.php b/core/modules/language/src/Tests/Views/ArgumentLanguageTest.php
index 83111d7..2403b68 100644
--- a/core/modules/language/src/Tests/Views/ArgumentLanguageTest.php
+++ b/core/modules/language/src/Tests/Views/ArgumentLanguageTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the argument language handler.
  *
+ * @group language
  * @see \Drupal\language\Plugin\views\argument\Language.php
  */
 class ArgumentLanguageTest extends LanguageTestBase {
@@ -23,14 +24,6 @@ class ArgumentLanguageTest extends LanguageTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Argument: Language',
-      'description' => 'Tests the argument language handler.',
-      'group' => 'Views Handlers'
-    );
-  }
-
   /**
    * Tests the language argument.
    */
diff --git a/core/modules/language/src/Tests/Views/FieldLanguageTest.php b/core/modules/language/src/Tests/Views/FieldLanguageTest.php
index bc082e3..78845ee 100644
--- a/core/modules/language/src/Tests/Views/FieldLanguageTest.php
+++ b/core/modules/language/src/Tests/Views/FieldLanguageTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the field language handler.
  *
+ * @group language
  * @see \Drupal\language\Plugin\views\field\Language
  */
 class FieldLanguageTest extends LanguageTestBase {
@@ -23,14 +24,6 @@ class FieldLanguageTest extends LanguageTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Language',
-      'description' => 'Tests the field language handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * Tests the language field.
    */
diff --git a/core/modules/language/src/Tests/Views/FilterLanguageTest.php b/core/modules/language/src/Tests/Views/FilterLanguageTest.php
index f3db7c5..591ad17 100644
--- a/core/modules/language/src/Tests/Views/FilterLanguageTest.php
+++ b/core/modules/language/src/Tests/Views/FilterLanguageTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the filter language handler.
  *
+ * @group language
  * @see \Drupal\language\Plugin\views\filter\Language
  */
 class FilterLanguageTest extends LanguageTestBase {
@@ -23,14 +24,6 @@ class FilterLanguageTest extends LanguageTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: Language',
-      'description' => 'Tests the filter language handler.',
-      'group' => 'Views Handlers'
-    );
-  }
-
   /**
    * Tests the language filter.
    */
diff --git a/core/modules/language/tests/src/LanguageNegotiationUrlTest.php b/core/modules/language/tests/src/LanguageNegotiationUrlTest.php
index 6a4df28..6d1ef65 100644
--- a/core/modules/language/tests/src/LanguageNegotiationUrlTest.php
+++ b/core/modules/language/tests/src/LanguageNegotiationUrlTest.php
@@ -13,25 +13,14 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the URL and domain language negotiation.
- *
- * @group Language
- *
- * @see \Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl
+ * @coversDefaultClass \Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl
+ * @group language
  */
 class LanguageNegotiationUrlTest extends UnitTestCase {
 
   protected $languageManager;
   protected $user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language negotiation URL',
-      'description' => 'Tests the URL/domain Language negotiation plugin',
-      'group' => 'Language',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/language/tests/src/Menu/LanguageLocalTasks.php b/core/modules/language/tests/src/Menu/LanguageLocalTasks.php
index 8ec2313..2ac9615 100644
--- a/core/modules/language/tests/src/Menu/LanguageLocalTasks.php
+++ b/core/modules/language/tests/src/Menu/LanguageLocalTasks.php
@@ -12,19 +12,10 @@
 /**
  * Tests existence of language local tasks.
  *
- * @group Drupal
  * @group language
  */
 class LanguageLocalTasks extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language local tasks test',
-      'description' => 'Test existence of language local tasks.',
-      'group' => 'Language',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array(
       'language' => 'core/modules/language',
diff --git a/core/modules/link/src/Tests/LinkFieldTest.php b/core/modules/link/src/Tests/LinkFieldTest.php
index 1a5f155..b86f20a 100644
--- a/core/modules/link/src/Tests/LinkFieldTest.php
+++ b/core/modules/link/src/Tests/LinkFieldTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests link field widgets and formatters.
+ *
+ * @group link
  */
 class LinkFieldTest extends WebTestBase {
 
@@ -44,14 +46,6 @@ class LinkFieldTest extends WebTestBase {
    */
   protected $web_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Link field',
-      'description' => 'Tests link field widgets and formatters.',
-      'group' => 'Field types',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/link/src/Tests/LinkFieldUITest.php b/core/modules/link/src/Tests/LinkFieldUITest.php
index 97fda35..cdcbe04 100644
--- a/core/modules/link/src/Tests/LinkFieldUITest.php
+++ b/core/modules/link/src/Tests/LinkFieldUITest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests link field UI functionality.
+ *
+ * @group link
  */
 class LinkFieldUITest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class LinkFieldUITest extends WebTestBase {
    */
   public static $modules = array('node', 'link', 'field_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Link field UI',
-      'description' => 'Tests link field UI functionality.',
-      'group' => 'Field types',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/link/src/Tests/LinkItemTest.php b/core/modules/link/src/Tests/LinkItemTest.php
index 8125790..2d81cdc 100644
--- a/core/modules/link/src/Tests/LinkItemTest.php
+++ b/core/modules/link/src/Tests/LinkItemTest.php
@@ -14,6 +14,8 @@
 
 /**
  * Tests the new entity API for the link field type.
+ *
+ * @group link
  */
 class LinkItemTest extends FieldUnitTestBase {
 
@@ -24,14 +26,6 @@ class LinkItemTest extends FieldUnitTestBase {
    */
   public static $modules = array('link');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Link field item',
-      'description' => 'Tests the new entity API for the link field type.',
-      'group' => 'Field types',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/locale/src/Tests/LocaleConfigManagerTest.php b/core/modules/locale/src/Tests/LocaleConfigManagerTest.php
index 50cbc7d..80c5149 100644
--- a/core/modules/locale/src/Tests/LocaleConfigManagerTest.php
+++ b/core/modules/locale/src/Tests/LocaleConfigManagerTest.php
@@ -13,7 +13,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Provides tests for \Drupal\locale\LocaleConfigManager
+ * Tests that the locale config manager operates correctly.
+ *
+ * @group locale
  */
 class LocaleConfigManagerTest extends DrupalUnitTestBase {
 
@@ -25,17 +27,6 @@ class LocaleConfigManagerTest extends DrupalUnitTestBase {
   public static $modules = array('language', 'locale', 'locale_test');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Locale config manager',
-      'description' => 'Tests that the locale config manager operates correctly.',
-      'group' => 'Locale',
-    );
-  }
-
-  /**
    * Tests hasTranslation().
    */
   public function testHasTranslation() {
diff --git a/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php b/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php
index 3abe65a..b22d4b9 100644
--- a/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php
+++ b/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php
@@ -11,7 +11,9 @@
 use Drupal\locale\LocaleTypedConfig;
 
 /**
- * Tests Metadata for configuration objects.
+ * Tests translation of configuration strings.
+ *
+ * @group locale
  */
 class LocaleConfigTranslationTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class LocaleConfigTranslationTest extends WebTestBase {
    */
   public static $modules = array('locale', 'contact');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration translation',
-      'description' => 'Tests translation of configuration strings.',
-      'group' => 'Locale',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     // Add a default locale storage for all these tests.
diff --git a/core/modules/locale/src/Tests/LocaleContentTest.php b/core/modules/locale/src/Tests/LocaleContentTest.php
index bf03584..8901b23 100644
--- a/core/modules/locale/src/Tests/LocaleContentTest.php
+++ b/core/modules/locale/src/Tests/LocaleContentTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for multilingual support on nodes.
+ * Tests you can enable multilingual support on content types and configure a
+ * language for a node.
+ *
+ * @group locale
  */
 class LocaleContentTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class LocaleContentTest extends WebTestBase {
    */
   public static $modules = array('node', 'locale');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Content language settings',
-      'description' => 'Checks you can enable multilingual support on content types and configure a language for a node.',
-      'group' => 'Locale',
-    );
-  }
-
   /**
    * Verifies that machine name fields are always LTR.
    */
diff --git a/core/modules/locale/src/Tests/LocaleExportTest.php b/core/modules/locale/src/Tests/LocaleExportTest.php
index cf69ddb..be1f94f 100644
--- a/core/modules/locale/src/Tests/LocaleExportTest.php
+++ b/core/modules/locale/src/Tests/LocaleExportTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for the export of translation files.
+ * Tests the exportation of locale files.
+ *
+ * @group locale
  */
 class LocaleExportTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class LocaleExportTest extends WebTestBase {
    */
   public static $modules = array('locale');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Translation export',
-      'description' => 'Tests the exportation of locale files.',
-      'group' => 'Locale',
-    );
-  }
-
   /**
    * A user able to create languages and export translations.
    */
diff --git a/core/modules/locale/src/Tests/LocaleImportFunctionalTest.php b/core/modules/locale/src/Tests/LocaleImportFunctionalTest.php
index d822f10..179a2e9 100644
--- a/core/modules/locale/src/Tests/LocaleImportFunctionalTest.php
+++ b/core/modules/locale/src/Tests/LocaleImportFunctionalTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for the import of translation files.
+ * Tests the import of locale files.
+ *
+ * @group locale
  */
 class LocaleImportFunctionalTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class LocaleImportFunctionalTest extends WebTestBase {
    */
   public static $modules = array('locale', 'dblog');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Translation import',
-      'description' => 'Tests the import of locale files.',
-      'group' => 'Locale',
-    );
-  }
-
   /**
    * A user able to create languages and import translations.
    */
diff --git a/core/modules/locale/src/Tests/LocaleJavascriptTranslation.php b/core/modules/locale/src/Tests/LocaleJavascriptTranslation.php
index 8356693..3e90ca6 100644
--- a/core/modules/locale/src/Tests/LocaleJavascriptTranslation.php
+++ b/core/modules/locale/src/Tests/LocaleJavascriptTranslation.php
@@ -11,7 +11,9 @@
 use Drupal\Component\Utility\String;
 
 /**
- * Functional tests for JavaScript parsing for translatable strings.
+ * Tests parsing js files for translatable strings.
+ *
+ * @group locale
  */
 class LocaleJavascriptTranslation extends WebTestBase {
 
@@ -22,14 +24,6 @@ class LocaleJavascriptTranslation extends WebTestBase {
    */
   public static $modules = array('locale');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Javascript translation',
-      'description' => 'Tests parsing js files for translatable strings',
-      'group' => 'Locale',
-    );
-  }
-
   function testFileParsing() {
     $filename = drupal_get_path('module', 'locale') . '/tests/locale_test.js';
 
diff --git a/core/modules/locale/src/Tests/LocaleLibraryInfoAlterTest.php b/core/modules/locale/src/Tests/LocaleLibraryInfoAlterTest.php
index 1bf1373..5645e9a 100644
--- a/core/modules/locale/src/Tests/LocaleLibraryInfoAlterTest.php
+++ b/core/modules/locale/src/Tests/LocaleLibraryInfoAlterTest.php
@@ -12,6 +12,8 @@
  * Tests localization of the JavaScript libraries.
  *
  * Currently, only the jQuery datepicker is localized using Drupal translations.
+ *
+ * @group locale
  */
 class LocaleLibraryInfoAlterTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class LocaleLibraryInfoAlterTest extends WebTestBase {
    */
   public static $modules = array('locale');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Javascript library localization',
-      'description' => 'Tests localization of the JavaScript libraries.',
-      'group' => 'Locale',
-    );
-  }
-
   /**
      * Verifies that the datepicker can be localized.
      *
diff --git a/core/modules/locale/src/Tests/LocaleLocaleLookupTest.php b/core/modules/locale/src/Tests/LocaleLocaleLookupTest.php
index 908ff19..5535f32 100644
--- a/core/modules/locale/src/Tests/LocaleLocaleLookupTest.php
+++ b/core/modules/locale/src/Tests/LocaleLocaleLookupTest.php
@@ -10,6 +10,11 @@
 use Drupal\Core\Language\Language;
 use Drupal\simpletest\WebTestBase;
 
+/**
+ * Tests that LocaleLookup does not cause circular references.
+ *
+ * @group locale
+ */
 class LocaleLocaleLookupTest extends WebTestBase {
 
   /**
@@ -20,17 +25,6 @@ class LocaleLocaleLookupTest extends WebTestBase {
   public static $modules = array('locale', 'menu_link');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Test LocaleLookup',
-      'description' => 'Tests LocaleLookup does not cause circular references.',
-      'group' => 'Locale',
-    );
-  }
-
-  /**
    * Tests hasTranslation().
    */
   public function testCircularDependency() {
diff --git a/core/modules/locale/src/Tests/LocalePathTest.php b/core/modules/locale/src/Tests/LocalePathTest.php
index b8cc838..8b1308a 100644
--- a/core/modules/locale/src/Tests/LocalePathTest.php
+++ b/core/modules/locale/src/Tests/LocalePathTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for configuring a different path alias per language.
+ * Tests you can configure a language for individual URL aliases.
+ *
+ * @group locale
  */
 class LocalePathTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class LocalePathTest extends WebTestBase {
    */
   public static $modules = array('node', 'locale', 'path', 'views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Path language settings',
-      'description' => 'Checks you can configure a language for individual URL aliases.',
-      'group' => 'Locale',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/locale/src/Tests/LocalePluralFormatTest.php b/core/modules/locale/src/Tests/LocalePluralFormatTest.php
index c8adf97..8d992a3 100644
--- a/core/modules/locale/src/Tests/LocalePluralFormatTest.php
+++ b/core/modules/locale/src/Tests/LocalePluralFormatTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests plural format handling functionality.
+ * Tests plural handling for various languages.
+ *
+ * @group locale
  */
 class LocalePluralFormatTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class LocalePluralFormatTest extends WebTestBase {
    */
   public static $modules = array('locale');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Plural handling',
-      'description' => 'Tests plural handling for various languages.',
-      'group' => 'Locale',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/locale/src/Tests/LocaleStringTest.php b/core/modules/locale/src/Tests/LocaleStringTest.php
index a9b45ec..965f7d9 100644
--- a/core/modules/locale/src/Tests/LocaleStringTest.php
+++ b/core/modules/locale/src/Tests/LocaleStringTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for the locale string data API.
+ * Tests the locale string storage, string objects and data API.
+ *
+ * @group locale
  */
 class LocaleStringTest extends WebTestBase {
 
@@ -29,17 +31,6 @@ class LocaleStringTest extends WebTestBase {
    */
   protected $storage;
 
-  /**
-   * @return multitype:string
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'String storage and objects',
-      'description' => 'Tests the locale string storage, string objects and data API.',
-      'group' => 'Locale',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Add a default locale storage for all these tests.
diff --git a/core/modules/locale/src/Tests/LocaleTranslateStringTourTest.php b/core/modules/locale/src/Tests/LocaleTranslateStringTourTest.php
index 10db3b9..8c2f5f3 100644
--- a/core/modules/locale/src/Tests/LocaleTranslateStringTourTest.php
+++ b/core/modules/locale/src/Tests/LocaleTranslateStringTourTest.php
@@ -10,7 +10,9 @@
 use Drupal\tour\Tests\TourTestBase;
 
 /**
- * Tests tour functionality.
+ * Tests the Translate Interface tour.
+ *
+ * @group locale
  */
 class LocaleTranslateStringTourTest extends TourTestBase {
 
@@ -28,14 +30,6 @@ class LocaleTranslateStringTourTest extends TourTestBase {
    */
   public static $modules = array('locale', 'tour');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Translate Interface tour tests',
-      'description' => 'Tests the Translate Interface tour.',
-      'group' => 'Tour',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->adminUser = $this->drupalCreateUser(array('translate interface', 'access tour', 'administer languages'));
diff --git a/core/modules/locale/src/Tests/LocaleTranslationUiTest.php b/core/modules/locale/src/Tests/LocaleTranslationUiTest.php
index c43e9a9..55935f7 100644
--- a/core/modules/locale/src/Tests/LocaleTranslationUiTest.php
+++ b/core/modules/locale/src/Tests/LocaleTranslationUiTest.php
@@ -13,7 +13,10 @@
 use Drupal\Component\Utility\String;
 
 /**
- * Functional test for string translation and validation.
+ * Adds a new locale and translates its name. Checks the validation of
+ * translation strings and search results.
+ *
+ * @group locale
  */
 class LocaleTranslationUiTest extends WebTestBase {
 
@@ -24,14 +27,6 @@ class LocaleTranslationUiTest extends WebTestBase {
    */
   public static $modules = array('locale');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'String translate, search and validate',
-      'description' => 'Adds a new locale and translates its name. Checks the validation of translation strings and search results.',
-      'group' => 'Locale',
-    );
-  }
-
   /**
    *  Enable interface translation to English
    */
diff --git a/core/modules/locale/src/Tests/LocaleUpdateCronTest.php b/core/modules/locale/src/Tests/LocaleUpdateCronTest.php
index d0da24e..64d3739 100644
--- a/core/modules/locale/src/Tests/LocaleUpdateCronTest.php
+++ b/core/modules/locale/src/Tests/LocaleUpdateCronTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\locale\Tests;
 
 /**
- * Tests for translation update using cron.
+ * Tests for using cron to update project interface translations.
+ *
+ * @group locale
  */
 class LocaleUpdateCronTest extends LocaleUpdateBase {
 
@@ -21,14 +23,6 @@ class LocaleUpdateCronTest extends LocaleUpdateBase {
    */
   public static $modules = array('update', 'locale', 'locale_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update translations using cron',
-      'description' => 'Tests for using cron to update project interface translations.',
-      'group' => 'Locale',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $admin_user = $this->drupalCreateUser(array('administer modules', 'administer site configuration', 'administer languages', 'access administration pages', 'translate interface'));
diff --git a/core/modules/locale/src/Tests/LocaleUpdateInterfaceTest.php b/core/modules/locale/src/Tests/LocaleUpdateInterfaceTest.php
index 0a502b6..2304aa5 100644
--- a/core/modules/locale/src/Tests/LocaleUpdateInterfaceTest.php
+++ b/core/modules/locale/src/Tests/LocaleUpdateInterfaceTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for the locale translation update status user interfaces.
+ * Tests for the user interface of project interface translations.
+ *
+ * @group locale
  */
 class LocaleUpdateInterfaceTest extends LocaleUpdateBase {
 
@@ -21,14 +23,6 @@ class LocaleUpdateInterfaceTest extends LocaleUpdateBase {
    */
   public static $modules = array('update', 'locale', 'locale_test_translate');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update translations user interface',
-      'description' => 'Tests for the user interface of project interface translations.',
-      'group' => 'Locale',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $admin_user = $this->drupalCreateUser(array('administer modules', 'administer site configuration', 'administer languages', 'access administration pages', 'translate interface'));
diff --git a/core/modules/locale/src/Tests/LocaleUpdateTest.php b/core/modules/locale/src/Tests/LocaleUpdateTest.php
index 268f72f..c2a1128 100644
--- a/core/modules/locale/src/Tests/LocaleUpdateTest.php
+++ b/core/modules/locale/src/Tests/LocaleUpdateTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for update translations.
+ * Tests for updating the interface translations of projects.
+ *
+ * @group locale
  */
 class LocaleUpdateTest extends LocaleUpdateBase {
 
@@ -21,14 +23,6 @@ class LocaleUpdateTest extends LocaleUpdateBase {
    */
   public static $modules = array('update', 'locale', 'locale_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update translations',
-      'description' => 'Tests for updating the interface translations of projects.',
-      'group' => 'Locale',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     module_load_include('compare.inc', 'locale');
diff --git a/core/modules/locale/tests/src/LocaleLookupTest.php b/core/modules/locale/tests/src/LocaleLookupTest.php
index a62e40d..fb5d9af 100644
--- a/core/modules/locale/tests/src/LocaleLookupTest.php
+++ b/core/modules/locale/tests/src/LocaleLookupTest.php
@@ -12,12 +12,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests locale translation language fallback.
- *
- * @group Drupal
- * @group Locale
- *
  * @coversDefaultClass \Drupal\locale\LocaleLookup
+ * @group locale
  */
 class LocaleLookupTest extends UnitTestCase {
 
@@ -66,17 +62,6 @@ class LocaleLookupTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Locale language fallback tests',
-      'description' => 'Test locale module language fallback implementation.',
-      'group' => 'locale',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->storage = $this->getMock('Drupal\locale\StringStorageInterface');
     $this->cache = $this->getMock('Drupal\Core\Cache\CacheBackendInterface');
diff --git a/core/modules/locale/tests/src/LocaleTranslationTest.php b/core/modules/locale/tests/src/LocaleTranslationTest.php
index 34c24a8..befc3b7 100644
--- a/core/modules/locale/tests/src/LocaleTranslationTest.php
+++ b/core/modules/locale/tests/src/LocaleTranslationTest.php
@@ -11,9 +11,7 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests for locale translation class.
- *
- * @see \Drupal\locale\LocaleTranslation
+ * @coversDefaultClass \Drupal\locale\LocaleTranslation
  * @group locale
  */
 class LocaleTranslationTest extends UnitTestCase {
@@ -32,14 +30,6 @@ class LocaleTranslationTest extends UnitTestCase {
    */
   protected $languageManager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Locale translation tests',
-      'description' => 'Test locale module translation implementation.',
-      'group' => 'locale',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/locale/tests/src/Menu/LocaleLocalTasksTest.php b/core/modules/locale/tests/src/Menu/LocaleLocalTasksTest.php
index 16edc7e..c190b85 100644
--- a/core/modules/locale/tests/src/Menu/LocaleLocalTasksTest.php
+++ b/core/modules/locale/tests/src/Menu/LocaleLocalTasksTest.php
@@ -10,21 +10,12 @@
 use Drupal\Tests\Core\Menu\LocalTaskIntegrationTest;
 
 /**
- * Tests existence of locale local tasks.
+ * Tests locale local tasks.
  *
- * @group Drupal
- * @group Locale
+ * @group locale
  */
 class LocaleLocalTasksTest extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Locale local tasks test',
-      'description' => 'Test locale local tasks.',
-      'group' => 'Locale',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array(
       'locale' => 'core/modules/locale',
diff --git a/core/modules/menu_link/tests/src/MenuTreeTest.php b/core/modules/menu_link/tests/src/MenuTreeTest.php
index bd77a45..747335a 100644
--- a/core/modules/menu_link/tests/src/MenuTreeTest.php
+++ b/core/modules/menu_link/tests/src/MenuTreeTest.php
@@ -21,12 +21,8 @@
 }
 
 /**
- * Tests the menu tree.
- *
- * @group Drupal
- * @group menu_link
- *
  * @coversDefaultClass \Drupal\menu_link\MenuTree
+ * @group menu_link
  */
 class MenuTreeTest extends UnitTestCase {
 
@@ -108,17 +104,6 @@ class MenuTreeTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Tests \Drupal\menu_link\MenuTree',
-      'description' => '',
-      'group' => 'Menu',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->connection = $this->getMockBuilder('Drupal\Core\Database\Connection')
       ->disableOriginalConstructor()
diff --git a/core/modules/menu_ui/src/Tests/MenuCacheTagsTest.php b/core/modules/menu_ui/src/Tests/MenuCacheTagsTest.php
index 8c73348..c863b8d 100644
--- a/core/modules/menu_ui/src/Tests/MenuCacheTagsTest.php
+++ b/core/modules/menu_ui/src/Tests/MenuCacheTagsTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the Menu and Menu Link entities' cache tags.
+ *
+ * @group menu_ui
  */
 class MenuCacheTagsTest extends PageCacheTagsTestBase {
 
@@ -20,17 +22,6 @@ class MenuCacheTagsTest extends PageCacheTagsTestBase {
   public static $modules = array('menu_ui', 'block', 'test_page_test');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => "Menu & Menu link entities cache tags",
-      'description' => "Test the Menu & Menu link entities' cache tags.",
-      'group' => 'Menu',
-    );
-  }
-
-  /**
    * Tests cache tags presence and invalidation of the Menu entity.
    *
    * Tests the following cache tags:
diff --git a/core/modules/menu_ui/src/Tests/MenuLanguageTest.php b/core/modules/menu_ui/src/Tests/MenuLanguageTest.php
index 971e821..c8fcbd9 100644
--- a/core/modules/menu_ui/src/Tests/MenuLanguageTest.php
+++ b/core/modules/menu_ui/src/Tests/MenuLanguageTest.php
@@ -12,7 +12,10 @@
 use Drupal\system\Entity\Menu;
 
 /**
- * Defines a test class for testing menu language functionality.
+ * Create menu and menu links in non-English language, and edit language
+ * settings.
+ *
+ * @group menu_ui
  */
 class MenuLanguageTest extends MenuWebTestBase {
 
@@ -26,14 +29,6 @@ class MenuLanguageTest extends MenuWebTestBase {
   protected $admin_user;
   protected $menu;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Menu language',
-      'description' => 'Create menu and menu links in non-English language, and edit language settings.',
-      'group' => 'Menu',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/menu_ui/src/Tests/MenuNodeTest.php b/core/modules/menu_ui/src/Tests/MenuNodeTest.php
index 9c1c67e..819bd56 100644
--- a/core/modules/menu_ui/src/Tests/MenuNodeTest.php
+++ b/core/modules/menu_ui/src/Tests/MenuNodeTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test menu settings for nodes.
+ * Add, edit, and delete a node with menu link.
+ *
+ * @group menu_ui
  */
 class MenuNodeTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class MenuNodeTest extends WebTestBase {
    */
   public static $modules = array('menu_ui', 'test_page_test', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Menu settings for nodes',
-      'description' => 'Add, edit, and delete a node with menu link.',
-      'group' => 'Menu',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page'));
diff --git a/core/modules/menu_ui/src/Tests/MenuTest.php b/core/modules/menu_ui/src/Tests/MenuTest.php
index e9ce5ef..f707eb9 100644
--- a/core/modules/menu_ui/src/Tests/MenuTest.php
+++ b/core/modules/menu_ui/src/Tests/MenuTest.php
@@ -11,7 +11,10 @@
 use Drupal\system\Entity\Menu;
 
 /**
- * Defines a test class for testing menu and menu link functionality.
+ * Add a custom menu, add menu links to the custom menu and Tools menu, check
+ * their data, and delete them using the UI.
+ *
+ * @group menu_ui
  */
 class MenuTest extends MenuWebTestBase {
 
@@ -50,14 +53,6 @@ class MenuTest extends MenuWebTestBase {
    */
   protected $items;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Menu link creation/deletion',
-      'description' => 'Add a custom menu, add menu links to the custom menu and Tools menu, check their data, and delete them using the UI.',
-      'group' => 'Menu'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/menu_ui/src/Tests/MenuUninstallTest.php b/core/modules/menu_ui/src/Tests/MenuUninstallTest.php
index 28fc5b7..c8309ff 100644
--- a/core/modules/menu_ui/src/Tests/MenuUninstallTest.php
+++ b/core/modules/menu_ui/src/Tests/MenuUninstallTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests that uninstalling menu does not remove custom menus.
+ *
+ * @group menu_ui
  */
 class MenuUninstallTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class MenuUninstallTest extends WebTestBase {
    */
   public static $modules = array('menu_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Uninstall menu test',
-      'description' => 'Tests that uninstalling menu does not remove custom menus.',
-      'group' => 'Menu',
-    );
-  }
-
   /**
    * Tests Menu uninstall.
    */
diff --git a/core/modules/migrate/tests/src/MigrateExecutableTest.php b/core/modules/migrate/tests/src/MigrateExecutableTest.php
index fd0da23..4499771 100644
--- a/core/modules/migrate/tests/src/MigrateExecutableTest.php
+++ b/core/modules/migrate/tests/src/MigrateExecutableTest.php
@@ -13,12 +13,8 @@
 use Drupal\migrate\Row;
 
 /**
- * Tests the migrate executable.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\migrate\Tests\MigrateExecutableTest
  * @group migrate
- *
- * @covers \Drupal\migrate\Tests\MigrateExecutableTest
  */
 class MigrateExecutableTest extends MigrateTestCase {
 
@@ -50,17 +46,6 @@ class MigrateExecutableTest extends MigrateTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Migrate executable',
-      'description' => 'Tests the migrate executable.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $this->migration = $this->getMigration();
diff --git a/core/modules/migrate/tests/src/MigrateExecuteableMemoryExceededTest.php b/core/modules/migrate/tests/src/MigrateExecuteableMemoryExceededTest.php
index e4b6e24..c296f30 100644
--- a/core/modules/migrate/tests/src/MigrateExecuteableMemoryExceededTest.php
+++ b/core/modules/migrate/tests/src/MigrateExecuteableMemoryExceededTest.php
@@ -10,7 +10,6 @@
 /**
  * Tests the \Drupal\migrate\MigrateExecutable::memoryExceeded() method.
  *
- * @group Drupal
  * @group migrate
  */
 class MigrateExecuteableMemoryExceededTest extends MigrateTestCase {
@@ -53,17 +52,6 @@ class MigrateExecuteableMemoryExceededTest extends MigrateTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Migrate executable memory exceeded',
-      'description' => 'Tests the migrate executable memoryExceeded method.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $this->migration = $this->getMigration();
diff --git a/core/modules/migrate/tests/src/MigrateSqlIdMapEnsureTablesTest.php b/core/modules/migrate/tests/src/MigrateSqlIdMapEnsureTablesTest.php
index 6727aab..d353d2d 100644
--- a/core/modules/migrate/tests/src/MigrateSqlIdMapEnsureTablesTest.php
+++ b/core/modules/migrate/tests/src/MigrateSqlIdMapEnsureTablesTest.php
@@ -10,9 +10,8 @@
 use Drupal\migrate\Plugin\MigrateIdMapInterface;
 
 /**
- * Tests the \Drupal\migrate\Plugin\migrate\id_map\Sql::ensureTables() method.
+ * Tests the SQL ID map plugin ensureTables() method.
  *
- * @group Drupal
  * @group migrate
  */
 class MigrateSqlIdMapEnsureTablesTest extends MigrateTestCase {
@@ -27,17 +26,6 @@ class MigrateSqlIdMapEnsureTablesTest extends MigrateTestCase {
   );
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Sql::ensureTables()',
-      'description' => 'Tests the SQL ID map plugin ensureTables() method.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
    * Tests the ensureTables method when the tables do not exist.
    */
   public function testEnsureTablesNotExist() {
diff --git a/core/modules/migrate/tests/src/MigrateSqlIdMapTest.php b/core/modules/migrate/tests/src/MigrateSqlIdMapTest.php
index 577006f..f7828a2 100644
--- a/core/modules/migrate/tests/src/MigrateSqlIdMapTest.php
+++ b/core/modules/migrate/tests/src/MigrateSqlIdMapTest.php
@@ -13,9 +13,8 @@
 use Drupal\migrate\Row;
 
 /**
- * Tests the SQL based ID map implementation.
+ * Tests the SQL ID map plugin.
  *
- * @group Drupal
  * @group migrate
  */
 class MigrateSqlIdMapTest extends MigrateTestCase {
@@ -45,17 +44,6 @@ class MigrateSqlIdMapTest extends MigrateTestCase {
   protected $database;
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'SQL ID map plugin',
-      'description' => 'Tests the SQL ID map plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
    * Creates a test SQL ID map plugin.
    *
    * @param array $database_contents
diff --git a/core/modules/migrate/tests/src/RowTest.php b/core/modules/migrate/tests/src/RowTest.php
index c30375c..1e9fa56 100644
--- a/core/modules/migrate/tests/src/RowTest.php
+++ b/core/modules/migrate/tests/src/RowTest.php
@@ -12,12 +12,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests for Row class.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\migrate\Row
  * @group migrate
- *
- * @covers \Drupal\migrate\Row
  */
 class RowTest extends UnitTestCase {
 
@@ -55,17 +51,6 @@ class RowTest extends UnitTestCase {
   protected $testHashMod = '9476aab0b62b3f47342cc6530441432e5612dcba7ca84115bbab5cceaca1ecb3';
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Row class functionality',
-      'description' => 'Tests Row class functionality.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
    * Tests object creation: empty.
    */
   public function testRowWithoutData() {
diff --git a/core/modules/migrate/tests/src/destination/PerComponentEntityDisplayTest.php b/core/modules/migrate/tests/src/destination/PerComponentEntityDisplayTest.php
index d36acb4..ac26f3a 100644
--- a/core/modules/migrate/tests/src/destination/PerComponentEntityDisplayTest.php
+++ b/core/modules/migrate/tests/src/destination/PerComponentEntityDisplayTest.php
@@ -14,23 +14,11 @@
 /**
  * Tests the entity display destination plugin.
  *
- * @group Drupal
  * @group migrate
  */
 class PerComponentEntityDisplayTest extends MigrateTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity display destination plugin',
-      'description' => 'Tests the entity display destination plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
    * Tests the entity display import method.
    */
   public function testImport() {
diff --git a/core/modules/migrate/tests/src/destination/PerComponentEntityFormDisplayTest.php b/core/modules/migrate/tests/src/destination/PerComponentEntityFormDisplayTest.php
index 8d24988..d1aa648 100644
--- a/core/modules/migrate/tests/src/destination/PerComponentEntityFormDisplayTest.php
+++ b/core/modules/migrate/tests/src/destination/PerComponentEntityFormDisplayTest.php
@@ -14,23 +14,11 @@
 /**
  * Tests the entity display destination plugin.
  *
- * @group Drupal
  * @group migrate
  */
 class PerComponentEntityFormDisplayTest extends MigrateTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity display destination plugin',
-      'description' => 'Tests the entity display destination plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
    * Tests the entity display import method.
    */
   public function testImport() {
diff --git a/core/modules/migrate/tests/src/process/CallbackTest.php b/core/modules/migrate/tests/src/process/CallbackTest.php
index c4ace45..1176791 100644
--- a/core/modules/migrate/tests/src/process/CallbackTest.php
+++ b/core/modules/migrate/tests/src/process/CallbackTest.php
@@ -10,25 +10,15 @@
 use Drupal\migrate\Plugin\migrate\process\Callback;
 
 /**
+ * Tests the callback process plugin.
+ *
  * @group migrate
- * @group Drupal
  */
 class CallbackTest extends MigrateProcessTestCase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Callback process plugin',
-      'description' => 'Tests the callback process plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->plugin = new TestCallback();
     parent::setUp();
diff --git a/core/modules/migrate/tests/src/process/ConcatTest.php b/core/modules/migrate/tests/src/process/ConcatTest.php
index 22be55e..f55a997 100644
--- a/core/modules/migrate/tests/src/process/ConcatTest.php
+++ b/core/modules/migrate/tests/src/process/ConcatTest.php
@@ -10,25 +10,15 @@
 use Drupal\migrate\Plugin\migrate\process\Concat;
 
 /**
+ * Tests the concat process plugin.
+ *
  * @group migrate
- * @group Drupal
  */
 class ConcatTest extends MigrateProcessTestCase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Concat process plugin',
-      'description' => 'Tests the concat process plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->plugin = new TestConcat();
     parent::setUp();
diff --git a/core/modules/migrate/tests/src/process/DedupeEntityTest.php b/core/modules/migrate/tests/src/process/DedupeEntityTest.php
index 6f9512d..1e4bee5 100644
--- a/core/modules/migrate/tests/src/process/DedupeEntityTest.php
+++ b/core/modules/migrate/tests/src/process/DedupeEntityTest.php
@@ -10,12 +10,8 @@
 use Drupal\Component\Utility\Unicode;
 
 /**
- * Test the deduplication entity process plugin.
- *
+ * @coversDefaultClass \Drupal\migrate\Plugin\migrate\process\DedupeEntity
  * @group migrate
- * @group Drupal
- *
- * @see \Drupal\migrate\Plugin\migrate\process\DedupeEntity
  */
 class DedupeEntityTest extends MigrateProcessTestCase {
 
@@ -46,17 +42,6 @@ class DedupeEntityTest extends MigrateProcessTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Dedupe entity process plugin',
-      'description' => 'Tests the entity deduplication process plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->entityQuery = $this->getMockBuilder('Drupal\Core\Entity\Query\QueryInterface')
       ->disableOriginalConstructor()
diff --git a/core/modules/migrate/tests/src/process/ExtractTest.php b/core/modules/migrate/tests/src/process/ExtractTest.php
index 5266abf..f4f3d1c 100644
--- a/core/modules/migrate/tests/src/process/ExtractTest.php
+++ b/core/modules/migrate/tests/src/process/ExtractTest.php
@@ -9,10 +9,7 @@
 use Drupal\migrate\Plugin\migrate\process\Extract;
 
 /**
- * Tests the extract plugin.
- *
- * @see \Drupal\migrate\Plugin\migrate\process\Extract
- * @group Drupal
+ * @coversDefaultClass \Drupal\migrate\Plugin\migrate\process\Extract
  * @group migrate
  */
 class ExtractTest extends MigrateProcessTestCase {
@@ -20,17 +17,6 @@ class ExtractTest extends MigrateProcessTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Extract process plugin',
-      'description' => 'Tests the extract process plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $configuration['index'] = array('foo');
     $this->plugin = new Extract($configuration, 'map', array());
diff --git a/core/modules/migrate/tests/src/process/FlattenTest.php b/core/modules/migrate/tests/src/process/FlattenTest.php
index d1f8c35..179b830 100644
--- a/core/modules/migrate/tests/src/process/FlattenTest.php
+++ b/core/modules/migrate/tests/src/process/FlattenTest.php
@@ -11,23 +11,11 @@
 /**
  * Tests the flatten plugin.
  *
- * @group Drupal
  * @group migrate
  */
 class FlattenTest extends MigrateProcessTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Flatten process plugin',
-      'description' => 'Tests the flatten process plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
    * Test that various array flatten operations work properly.
    */
   public function testFlatten() {
diff --git a/core/modules/migrate/tests/src/process/GetTest.php b/core/modules/migrate/tests/src/process/GetTest.php
index a268e13..ac84b42 100644
--- a/core/modules/migrate/tests/src/process/GetTest.php
+++ b/core/modules/migrate/tests/src/process/GetTest.php
@@ -10,25 +10,15 @@
 use Drupal\migrate\Row;
 
 /**
+ * Tests the get process plugin.
+ *
  * @group migrate
- * @group Drupal
  */
 class GetTest extends MigrateProcessTestCase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Get process plugin',
-      'description' => 'Tests the get process plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->plugin = new TestGet();
     parent::setUp();
diff --git a/core/modules/migrate/tests/src/process/IteratorTest.php b/core/modules/migrate/tests/src/process/IteratorTest.php
index 9ca2f62..a879c22 100644
--- a/core/modules/migrate/tests/src/process/IteratorTest.php
+++ b/core/modules/migrate/tests/src/process/IteratorTest.php
@@ -17,7 +17,6 @@
  * Tests the iterator process plugin.
  *
  * @group migrate
- * @group Drupal
  */
 class IteratorTest extends MigrateTestCase {
 
@@ -36,17 +35,6 @@ class IteratorTest extends MigrateTestCase {
   );
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Iterator process plugin',
-      'description' => 'Tests the iterator process plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
    * Tests the iterator process plugin.
    */
   public function testIterator() {
diff --git a/core/modules/migrate/tests/src/process/MachineNameTest.php b/core/modules/migrate/tests/src/process/MachineNameTest.php
index c1c41c6..4a48672 100644
--- a/core/modules/migrate/tests/src/process/MachineNameTest.php
+++ b/core/modules/migrate/tests/src/process/MachineNameTest.php
@@ -12,7 +12,6 @@
  * Tests the machine name process plugin.
  *
  * @group migrate
- * @group Drupal
  */
 class MachineNameTest extends MigrateProcessTestCase {
 
@@ -26,17 +25,6 @@ class MachineNameTest extends MigrateProcessTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Machine mame process plugin',
-      'description' => 'Tests the machine name process plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->transliteration = $this->getMockBuilder('Drupal\Component\Transliteration\TransliterationInterface')
       ->disableOriginalConstructor()
diff --git a/core/modules/migrate/tests/src/process/StaticMapTest.php b/core/modules/migrate/tests/src/process/StaticMapTest.php
index 774afba..a3f90c0 100644
--- a/core/modules/migrate/tests/src/process/StaticMapTest.php
+++ b/core/modules/migrate/tests/src/process/StaticMapTest.php
@@ -9,25 +9,15 @@
 use Drupal\migrate\Plugin\migrate\process\StaticMap;
 
 /**
+ * Tests the static map process plugin.
+ *
  * @group migrate
- * @group Drupal
  */
 class StaticMapTest extends MigrateProcessTestCase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Map process plugin',
-      'description' => 'Tests the map process plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->row = $this->getMockBuilder('Drupal\migrate\Row')
       ->disableOriginalConstructor()
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateActionConfigSchemaTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateActionConfigSchemaTest.php
index a0d2792..e8e1048 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateActionConfigSchemaTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateActionConfigSchemaTest.php
@@ -10,7 +10,9 @@
 use Drupal\migrate\MigrateExecutable;
 
 /**
- * Tests the language config schema.
+ * Tests the configuration schema of action module.
+ *
+ * @group migrate_drupal
  */
 class MigrateActionConfigSchemaTest extends MigrateConfigSchemaBase {
   /**
@@ -23,17 +25,6 @@ class MigrateActionConfigSchemaTest extends MigrateConfigSchemaBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate action configuration schema',
-      'description'  => 'Tests the configuration schema of action module',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_action_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateActionConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateActionConfigsTest.php
index b3e36dd..65988ee 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateActionConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateActionConfigsTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Action module.
+ * Upgrade variables to action.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateActionConfigsTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateActionConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to action.settings.yml',
-      'description'  => 'Upgrade variables to action.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_action_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorConfigsTest.php
index 2cb114a..ddc94ac 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorConfigsTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Aggregator module.
+ * Upgrade variables to aggregator.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateAggregatorConfigsTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateAggregatorConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to aggregator.settings.yml',
-      'description'  => 'Upgrade variables to aggregator.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_aggregator_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorFeedTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorFeedTest.php
index 6b57800..1317bca 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorFeedTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorFeedTest.php
@@ -13,7 +13,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of aggregator feed entities.
+ * Upgrade variables to aggregator_feed entities.
+ *
+ * @group migrate_drupal
  */
 class MigrateAggregatorFeedTest extends MigrateDrupalTestBase {
 
@@ -22,17 +24,6 @@ class MigrateAggregatorFeedTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to aggregator_feed entities.',
-      'description'  => 'Upgrade variables to aggregator_feed entities',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_aggregator_feed');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorItemTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorItemTest.php
index 520dccf..1c98398 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorItemTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorItemTest.php
@@ -13,7 +13,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Test Drupal 6 aggregator item migration to Drupal 8.
+ * Upgrade aggregator items.
+ *
+ * @group migrate_drupal
  */
 class MigrateAggregatorItemTest extends MigrateDrupalTestBase {
 
@@ -22,17 +24,6 @@ class MigrateAggregatorItemTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate aggregator items',
-      'description'  => 'Upgrade aggregator items',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     // Add some id mappings for the dependant migrations.
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockContentTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockContentTest.php
index b6c2321..808052b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockContentTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockContentTest.php
@@ -15,7 +15,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 custom block to Drupal 8 migration.
+ * Upgrade custom blocks.
+ *
+ * @group migrate_drupal
  */
 class MigrateBlockContentTest extends MigrateDrupalTestBase {
 
@@ -24,17 +26,6 @@ class MigrateBlockContentTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate custom blocks.',
-      'description'  => 'Upgrade custom blocks.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $this->prepareIdMappings(array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockTest.php
index 313e780..2a3d330 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Test the block settings migration.
+ * Upgrade block settings to block.block.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateBlockTest extends MigrateDrupalTestBase {
 
@@ -32,17 +34,6 @@ class MigrateBlockTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate block settings to block.block.*.yml',
-      'description'  => 'Upgrade block settings to block.block.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $entities = array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateBookConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateBookConfigsTest.php
index 6f2e179..edc0efc 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateBookConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateBookConfigsTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Book module.
+ * Upgrade variables to book.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateBookConfigsTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateBookConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to book.settings.yml',
-      'description'  => 'Upgrade variables to book.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_book_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateBookTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateBookTest.php
index d7fc9a3..d944d99 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateBookTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateBookTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 book structure to Drupal 8 migration.
+ * Upgrade book structure.
+ *
+ * @group migrate_drupal
  */
 class MigrateBookTest extends MigrateDrupalTestBase {
 
@@ -20,17 +22,6 @@ class MigrateBookTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate book',
-      'description'  => 'Upgrade book structure',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $id_mappings = array();
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php
index 17171c2..9f82faf 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php
@@ -10,7 +10,9 @@
 use Drupal\migrate\MigrateExecutable;
 
 /**
- * Test cck field revision migration from Drupal 6 to 8.
+ * CCK field revision migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateCckFieldRevisionTest extends MigrateNodeTestBase {
 
@@ -24,17 +26,6 @@ class MigrateCckFieldRevisionTest extends MigrateNodeTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate CCK field revisions',
-      'description'  => 'CCK field revision migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     entity_create('field_config', array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php
index 1d5c3ce..b68f579 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php
@@ -10,7 +10,9 @@
 use Drupal\migrate\MigrateExecutable;
 
 /**
- * Test cck field migration from Drupal 6 to 8.
+ * CCK field content migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateCckFieldValuesTest extends MigrateNodeTestBase {
 
@@ -24,17 +26,6 @@ class MigrateCckFieldValuesTest extends MigrateNodeTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate CCK fields',
-      'description'  => 'CCK field content migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     entity_create('field_config', array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTest.php
index d07b02b..f043a5b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTest.php
@@ -13,7 +13,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 to Drupal 8 comment migration.
+ * Upgrade comments.
+ *
+ * @group migrate_drupal
  */
 class MigrateCommentTest extends MigrateDrupalTestBase {
 
@@ -22,18 +24,6 @@ class MigrateCommentTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate comments.',
-      'description'  => 'Upgrade comments.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     entity_create('node_type', array('type' => 'page'))->save();
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTypeTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTypeTest.php
index e31159e..1a3a6b8 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTypeTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTypeTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 to Drupal 8 comment type migration.
+ * Upgrade comment type.
+ *
+ * @group migrate_drupal
  */
 class MigrateCommentTypeTest extends MigrateDrupalTestBase {
 
@@ -20,18 +22,6 @@ class MigrateCommentTypeTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate comment type.',
-      'description'  => 'Upgrade comment type.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityDisplay.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityDisplay.php
index 4d9ca86..06f59e9 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityDisplay.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityDisplay.php
@@ -8,7 +8,9 @@
 namespace Drupal\migrate_drupal\Tests\d6;
 
 /**
- * Tests comment variables migrated into an entity display.
+ * Upgrade comment variables to entity.display.node.*.default.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateCommentVariableEntityDisplay extends MigrateCommentVariableDisplayBase {
 
@@ -23,17 +25,6 @@ class MigrateCommentVariableEntityDisplay extends MigrateCommentVariableDisplayB
   protected $types = array('page', 'story');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate comment variables to entity displays,',
-      'description'  => 'Upgrade comment variables to entity.display.node.*.default.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
    * Tests comment variables migrated into an entity display.
    */
   public function testCommentEntityDisplay() {
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplay.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplay.php
index c58d55b..96ddef6 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplay.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplay.php
@@ -8,7 +8,9 @@
 namespace Drupal\migrate_drupal\Tests\d6;
 
 /**
- * Tests comment variables migrated into an entity display.
+ * Upgrade comment variables to entity.form_display.node.*.default.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateCommentVariableEntityFormDisplay extends MigrateCommentVariableDisplayBase {
 
@@ -18,17 +20,6 @@ class MigrateCommentVariableEntityFormDisplay extends MigrateCommentVariableDisp
   const MIGRATION = 'd6_comment_entity_form_display';
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate comment variables to entity form displays,',
-      'description'  => 'Upgrade comment variables to entity.form_display.node.*.default.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
    * Tests comment variables migrated into an entity display.
    */
   public function testCommentEntityFormDisplay() {
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableField.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableField.php
index c5c88c4..9ccaa7d 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableField.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableField.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests comment variables migrated into a field entity.
+ * Upgrade comment variables  to field.field.node.comment.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateCommentVariableField extends MigrateDrupalTestBase {
 
@@ -20,17 +22,6 @@ class MigrateCommentVariableField extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate comment variables to a field,',
-      'description'  => 'Upgrade comment variables  to field.field.node.comment.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     foreach (array('page', 'story', 'test') as $type) {
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableInstance.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableInstance.php
index 60e9b57..c6b45fb 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableInstance.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableInstance.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests comment variables migrated into a field instance.
+ * Upgrade comment variables to field.instance.node.*.comment.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateCommentVariableInstance extends MigrateDrupalTestBase {
 
@@ -20,17 +22,6 @@ class MigrateCommentVariableInstance extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate comment variables to a field instance,',
-      'description'  => 'Upgrade comment variables to field.instance.node.*.comment.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     // Add some id mappings for the dependant migrations.
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateContactCategoryTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateContactCategoryTest.php
index e73c323..0676705 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateContactCategoryTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateContactCategoryTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * The Drupal 6 contact categories to Drupal 8 migration.
+ * Migrate contact categories to contact.category.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateContactCategoryTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateContactCategoryTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate contact categories.',
-      'description'  => 'Migrate contact categories to contact.category.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_contact_category');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateContactConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateContactConfigsTest.php
index fadaccc..f1c389d 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateContactConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateContactConfigsTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Contact module.
+ * Upgrade variables to contact.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateContactConfigsTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateContactConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to contact.settings',
-      'description'  => 'Upgrade variables to contact.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     // Add some id mappings for the dependent migrations.
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDateFormatTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDateFormatTest.php
index c334d94..ba90909 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDateFormatTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateDateFormatTest.php
@@ -9,24 +9,15 @@
 use Drupal\Core\Database\Database;
 
 /**
- * Tests the Drupal 6 date formats to Drupal 8 migration.
+ * Upgrade date formats to system.date_format.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateDateFormatTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate date formats to system.date_format.*.yml',
-      'description'  => 'Upgrade date formats to system.date_format.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     /** @var \Drupal\migrate\entity\Migration $migration */
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDblogConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDblogConfigsTest.php
index e4753f4..5020482 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDblogConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateDblogConfigsTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the dblog module.
+ * Upgrade variables to dblog.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateDblogConfigsTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateDblogConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to dblog.settings.yml',
-      'description'  => 'Upgrade variables to dblog.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_dblog_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
index 592992e..78211bc 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
@@ -10,7 +10,9 @@
 use Drupal\migrate_drupal\Tests\MigrateFullDrupalTestBase;
 
 /**
- * Test the complete Drupal 6 migration.
+ * Tests the complete Drupal 6 migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateDrupal6Test extends MigrateFullDrupalTestBase {
 
@@ -139,17 +141,6 @@ class MigrateDrupal6Test extends MigrateFullDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate Drupal 6',
-      'description'  => 'Test every Drupal 6 migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function getDumps() {
     $tests_path = $this->getDumpDirectory();
     $dumps = array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldConfigsTest.php
index 4a7e340..d38f8af 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldConfigsTest.php
@@ -11,24 +11,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Field module.
+ * Upgrade variables to field.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateFieldConfigsTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to field.settings.yml',
-      'description'  => 'Upgrade variables to field.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_field_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
index fdea39e..a67ad86 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Test formatter settings to display modes.
+ * Upgrade field formatter settings to entity.display.*.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateFieldFormatterSettingsTest extends MigrateDrupalTestBase {
 
@@ -25,18 +27,6 @@ class MigrateFieldFormatterSettingsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate field formatter settings to entity.display.*.*.yml',
-      'description'  => 'Upgrade field formatter settings to entity.display.*.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php
index dfaa2a3..67c170a 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php
@@ -12,7 +12,9 @@
 use Drupal\link\LinkItemInterface;
 
 /**
- * Tests migration of field instances.
+ * Migrate field instances.
+ *
+ * @group migrate_drupal
  */
 class MigrateFieldInstanceTest extends MigrateDrupalTestBase {
 
@@ -34,17 +36,6 @@ class MigrateFieldInstanceTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Migrate field instances to field.instance.*.*.*.yml',
-      'description' => 'Migrate field instances.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     // Add some id mappings for the dependant migrations.
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php
index a6737f0..e983008 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 field to Drupal 8 migration.
+ * Migrate fields.
+ *
+ * @group migrate_drupal
  */
 class MigrateFieldTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateFieldTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate fields to field.*.*.yml',
-      'description'  => 'Migrate fields',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     /** @var \Drupal\migrate\entity\Migration $migration */
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php
index 930e77b..c27320b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of field instances.
+ * Migrate field widget settings.
+ *
+ * @group migrate_drupal
  */
 class MigrateFieldWidgetSettingsTest extends MigrateDrupalTestBase {
 
@@ -33,17 +35,6 @@ class MigrateFieldWidgetSettingsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Migrate field widget settings to entity.form_display.*.*.default.yml',
-      'description' => 'Migrate field widget settings.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFileConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFileConfigsTest.php
index fc7edc4..cfaf8c2 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFileConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFileConfigsTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the File module.
+ * Upgrade variables to file.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateFileConfigsTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateFileConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to file.settings.yml',
-      'description'  => 'Upgrade variables to file.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_file_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php
index 9e5c6ab..48645c1 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 files to Drupal 8 migration.
+ * file migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateFileTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateFileTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Migrate files',
-      'description' => 'file migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $dumps = array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFilterFormatTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFilterFormatTest.php
index 47a3f32..c1529b8 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFilterFormatTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFilterFormatTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 filter format to Drupal 8 migration.
+ * Upgrade variables to filter.formats.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateFilterFormatTest extends MigrateDrupalTestBase {
 
@@ -23,18 +25,6 @@ class MigrateFilterFormatTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to filter.formats.*.yml',
-      'description'  => 'Upgrade variables to filter.formats.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_filter_format');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateForumConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateForumConfigsTest.php
index d5fb297..2a61706 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateForumConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateForumConfigsTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables for the Forum module.
+ * Upgrade variables to forum.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateForumConfigsTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateForumConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to forum.settings.yml',
-      'description'  => 'Upgrade variables to forum.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_forum_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateLocaleConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateLocaleConfigsTest.php
index de89d92..bf1d308 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateLocaleConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateLocaleConfigsTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Locale module.
+ * Upgrade variables to locale.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateLocaleConfigsTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateLocaleConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to locale.settings.yml',
-      'description'  => 'Upgrade variables to locale.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_locale_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuConfigsTest.php
index 404f281..045b58d 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuConfigsTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables for the Menu UI module.
+ * Upgrade variables to menu_ui.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateMenuConfigsTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateMenuConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to menu_ui.settings.yml',
-      'description'  => 'Upgrade variables to menu_ui.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_menu_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuTest.php
index d2839cb..e34254b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuTest.php
@@ -13,24 +13,15 @@
 use Drupal\Core\Database\Database;
 
 /**
- * Tests the Drupal 6 menu to Drupal 8 migration.
+ * Upgrade menus to system.menu.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateMenuTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate menus',
-      'description'  => 'Upgrade menus to system.menu.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_menu');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeConfigsTest.php
index 165fe13..1c2b0ea 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeConfigsTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests Drupal 6 node settings to Drupal 8 migration.
+ * Upgrade variables to node.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateNodeConfigsTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateNodeConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to node.settings.yml',
-      'description'  => 'Upgrade variables to node.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_node_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeRevisionTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeRevisionTest.php
index b121227..65b6e7b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeRevisionTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeRevisionTest.php
@@ -10,24 +10,15 @@
 use Drupal\migrate\MigrateExecutable;
 
 /**
- * Test node revisions migration from Drupal 6 to 8.
+ * Node content revisions migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateNodeRevisionTest extends MigrateNodeTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate nodes',
-      'description'  => 'Node content revisions migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $id_mappings = array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTest.php
index e08d85f..b3562d1 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTest.php
@@ -11,24 +11,15 @@
 use Drupal\Core\Database\Database;
 
 /**
- * Test node migration from Drupal 6 to 8.
+ * Node content migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateNodeTest extends MigrateNodeTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate nodes',
-      'description'  => 'Node content migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     /** @var \Drupal\migrate\entity\Migration $migration */
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php
index 7fece4e..0316517 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests Drupal 6 node type to Drupal 8 migration.
+ * Upgrade node types to node.type.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateNodeTypeTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateNodeTypeTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Migrate node type to node.type.*.yml',
-      'description' => 'Upgrade node types to node.type.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_node_type');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php
index 73ff29d..c25cce7 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php
@@ -13,7 +13,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests Drupal 6 profile values to Drupal 8 migration.
+ * User profile values migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateProfileValuesTest extends MigrateDrupalTestBase {
 
@@ -34,17 +36,6 @@ class MigrateProfileValuesTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate user profile values',
-      'description'  => 'User profile values migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     // Create some fields so the data gets stored.
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchConfigsTest.php
index c2c5dbf..242aae0 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchConfigsTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables for the Search module.
+ * Upgrade variables to search.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSearchConfigsTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateSearchConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to search.settings.yml',
-      'description'  => 'Upgrade variables to search.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_search_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchPageTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchPageTest.php
index 838116b..31e4c36 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchPageTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchPageTest.php
@@ -12,7 +12,9 @@
 use Drupal\Core\Database\Database;
 
 /**
- * Tests Drupal 6 search settings to Drupal 8 search page entity migration.
+ * Upgrade search rank settings to search.page.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSearchPageTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateSearchPageTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate search settings to search.page.*.yml',
-      'description'  => 'Upgrade search rank settings to search.page.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     /** @var \Drupal\migrate\entity\Migration $migration */
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSimpletestConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSimpletestConfigsTest.php
index 688410b..223abcf 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSimpletestConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSimpletestConfigsTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Simpletest module.
+ * Upgrade variables to simpletest.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSimpletestConfigsTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateSimpletestConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to simpletest.settings.yml',
-      'description'  => 'Upgrade variables to simpletest.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_simpletest_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateStatisticsConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateStatisticsConfigsTest.php
index eaac333..7a83394 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateStatisticsConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateStatisticsConfigsTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Statistics module.
+ * Upgrade variables to statistics.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateStatisticsConfigsTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateStatisticsConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to statistics.settings.yml',
-      'description'  => 'Upgrade variables to statistics.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_statistics_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSyslogConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSyslogConfigsTest.php
index 587bbb8..df35909 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSyslogConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSyslogConfigsTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Syslog module.
+ * Upgrade variables to syslog.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSyslogConfigsTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateSyslogConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to syslog.settings.yml',
-      'description'  => 'Upgrade variables to syslog.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_syslog_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemCronTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemCronTest.php
index 764dbac..a9afa6b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemCronTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemCronTest.php
@@ -12,24 +12,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 cron variables to Drupal 8 system.cron config migration.
+ * Upgrade cron variable to system.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSystemCronTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate cron variable to system.*.yml',
-      'description'  => 'Upgrade cron variable to system.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_system_cron');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemFileTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemFileTest.php
index d5c216a..c2809b4 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemFileTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemFileTest.php
@@ -12,24 +12,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of filesystem variables to configuration.
+ * Upgrade variables to system.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSystemFileTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to system.*.yml',
-      'description'  => 'Upgrade variables to system.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_system_file');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemFilterTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemFilterTest.php
index d501cc5..6699186 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemFilterTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemFilterTest.php
@@ -12,24 +12,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 system filter variables to Drupal 8 system.filter config migration.
+ * Upgrade filter variables to system.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSystemFilterTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate filter variables to system.*.yml',
-      'description'  => 'Upgrade filter variables to system.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_system_filter');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemImageGdTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemImageGdTest.php
index 6e688e5..2020d5f 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemImageGdTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemImageGdTest.php
@@ -12,24 +12,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of image GD toolkit variables to configuration.
+ * Upgrade image gd variables to system.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSystemImageGdTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate image gd variables to system.*.yml',
-      'description'  => 'Upgrade image gd variables to system.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_system_image_gd');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemImageTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemImageTest.php
index 5b9c18d..f53c732 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemImageTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemImageTest.php
@@ -12,24 +12,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of image toolkit variables to configuration.
+ * Upgrade image variables to system.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSystemImageTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate image variables to system.*.yml',
-      'description'  => 'Upgrade image variables to system.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_system_image');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemMaintenanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemMaintenanceTest.php
index 660172f..11f2ceb 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemMaintenanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemMaintenanceTest.php
@@ -12,24 +12,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of system maintenance mode variables to configuration.
+ * Upgrade maintenance variables to system.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSystemMaintenanceTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate maintenance variables to system.*.yml',
-      'description'  => 'Upgrade maintenance variables to system.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_system_maintenance');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemPerformanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemPerformanceTest.php
index 0eaca21..777231b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemPerformanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemPerformanceTest.php
@@ -12,24 +12,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of system performance variables to configuration.
+ * Upgrade performance variables to system.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSystemPerformanceTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate performance variables to system.*.yml',
-      'description'  => 'Upgrade performance variables to system.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_system_performance');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemRssTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemRssTest.php
index 1bb05c1..ad93ad3 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemRssTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemRssTest.php
@@ -12,24 +12,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of system RSS/feed variables to configuration.
+ * Upgrade rss variable to system.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSystemRssTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate rss variable to system.*.yml',
-      'description'  => 'Upgrade rss variable to system.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_system_rss');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemSiteTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemSiteTest.php
index 197f111..141f533 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemSiteTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemSiteTest.php
@@ -12,24 +12,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of system site variables to configuration.
+ * Upgrade site variables to system.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSystemSiteTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate site variables to system.*.yml',
-      'description'  => 'Upgrade site variables to system.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_system_site');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemThemeTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemThemeTest.php
index 4669c12..bb8dd30 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemThemeTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSystemThemeTest.php
@@ -12,24 +12,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of system theme variables to configuration.
+ * Upgrade theme variables to system.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateSystemThemeTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate theme variables to system.*.yml',
-      'description'  => 'Upgrade theme variables to system.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_system_theme');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyConfigsTest.php
index b89874b..16bc5ce 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyConfigsTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Taxonomy module.
+ * Upgrade variables to taxonomy.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateTaxonomyConfigsTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateTaxonomyConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to taxonomy.settings.yml',
-      'description'  => 'Upgrade variables to taxonomy.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_taxonomy_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php
index 5969543..d4f253e 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php
@@ -12,7 +12,9 @@
 use Drupal\taxonomy\Entity\Term;
 
 /**
- * Tests the Drupal 6 taxonomy term to Drupal 8 migration.
+ * Upgrade taxonomy terms.
+ *
+ * @group migrate_drupal
  */
 class MigrateTaxonomyTermTest extends MigrateDrupalTestBase {
 
@@ -21,17 +23,6 @@ class MigrateTaxonomyTermTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate taxonomy terms',
-      'description'  => 'Upgrade taxonomy terms',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $this->prepareIdMappings(array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyVocabularyTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyVocabularyTest.php
index c2f6aad..607d4d7 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyVocabularyTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyVocabularyTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 taxonomy vocabularies to Drupal 8 migration.
+ * Migrate taxonomy vocabularies to taxonomy.vocabulary.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateTaxonomyVocabularyTest extends MigrateDrupalTestBase {
 
@@ -25,18 +27,6 @@ class MigrateTaxonomyVocabularyTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate taxonomy vocabularies.',
-      'description'  => 'Migrate taxonomy vocabularies to taxonomy.vocabulary.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_taxonomy_vocabulary');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeRevisionTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeRevisionTest.php
index 20c4a0f..2dd4419 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeRevisionTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeRevisionTest.php
@@ -10,24 +10,15 @@
 use Drupal\migrate\MigrateExecutable;
 
 /**
- * Tests the Drupal 6 term-node revision association to Drupal 8 migration.
+ * Upgrade taxonomy term node associations.
+ *
+ * @group migrate_drupal
  */
 class MigrateTermNodeRevisionTest extends MigrateTermNodeTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate taxonomy term node revisions',
-      'description'  => 'Upgrade taxonomy term node associations',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $id_mappings = array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTest.php
index 2b3ab48..dd3d421 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTest.php
@@ -10,24 +10,15 @@
 use Drupal\migrate\MigrateExecutable;
 
 /**
- * Tests the Drupal 6 term-node association to Drupal 8 migration.
+ * Upgrade taxonomy term node associations.
+ *
+ * @group migrate_drupal
  */
 class MigrateTermNodeTest extends MigrateTermNodeTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate taxonomy term node',
-      'description'  => 'Upgrade taxonomy term node associations',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     /** @var \Drupal\migrate\entity\Migration $migration */
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTextConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTextConfigsTest.php
index 04e659b..02cacfd 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTextConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTextConfigsTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Text module.
+ * Upgrade variables to text.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateTextConfigsTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateTextConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to text.settings.yml',
-      'description'  => 'Upgrade variables to text.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_text_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUpdateConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUpdateConfigsTest.php
index 444fa7f..1033040 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUpdateConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUpdateConfigsTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the Update module.
+ * Upgrade variables to update.settings.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateUpdateConfigsTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateUpdateConfigsTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to update.settings.yml',
-      'description'  => 'Upgrade variables to update.settings.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_update_settings');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityDisplayTest.php
index ec994b6..29e2890 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityDisplayTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 upload settings to Drupal 8 entity display migration.
+ * Upload entity display.
+ *
+ * @group migrate_drupal
  */
 class MigrateUploadEntityDisplayTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateUploadEntityDisplayTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate upload entity display.',
-      'description'  => 'Upload entity display',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityFormDisplayTest.php
index 9d58993..5141fb9 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityFormDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityFormDisplayTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 upload settings to Drupal 8 entity form display migration.
+ * Upload form entity display.
+ *
+ * @group migrate_drupal
  */
 class MigrateUploadEntityFormDisplayTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateUploadEntityFormDisplayTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate upload entity form display.',
-      'description'  => 'Upload form entity display',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadFieldTest.php
index ceac437..380e7d2 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadFieldTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 upload settings to Drupal 8 field migration.
+ * Uploads migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateUploadFieldTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateUploadFieldTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate uploads',
-      'description'  => 'Uploads migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_upload_field');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php
index ebd61fa..91ee0ad 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 upload settings to Drupal 8 field instance migration.
+ * Upload field instance migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateUploadInstanceTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateUploadInstanceTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate upload field instance.',
-      'description'  => 'Upload field instance migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     // Add some node mappings to get past checkRequirements().
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadTest.php
index 1c2f95b..cdc76c3 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadTest.php
@@ -10,24 +10,15 @@
 use Drupal\migrate\MigrateExecutable;
 
 /**
- * Test upload migration from Drupal 6 to Drupal 8.
+ * Migrate association data between nodes and files.
+ *
+ * @group migrate_drupal
  */
 class MigrateUploadTest extends MigrateUploadBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate upload',
-      'description'  => 'Migrate association data between nodes and files.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     /** @var \Drupal\migrate\entity\Migration $migration */
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUrlAliasTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUrlAliasTest.php
index bec9a4e..8449cba 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUrlAliasTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUrlAliasTest.php
@@ -13,24 +13,15 @@
 use Drupal\Core\Database\Database;
 
 /**
- * Test the url alias migration.
+ * Url alias migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateUrlAliasTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Url alias migration.',
-      'description'  => 'Url alias migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_url_alias');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserConfigsTest.php
index 7a2a8e7..7a017e7 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserConfigsTest.php
@@ -11,24 +11,15 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of variables from the User module.
+ * Upgrade variables to user.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserConfigsTest extends MigrateDrupalTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate variables to user.*.yml',
-      'description'  => 'Upgrade variables to user.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_user_mail');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityDisplayTest.php
index 3919c7f..f55b422 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityDisplayTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 user picture to Drupal 8 entity display migration.
+ * User picture entity display.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserPictureEntityDisplayTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateUserPictureEntityDisplayTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate user picture entity display.',
-      'description'  => 'User picture entity display',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityFormDisplayTest.php
index c4de81b..51ffe95 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityFormDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityFormDisplayTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 user picture to Drupal 8 entity form display migration.
+ * User picture entity form display.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserPictureEntityFormDisplayTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateUserPictureEntityFormDisplayTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate user picture entity form display.',
-      'description'  => 'User picture entity form display',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $id_mappings = array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFieldTest.php
index 9184d2c..025e6f8 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFieldTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Test the user_picture field migration.
+ * User picture field migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserPictureFieldTest extends MigrateDrupalTestBase {
 
@@ -20,17 +22,6 @@ class MigrateUserPictureFieldTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate user picture field',
-      'description'  => 'User picture field migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_user_picture_field');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFileTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFileTest.php
index 7fe2895..b559836 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFileTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFileTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 user pictures to Drupal 8 migration.
+ * User pictures migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserPictureFileTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateUserPictureFileTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Migrate user pictures',
-      'description' => 'User pictures migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $dumps = array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php
index f6881de..ee1a69b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 user picture to Drupal 8 picture field instance migration.
+ * User picture field instance migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserPictureInstanceTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateUserPictureInstanceTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate user picture field instance.',
-      'description'  => 'User picture field instance migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     // Add some node mappings to get past checkRequirements().
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php
index e29143e..9ec1a5f 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\Dump\Drupal6UserProfileFields;
 
 /**
- * Tests migration of user profile fields.
+ * Tests the user profile entity display migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserProfileEntityDisplayTest extends MigrateDrupalTestBase {
 
@@ -26,17 +28,6 @@ class MigrateUserProfileEntityDisplayTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate user profile entity display',
-      'description'  => 'Test the user profile entity display migration.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php
index 947b662..44ac77f 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\Dump\Drupal6UserProfileFields;
 
 /**
- * Tests migration of user profile entity form display.
+ * Tests the user profile entity form display migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserProfileEntityFormDisplayTest extends MigrateDrupalTestBase {
 
@@ -21,17 +23,6 @@ class MigrateUserProfileEntityFormDisplayTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate user profile entity form display',
-      'description'  => 'Test the user profile entity form display migration.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php
index b866689..9cf0822 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of user profile fields.
+ * Tests the user profile field instance migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserProfileFieldInstanceTest extends MigrateDrupalTestBase {
 
@@ -20,17 +22,6 @@ class MigrateUserProfileFieldInstanceTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate user profile field instance',
-      'description'  => 'Test the user profile field instance migration.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     // Add some id mappings for the dependant migrations.
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php
index 69af4a0..fe19e30 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests migration of user profile fields.
+ * Tests the user profile field migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserProfileFieldTest extends MigrateDrupalTestBase {
 
@@ -20,17 +22,6 @@ class MigrateUserProfileFieldTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate user profile fields',
-      'description'  => 'Test the user profile field migration.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_user_profile_field');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserRoleTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserRoleTest.php
index 98183e8..52ad84a 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserRoleTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserRoleTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 user roles to Drupal 8 migration.
+ * Upgrade user roles to user.role.*.yml.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserRoleTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateUserRoleTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate user roles to user.role.*.yml',
-      'description'  => 'Upgrade user roles to user.role.*.yml',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     // We need some sample data so we can use the Migration process plugin.
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php
index d894b1c..9dc19d1 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php
@@ -12,7 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal6 user to Drupal 8 migration.
+ * Users migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateUserTest extends MigrateDrupalTestBase {
 
@@ -33,17 +35,6 @@ class MigrateUserTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate users',
-      'description'  => 'Users migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     // Create the user profile field and instance.
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php
index 2c43aee..902606c 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests Drupal 6 view modes to Drupal 8 migration.
+ * Migrate view modes.
+ *
+ * @group migrate_drupal
  */
 class MigrateViewModesTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateViewModesTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate view modes to entity.view_mode.*.*.yml',
-      'description'  => 'Migrate view modes',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $migration = entity_load('migration', 'd6_view_modes');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php
index 4b7066c..b829e52 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 vocabulary-node type association to Drupal 8 migration.
+ * Vocabulary entity display migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateVocabularyEntityDisplayTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateVocabularyEntityDisplayTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Vocabulary entity display migration',
-      'description'  => 'Vocabulary entity display migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php
index 00022f6..aad0186 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 vocabulary-node type association to Drupal 8 migration.
+ * Vocabulary entity form display migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateVocabularyEntityFormDisplayTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateVocabularyEntityFormDisplayTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Vocabulary entity form display migration',
-      'description'  => 'Vocabulary entity form display migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php
index a569062..8fbf6b1 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 vocabulary-node type association to Drupal 8 migration.
+ * Vocabulary field instance migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateVocabularyFieldInstanceTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateVocabularyFieldInstanceTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Vocabulary field instance migration',
-      'description'  => 'Vocabulary field instance migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldTest.php
index df4781c..ff15c54 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldTest.php
@@ -11,7 +11,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Tests the Drupal 6 vocabulary-node type association to Drupal 8 migration.
+ * Vocabulary field migration.
+ *
+ * @group migrate_drupal
  */
 class MigrateVocabularyFieldTest extends MigrateDrupalTestBase {
 
@@ -25,17 +27,6 @@ class MigrateVocabularyFieldTest extends MigrateDrupalTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Vocabulary field migration',
-      'description'  => 'Vocabulary field migration',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php b/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
index 32941fb..e5168b0 100644
--- a/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
@@ -12,8 +12,9 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Test the migrate dependencies
+ * Ensure the consistency among the dependencies for migrate.
  *
+ * @group migrate_drupal
  * @group Drupal
  * @group migrate_drupal
  */
@@ -22,17 +23,6 @@ class MigrateDependenciesTest extends MigrateDrupalTestBase {
   static $modules = array('aggregator');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name'  => 'Migrate dependency tests',
-      'description'  => 'Ensure the consistency among the dependencies for migrate',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
    * Tests that the order is correct when loading several migrations.
    */
   public function testMigrateDependenciesOrder() {
diff --git a/core/modules/migrate_drupal/src/Tests/destination/ConfigDestinationTest.php b/core/modules/migrate_drupal/src/Tests/destination/ConfigDestinationTest.php
index 172b2a0..2bbbc11 100644
--- a/core/modules/migrate_drupal/src/Tests/destination/ConfigDestinationTest.php
+++ b/core/modules/migrate_drupal/src/Tests/destination/ConfigDestinationTest.php
@@ -11,10 +11,7 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Test the raw config destination.
- *
- * @see \Drupal\migrate_drupal\Plugin\migrate\destination\Config
- * @group Drupal
+ * @coversDefaultClass \Drupal\migrate_drupal\Plugin\migrate\destination\Config
  * @group migrate_drupal
  */
 class ConfigDestinationTest extends UnitTestCase {
@@ -50,15 +47,4 @@ public function testImport() {
     $destination->import($row);
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Destination test',
-      'description' => 'Tests for destination plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
 }
diff --git a/core/modules/migrate_drupal/tests/src/source/VariableMultiRowSourceWithHighwaterTest.php b/core/modules/migrate_drupal/tests/src/source/VariableMultiRowSourceWithHighwaterTest.php
index 55341dc..5e93039 100644
--- a/core/modules/migrate_drupal/tests/src/source/VariableMultiRowSourceWithHighwaterTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/VariableMultiRowSourceWithHighwaterTest.php
@@ -11,24 +11,12 @@
  * Tests variable multirow source w/ highwater handling.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class VariableMultiRowSourceWithHighwaterTest extends VariableMultiRowTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 variable multirow source + highwater',
-      'description' => 'Tests D6 variable multirow source plugin with highwater handling.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->migrationConfiguration['highwaterProperty']['field'] = 'test';
     parent::setup();
diff --git a/core/modules/migrate_drupal/tests/src/source/VariableMultiRowTestBase.php b/core/modules/migrate_drupal/tests/src/source/VariableMultiRowTestBase.php
index bed79e9..ec86623 100644
--- a/core/modules/migrate_drupal/tests/src/source/VariableMultiRowTestBase.php
+++ b/core/modules/migrate_drupal/tests/src/source/VariableMultiRowTestBase.php
@@ -10,7 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Base test class for the variable multirow source tests.
+ * Tests D6 variable multirow source plugin.
+ *
+ * @group migrate_drupal
  */
 class VariableMultiRowTestBase extends MigrateSqlSourceTestCase {
 
@@ -43,16 +45,6 @@ class VariableMultiRowTestBase extends MigrateSqlSourceTestCase {
     ),
   );
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 variable multirow source functionality',
-      'description' => 'Tests D6 variable multirow source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
 }
 
 namespace Drupal\migrate_drupal\Tests\source;
diff --git a/core/modules/migrate_drupal/tests/src/source/VariableTest.php b/core/modules/migrate_drupal/tests/src/source/VariableTest.php
index b5da66b..b62a46b 100644
--- a/core/modules/migrate_drupal/tests/src/source/VariableTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/VariableTest.php
@@ -10,8 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
+ * Tests the variable source plugin.
+ *
  * @group migrate_drupal
- * @group Drupal
  */
 class VariableTest extends MigrateSqlSourceTestCase {
 
@@ -44,17 +45,6 @@ class VariableTest extends MigrateSqlSourceTestCase {
     ),
   );
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Variable source functionality',
-      'description' => 'Tests variable source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
 }
 
 namespace Drupal\migrate_drupal\Tests\source;
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/ActionTest.php b/core/modules/migrate_drupal/tests/src/source/d6/ActionTest.php
index d6dd2ea..1f128b9 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/ActionTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/ActionTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests Drupal action migration source.
+ * Tests D6 actions source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class ActionTest extends MigrateSqlSourceTestCase {
 
@@ -68,17 +67,6 @@ class ActionTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 action source functionality',
-      'description' => 'Tests D6 actions source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->databaseContents['actions'] = $this->expectedResults;
     parent::setUp();
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/AggregatorFeedTest.php b/core/modules/migrate_drupal/tests/src/source/d6/AggregatorFeedTest.php
index 9184dea..61590d8 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/AggregatorFeedTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/AggregatorFeedTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 aggregator feed source.
+ * Tests D6 aggregator feed source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class AggregatorFeedTest extends MigrateSqlSourceTestCase {
 
@@ -57,17 +56,6 @@ class AggregatorFeedTest extends MigrateSqlSourceTestCase {
   );
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 aggregator feed source functionality',
-      'description' => 'Tests D6 aggregator feed source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
   * {@inheritdoc}
   */
   protected function setUp() {
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/AggregatorItemTest.php b/core/modules/migrate_drupal/tests/src/source/d6/AggregatorItemTest.php
index cfa88cc..b34d143 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/AggregatorItemTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/AggregatorItemTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 aggregator item source.
+ * Tests D6 aggregator item source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class AggregatorItemTest extends MigrateSqlSourceTestCase {
 
@@ -55,17 +54,6 @@ class AggregatorItemTest extends MigrateSqlSourceTestCase {
     ),
   ));
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 aggregator item source functionality',
-      'description' => 'Tests D6 aggregator item source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
 }
 
 namespace Drupal\migrate_drupal\Tests\source\d6;
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/BlockTest.php b/core/modules/migrate_drupal/tests/src/source/d6/BlockTest.php
index 2a02af9..84a167a 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/BlockTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/BlockTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 block source.
+ * Tests D6 block source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class BlockTest extends MigrateSqlSourceTestCase {
 
@@ -86,17 +85,6 @@ protected function setUp() {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 block source functionality',
-      'description' => 'Tests D6 block source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function testRetrieval() {
     // FakeSelect does not support multiple source identifiers, can not test.
   }
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/BoxTest.php b/core/modules/migrate_drupal/tests/src/source/d6/BoxTest.php
index d43cf5d..adc7253 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/BoxTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/BoxTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 box source.
+ * Tests D6 block boxes source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class BoxTest extends MigrateSqlSourceTestCase {
 
@@ -57,17 +56,6 @@ protected function setUp() {
     parent::setUp();
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 block boxes source functionality',
-      'description' => 'Tests D6 block boxes source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
 }
 
 namespace Drupal\migrate_drupal\Tests\source\d6;
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/CommentSourceWithHighwaterTest.php b/core/modules/migrate_drupal/tests/src/source/d6/CommentSourceWithHighwaterTest.php
index 1e4c4dd..40e1f89 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/CommentSourceWithHighwaterTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/CommentSourceWithHighwaterTest.php
@@ -11,21 +11,9 @@
  * Tests the Drupal 6 comment source w/ highwater handling.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class CommentSourceWithHighwaterTest extends CommentTestBase {
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 comment source + highwater',
-      'description' => 'Tests D6 comment source plugin with highwater handling.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
   const ORIGINAL_HIGHWATER = 1382255613;
 
   /**
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/CommentTestBase.php b/core/modules/migrate_drupal/tests/src/source/d6/CommentTestBase.php
index dcfb701..579fef0 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/CommentTestBase.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/CommentTestBase.php
@@ -10,7 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Base class for the comment source tests.
+ * Tests D6 comment source plugin.
+ *
+ * @group migrate_drupal
  */
 class CommentTestBase extends MigrateSqlSourceTestCase {
 
@@ -71,17 +73,6 @@ class CommentTestBase extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 comment source functionality',
-      'description' => 'Tests D6 comment source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     foreach ($this->expectedResults as $k => $row) {
       $this->databaseContents['comments'][$k] = $row;
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/ContactCategoryTest.php b/core/modules/migrate_drupal/tests/src/source/d6/ContactCategoryTest.php
index 7da67f7..5921a55 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/ContactCategoryTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/ContactCategoryTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 contact category source.
+ * Tests D6 contact category source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class ContactCategoryTest extends MigrateSqlSourceTestCase {
 
@@ -49,17 +48,6 @@ class ContactCategoryTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 contact category source functionality',
-      'description' => 'Tests D6 contact category source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     foreach ($this->expectedResults as $k => $row) {
       $this->databaseContents['contact'][$k] = $row;
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/Drupal6SqlBaseTest.php b/core/modules/migrate_drupal/tests/src/source/d6/Drupal6SqlBaseTest.php
index b8c7c96..838203e 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/Drupal6SqlBaseTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/Drupal6SqlBaseTest.php
@@ -10,8 +10,9 @@
 use Drupal\migrate\Tests\MigrateTestCase;
 
 /**
+ * Tests the D6 SQL base class.
+ *
  * @group migrate_drupal
- * @group Drupal
  */
 class Drupal6SqlBaseTest extends MigrateTestCase {
 
@@ -65,17 +66,6 @@ class Drupal6SqlBaseTest extends MigrateTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 SQL base class tests',
-      'description' => 'Tests D6 SQL base class.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $plugin = 'placeholder_id';
     $this->base = new TestDrupal6SqlBase($this->migrationConfiguration, $plugin, array(), $this->getMigration());
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/FieldInstancePerViewModeTest.php b/core/modules/migrate_drupal/tests/src/source/d6/FieldInstancePerViewModeTest.php
index ae0e470..714fe1f 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/FieldInstancePerViewModeTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/FieldInstancePerViewModeTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 field instance per view mode source.
+ * Tests D6 fields per view mode source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class FieldInstancePerViewModeTest extends MigrateSqlSourceTestCase {
 
@@ -83,17 +82,6 @@ class FieldInstancePerViewModeTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 per view mode source functionality',
-      'description' => 'Tests D6 fields per view mode source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     foreach ($this->expectedResults as $k => $field_view_mode) {
       // These are stored as serialized strings.
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/FieldInstanceTest.php b/core/modules/migrate_drupal/tests/src/source/d6/FieldInstanceTest.php
index 3c8abcf..83ce076 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/FieldInstanceTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/FieldInstanceTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 field instance source.
+ * Tests D6 field instance source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class FieldInstanceTest extends MigrateSqlSourceTestCase {
 
@@ -96,17 +95,6 @@ protected function setUp() {
   }
 
   /**
-   * Provide meta information about this battery of tests.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 field instance source functionality',
-      'description' => 'Tests D6 field instance source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
    * {@inheritdoc}
    */
   public function testRetrieval() {
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/FieldTest.php b/core/modules/migrate_drupal/tests/src/source/d6/FieldTest.php
index e1403d1..304183a 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/FieldTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/FieldTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 field source.
+ * Tests D6 field source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class FieldTest extends MigrateSqlSourceTestCase {
 
@@ -78,17 +77,6 @@ protected function setUp() {
     parent::setUp();
   }
 
-  /**
-   * Provide meta information about this battery of tests.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 field source functionality',
-      'description' => 'Tests D6 field source plugin.',
-      'group' => 'Migrate',
-    );
-  }
-
 }
 
 namespace Drupal\migrate_drupal\Tests\source\d6;
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/FileTest.php b/core/modules/migrate_drupal/tests/src/source/d6/FileTest.php
index c8a7505..c4c166c 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/FileTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/FileTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 file source.
+ * Tests D6 file source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class FileTest extends MigrateSqlSourceTestCase {
 
@@ -56,17 +55,6 @@ class FileTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 file source functionality',
-      'description' => 'Tests D6 file source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->databaseContents['files'] = $this->expectedResults;
     parent::setUp();
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/FilterFormatTest.php b/core/modules/migrate_drupal/tests/src/source/d6/FilterFormatTest.php
index 11468df..267ace8 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/FilterFormatTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/FilterFormatTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests comment migration from D6 to D8.
+ * Tests D6 filter_formats table source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class FilterFormatTest extends MigrateSqlSourceTestCase {
 
@@ -97,17 +96,6 @@ class FilterFormatTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 Filter Formats source functionality',
-      'description' => 'Tests D6 filter_formats table source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $fid = 1;
     foreach ($this->expectedResults as $k => $row) {
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/MenuTest.php b/core/modules/migrate_drupal/tests/src/source/d6/MenuTest.php
index 081c462..744d769 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/MenuTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/MenuTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 menu source.
+ * Tests D6 menu source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class MenuTest extends MigrateSqlSourceTestCase {
 
@@ -52,17 +51,6 @@ class MenuTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 menu source functionality',
-      'description' => 'Tests D6 menu source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     // This array stores the database.
     foreach ($this->expectedResults as $k => $row) {
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/NodeRevisionTest.php b/core/modules/migrate_drupal/tests/src/source/d6/NodeRevisionTest.php
index d895ed5..54f64fc 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/NodeRevisionTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/NodeRevisionTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 node revision source.
+ * Tests D6 node revision source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class NodeRevisionTest extends MigrateSqlSourceTestCase {
 
@@ -278,17 +277,6 @@ class NodeRevisionTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 node revision source functionality',
-      'description' => 'Tests D6 node revision source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     foreach ($this->expectedResults as $k => $row) {
       $this->databaseContents['node_revisions'][$k]['nid'] = $row['nid'];
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/NodeTest.php b/core/modules/migrate_drupal/tests/src/source/d6/NodeTest.php
index 311f938..e3f5fa6 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/NodeTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/NodeTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 node source
+ * Tests D6 node source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class NodeTest extends MigrateSqlSourceTestCase {
 
@@ -103,17 +102,6 @@ class NodeTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 node source functionality',
-      'description' => 'Tests D6 node source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     foreach ($this->expectedResults as $k => $row) {
       foreach (array('nid', 'vid', 'title', 'uid', 'body', 'teaser', 'format') as $i => $field) {
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/NodeTypeTest.php b/core/modules/migrate_drupal/tests/src/source/d6/NodeTypeTest.php
index ab22f18..adbef4a 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/NodeTypeTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/NodeTypeTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 node type source.
+ * Tests D6 node type source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class NodeTypeTest extends MigrateSqlSourceTestCase {
 
@@ -75,17 +74,6 @@ protected function setUp() {
     parent::setUp();
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 node type source functionality',
-      'description' => 'Tests D6 node type source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
 }
 
 namespace Drupal\migrate_drupal\Tests\source\d6;
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/ProfileFieldTest.php b/core/modules/migrate_drupal/tests/src/source/d6/ProfileFieldTest.php
index 80728df..ab696ed 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/ProfileFieldTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/ProfileFieldTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 profile source.
+ * Tests D6 profile field source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class ProfileFieldTest extends MigrateSqlSourceTestCase {
 
@@ -91,17 +90,6 @@ protected function setUp() {
     parent::setUp();
   }
 
-  /**
-   * Provide meta information about this battery of tests.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 profile field source functionality',
-      'description' => 'Tests D6 profile field source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
 }
 
 namespace Drupal\migrate_drupal\Tests\source\d6;
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/RoleTest.php b/core/modules/migrate_drupal/tests/src/source/d6/RoleTest.php
index a346a79..e690310 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/RoleTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/RoleTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 user role source.
+ * Tests D6 role source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class RoleTest extends MigrateSqlSourceTestCase {
 
@@ -70,17 +69,6 @@ class RoleTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 role source functionality',
-      'description' => 'Tests D6 role source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     foreach ($this->expectedResults as $row) {
       $this->databaseContents['permission'][] = array(
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/TermSourceWithVocabularyFilterTest.php b/core/modules/migrate_drupal/tests/src/source/d6/TermSourceWithVocabularyFilterTest.php
index 8149094..a0a30cf 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/TermSourceWithVocabularyFilterTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/TermSourceWithVocabularyFilterTest.php
@@ -11,24 +11,12 @@
  * Tests the Drupal 6 taxonomy term source with vocabulary filter.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class TermSourceWithVocabularyFilterTest extends TermTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 taxonomy term source with vocabulary filter functionality',
-      'description' => 'Tests D6 taxonomy term source plugin with vocabulary filter.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->migrationConfiguration['source']['vocabulary'] = array(5);
     parent::setUp();
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/TermTestBase.php b/core/modules/migrate_drupal/tests/src/source/d6/TermTestBase.php
index e4d5f08..8187384 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/TermTestBase.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/TermTestBase.php
@@ -10,7 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Base class for the term source tests.
+ * Tests D6 taxonomy term source plugin.
+ *
+ * @group migrate_drupal
  */
 class TermTestBase extends MigrateSqlSourceTestCase {
 
@@ -79,17 +81,6 @@ class TermTestBase extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 taxonomy term source functionality',
-      'description' => 'Tests D6 taxonomy term source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     foreach ($this->expectedResults as $k => $row) {
       foreach ($row['parent'] as $parent) {
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/UrlAliasTest.php b/core/modules/migrate_drupal/tests/src/source/d6/UrlAliasTest.php
index c5d584e..d70c523 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/UrlAliasTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/UrlAliasTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 url alias source.
+ * Tests the D6 url alias migrations.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class UrlAliasTest extends MigrateSqlSourceTestCase {
 
@@ -53,17 +52,6 @@ protected function setUp() {
     parent::setUp();
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 url alias source functionality',
-      'description' => 'Tests the D6 url alias migrations.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
 }
 
 namespace Drupal\migrate_drupal\Tests\source\d6;
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/UserPictureTest.php b/core/modules/migrate_drupal/tests/src/source/d6/UserPictureTest.php
index ce6beed..fb249d0 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/UserPictureTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/UserPictureTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 user picture source.
+ * Tests D6 user picture source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class UserPictureTest extends MigrateSqlSourceTestCase {
 
@@ -48,17 +47,6 @@ protected function setUp() {
     parent::setUp();
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 user picture source functionality',
-      'description' => 'Tests D6 user picture source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
 }
 
 namespace Drupal\migrate_drupal\Tests\source\d6;
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/UserTest.php b/core/modules/migrate_drupal/tests/src/source/d6/UserTest.php
index 17e93bb..8300fc5 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/UserTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/UserTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 user source.
+ * Tests D6 user source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class UserTest extends MigrateSqlSourceTestCase {
 
@@ -72,17 +71,6 @@ class UserTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 user source functionality',
-      'description' => 'Tests D6 user source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     foreach ($this->expectedResults as $k => $row) {
       $this->databaseContents['users'][$k] = $row;
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/ViewModeTest.php b/core/modules/migrate_drupal/tests/src/source/d6/ViewModeTest.php
index 8e07a8e..60e184f 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/ViewModeTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/ViewModeTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 per view mode source.
+ * Tests D6 view mode source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class ViewModeTest extends MigrateSqlSourceTestCase {
 
@@ -51,17 +50,6 @@ class ViewModeTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 view mode source functionality',
-      'description' => 'Tests D6 view mode source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
 
     $this->databaseContents['content_node_field_instance'][] = array(
diff --git a/core/modules/migrate_drupal/tests/src/source/d6/VocabularyTest.php b/core/modules/migrate_drupal/tests/src/source/d6/VocabularyTest.php
index d4b6ab0..0ba30fd 100644
--- a/core/modules/migrate_drupal/tests/src/source/d6/VocabularyTest.php
+++ b/core/modules/migrate_drupal/tests/src/source/d6/VocabularyTest.php
@@ -10,10 +10,9 @@
 use Drupal\migrate\Tests\MigrateSqlSourceTestCase;
 
 /**
- * Tests the Drupal 6 vocabulary source.
+ * Tests D6 vocabulary source plugin.
  *
  * @group migrate_drupal
- * @group Drupal
  */
 class VocabularyTest extends MigrateSqlSourceTestCase {
 
@@ -64,17 +63,6 @@ class VocabularyTest extends MigrateSqlSourceTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'D6 vocabulary source functionality',
-      'description' => 'Tests D6 vocabulary source plugin.',
-      'group' => 'Migrate Drupal',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     foreach ($this->expectedResults as $row) {
       foreach ($row['node_types'] as $type) {
diff --git a/core/modules/node/src/Tests/Condition/NodeConditionTest.php b/core/modules/node/src/Tests/Condition/NodeConditionTest.php
index e429de5..d362c22 100644
--- a/core/modules/node/src/Tests/Condition/NodeConditionTest.php
+++ b/core/modules/node/src/Tests/Condition/NodeConditionTest.php
@@ -10,20 +10,14 @@
 use Drupal\system\Tests\Entity\EntityUnitTestBase;
 
 /**
- * Tests the node conditions.
+ * Tests that conditions, provided by the node module, are working properly.
+ *
+ * @group node
  */
 class NodeConditionTest extends EntityUnitTestBase {
 
   public static $modules = array('node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node Condition Plugins',
-      'description' => 'Tests that conditions, provided by the node module, are working properly.',
-      'group' => 'Condition API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installEntitySchema('node');
diff --git a/core/modules/node/src/Tests/Config/NodeImportChangeTest.php b/core/modules/node/src/Tests/Config/NodeImportChangeTest.php
index d38062b..addc0cb 100644
--- a/core/modules/node/src/Tests/Config/NodeImportChangeTest.php
+++ b/core/modules/node/src/Tests/Config/NodeImportChangeTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests updating content types as part of config import.
+ * Change content types during config create method invocation.
+ *
+ * @group node
  */
 class NodeImportChangeTest extends DrupalUnitTestBase {
 
@@ -31,14 +33,6 @@ public function setUp() {
     $this->installConfig(array('field', 'node_test_config'));
   }
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node config change tests',
-      'description' => 'Change content types during config create method invocation.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Tests importing an updated content type.
    */
diff --git a/core/modules/node/src/Tests/Config/NodeImportCreateTest.php b/core/modules/node/src/Tests/Config/NodeImportCreateTest.php
index fadc706..c0d5bc7 100644
--- a/core/modules/node/src/Tests/Config/NodeImportCreateTest.php
+++ b/core/modules/node/src/Tests/Config/NodeImportCreateTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests content types as part of config import.
+ * Create content types during config create method invocation.
+ *
+ * @group node
  */
 class NodeImportCreateTest extends DrupalUnitTestBase {
 
@@ -33,14 +35,6 @@ public function setUp() {
     $this->installConfig(array('field'));
   }
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node config create tests',
-      'description' => 'Create content types during config create method invocation.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Tests creating a content type during default config import.
    */
diff --git a/core/modules/node/src/Tests/MultiStepNodeFormBasicOptionsTest.php b/core/modules/node/src/Tests/MultiStepNodeFormBasicOptionsTest.php
index 67bdbe3..3baab91 100644
--- a/core/modules/node/src/Tests/MultiStepNodeFormBasicOptionsTest.php
+++ b/core/modules/node/src/Tests/MultiStepNodeFormBasicOptionsTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests basic options of multi-step node forms.
+ * Tests the persistence of basic options through multiple steps.
+ *
+ * @group node
  */
 class MultiStepNodeFormBasicOptionsTest extends NodeTestBase {
 
@@ -19,14 +21,6 @@ class MultiStepNodeFormBasicOptionsTest extends NodeTestBase {
    */
   protected $field_name;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Multistep node form basic options',
-      'description' => 'Test the persistence of basic options through multiple steps.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Tests changing the default values of basic options to ensure they persist.
    */
diff --git a/core/modules/node/src/Tests/NodeAccessBaseTableTest.php b/core/modules/node/src/Tests/NodeAccessBaseTableTest.php
index a590f28..ec05c8c 100644
--- a/core/modules/node/src/Tests/NodeAccessBaseTableTest.php
+++ b/core/modules/node/src/Tests/NodeAccessBaseTableTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests for Node Access with a non-node base table.
+ * Tests behavior of the node access subsystem if the base table is not node.
+ *
+ * @group node
  */
 class NodeAccessBaseTableTest extends NodeTestBase {
 
@@ -28,14 +30,6 @@ class NodeAccessBaseTableTest extends NodeTestBase {
    */
   protected $profile = 'standard';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node access on any table',
-      'description' => 'Checks behavior of the node access subsystem if the base table is not node.',
-      'group' => 'Node',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeAccessFieldTest.php b/core/modules/node/src/Tests/NodeAccessFieldTest.php
index dfcb72f..2815c12 100644
--- a/core/modules/node/src/Tests/NodeAccessFieldTest.php
+++ b/core/modules/node/src/Tests/NodeAccessFieldTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests the interaction of the node access system with fields.
+ *
+ * @group node
  */
 class NodeAccessFieldTest extends NodeTestBase {
 
@@ -40,14 +42,6 @@ class NodeAccessFieldTest extends NodeTestBase {
    */
   protected $field_name;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node access and fields',
-      'description' => 'Tests the interaction of the node access system with fields.',
-      'group' => 'Node',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php b/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php
index 7af2816..1eeb584 100644
--- a/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php
+++ b/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php
@@ -10,7 +10,10 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Tests node access with multiple languages and access control modules.
+ * Tests node access functionality with multiple languages and two node access
+ * modules.
+ *
+ * @group node
  */
 class NodeAccessLanguageAwareCombinationTest extends NodeTestBase {
 
@@ -42,14 +45,6 @@ class NodeAccessLanguageAwareCombinationTest extends NodeTestBase {
    */
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node access language-aware combination',
-      'description' => 'Tests node access functionality with multiple languages and two node access modules.',
-      'group' => 'Node',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php b/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php
index 6012dfc..08eec39 100644
--- a/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php
+++ b/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php
@@ -10,7 +10,10 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Tests node access functionality for multiple languages.
+ * Tests node_access and db_select() with node_access tag functionality with
+ * multiple languages with node_access_test_language which is language-aware.
+ *
+ * @group node
  */
 class NodeAccessLanguageAwareTest extends NodeTestBase {
 
@@ -35,14 +38,6 @@ class NodeAccessLanguageAwareTest extends NodeTestBase {
    */
   protected $web_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node access language-aware',
-      'description' => 'Test node_access and db_select() with node_access tag functionality with multiple languages with node_access_test_language which is language-aware.',
-      'group' => 'Node',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeAccessLanguageTest.php b/core/modules/node/src/Tests/NodeAccessLanguageTest.php
index 619fcac..526439f 100644
--- a/core/modules/node/src/Tests/NodeAccessLanguageTest.php
+++ b/core/modules/node/src/Tests/NodeAccessLanguageTest.php
@@ -11,7 +11,10 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Verifies node access functionality for multiple languages.
+ * Tests node_access and db_select() with node_access tag functionality with
+ * multiple languages with a test node access module that is not language-aware.
+ *
+ * @group node
  */
 class NodeAccessLanguageTest extends NodeTestBase {
 
@@ -22,14 +25,6 @@ class NodeAccessLanguageTest extends NodeTestBase {
    */
   public static $modules = array('language', 'node_access_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node access language',
-      'description' => 'Test node_access and db_select() with node_access tag functionality with multiple languages with a test node access module that is not language-aware.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeAccessPagerTest.php b/core/modules/node/src/Tests/NodeAccessPagerTest.php
index 75a17c9..4e2c018 100644
--- a/core/modules/node/src/Tests/NodeAccessPagerTest.php
+++ b/core/modules/node/src/Tests/NodeAccessPagerTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests pagination with a node access module enabled.
+ * Tests access controlled node views have the right amount of comment pages.
+ *
+ * @group node
  */
 class NodeAccessPagerTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class NodeAccessPagerTest extends WebTestBase {
    */
   public static $modules = array('node_access_test', 'comment', 'forum');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node access pagination',
-      'description' => 'Test access controlled node views have the right amount of comment pages.',
-      'group' => 'Node',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeAccessRebuildTest.php b/core/modules/node/src/Tests/NodeAccessRebuildTest.php
index dc2e015..dfc6273 100644
--- a/core/modules/node/src/Tests/NodeAccessRebuildTest.php
+++ b/core/modules/node/src/Tests/NodeAccessRebuildTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\node\Tests;
 
 /**
- * Verifies the rebuild functionality for the node_access table.
+ * Ensures that node access rebuild functions work correctly.
+ *
+ * @group node
  */
 class NodeAccessRebuildTest extends NodeTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Node access rebuild',
-      'description' => 'Ensures that node access rebuild functions work correctly.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeAccessRecordsTest.php b/core/modules/node/src/Tests/NodeAccessRecordsTest.php
index cfeaf0a..fc0141f 100644
--- a/core/modules/node/src/Tests/NodeAccessRecordsTest.php
+++ b/core/modules/node/src/Tests/NodeAccessRecordsTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests hook_node_access_records() functionality.
+ * Tests hook_node_access_records when acquiring grants.
+ *
+ * @group node
  */
 class NodeAccessRecordsTest extends NodeTestBase {
 
@@ -19,14 +21,6 @@ class NodeAccessRecordsTest extends NodeTestBase {
    */
   public static $modules = array('node_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node access records',
-      'description' => 'Test hook_node_access_records when acquiring grants.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Creates a node and tests the creation of node access rules.
    */
diff --git a/core/modules/node/src/Tests/NodeAccessTest.php b/core/modules/node/src/Tests/NodeAccessTest.php
index 127ea5d..f91d6f8 100644
--- a/core/modules/node/src/Tests/NodeAccessTest.php
+++ b/core/modules/node/src/Tests/NodeAccessTest.php
@@ -12,17 +12,10 @@
  *
  * Note that hook_node_access_records() is covered in another test class.
  *
+ * @group node
  * @todo Cover hook_node_access in a separate test class.
  */
 class NodeAccessTest extends NodeTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Node access',
-      'description' => 'Test node_access function',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Clear permissions for authenticated users.
diff --git a/core/modules/node/src/Tests/NodeAdminTest.php b/core/modules/node/src/Tests/NodeAdminTest.php
index 576fedf..6a69315 100644
--- a/core/modules/node/src/Tests/NodeAdminTest.php
+++ b/core/modules/node/src/Tests/NodeAdminTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests node administration page functionality.
+ *
+ * @group node
  */
 class NodeAdminTest extends NodeTestBase {
 
@@ -19,14 +21,6 @@ class NodeAdminTest extends NodeTestBase {
    */
   public static $modules = array('views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node administration',
-      'description' => 'Test node administration page functionality.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeBlockFunctionalTest.php b/core/modules/node/src/Tests/NodeBlockFunctionalTest.php
index c0f5760..9562a45 100644
--- a/core/modules/node/src/Tests/NodeBlockFunctionalTest.php
+++ b/core/modules/node/src/Tests/NodeBlockFunctionalTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests;
 
 /**
- * Functional tests for the node module blocks.
+ * Tests node block functionality.
+ *
+ * @group node
  */
 class NodeBlockFunctionalTest extends NodeTestBase {
 
@@ -33,14 +35,6 @@ class NodeBlockFunctionalTest extends NodeTestBase {
    */
   public static $modules = array('block', 'views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node blocks',
-      'description' => 'Test node block functionality.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeCacheTagsTest.php b/core/modules/node/src/Tests/NodeCacheTagsTest.php
index 962f2f8..6e5f966 100644
--- a/core/modules/node/src/Tests/NodeCacheTagsTest.php
+++ b/core/modules/node/src/Tests/NodeCacheTagsTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the Node entity's cache tags.
+ *
+ * @group node
  */
 class NodeCacheTagsTest extends EntityWithUriCacheTagsTestBase {
 
@@ -23,13 +25,6 @@ class NodeCacheTagsTest extends EntityWithUriCacheTagsTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return parent::generateStandardizedInfo('Node', 'Node');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeCreationTest.php b/core/modules/node/src/Tests/NodeCreationTest.php
index 62846cf..7ea8b4d 100644
--- a/core/modules/node/src/Tests/NodeCreationTest.php
+++ b/core/modules/node/src/Tests/NodeCreationTest.php
@@ -11,7 +11,9 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Tests creating and saving a node.
+ * Create a node and test saving it.
+ *
+ * @group node
  */
 class NodeCreationTest extends NodeTestBase {
 
@@ -24,14 +26,6 @@ class NodeCreationTest extends NodeTestBase {
    */
   public static $modules = array('node_test_exception', 'dblog', 'test_page_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node creation',
-      'description' => 'Create a node and test saving it.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeEntityViewModeAlterTest.php b/core/modules/node/src/Tests/NodeEntityViewModeAlterTest.php
index 156e37d..4f6345c 100644
--- a/core/modules/node/src/Tests/NodeEntityViewModeAlterTest.php
+++ b/core/modules/node/src/Tests/NodeEntityViewModeAlterTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests changing view modes for nodes.
+ *
+ * @group node
  */
 class NodeEntityViewModeAlterTest extends NodeTestBase {
 
@@ -17,14 +19,6 @@ class NodeEntityViewModeAlterTest extends NodeTestBase {
    */
   public static $modules = array('node_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node entity view mode',
-      'description' => 'Test changing view mode.',
-      'group' => 'Node'
-    );
-  }
-
   /**
    * Create a "Basic page" node and verify its consistency in the database.
    */
diff --git a/core/modules/node/src/Tests/NodeFieldMultilingualTestCase.php b/core/modules/node/src/Tests/NodeFieldMultilingualTestCase.php
index 319fdb4..ef7e920 100644
--- a/core/modules/node/src/Tests/NodeFieldMultilingualTestCase.php
+++ b/core/modules/node/src/Tests/NodeFieldMultilingualTestCase.php
@@ -14,7 +14,9 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Functional test for multilingual fields.
+ * Tests multilingual support for fields.
+ *
+ * @group node
  */
 class NodeFieldMultilingualTestCase extends WebTestBase {
 
@@ -25,14 +27,6 @@ class NodeFieldMultilingualTestCase extends WebTestBase {
    */
   public static $modules = array('node', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Multilingual fields',
-      'description' => 'Test multilingual support for fields.',
-      'group' => 'Field API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeFormButtonsTest.php b/core/modules/node/src/Tests/NodeFormButtonsTest.php
index 9a6831d..b1f7203 100644
--- a/core/modules/node/src/Tests/NodeFormButtonsTest.php
+++ b/core/modules/node/src/Tests/NodeFormButtonsTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests the node form buttons.
+ * Tests all the different buttons on the node form.
+ *
+ * @group node
  */
 class NodeFormButtonsTest extends NodeTestBase {
 
@@ -16,14 +18,6 @@ class NodeFormButtonsTest extends NodeTestBase {
 
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node form buttons',
-      'description' => 'Test all the different buttons on the node form.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeLastChangedTest.php b/core/modules/node/src/Tests/NodeLastChangedTest.php
index aa1dbfa..f3e20fd 100644
--- a/core/modules/node/src/Tests/NodeLastChangedTest.php
+++ b/core/modules/node/src/Tests/NodeLastChangedTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the node_last_changed() function.
+ *
+ * @group node
  */
 class NodeLastChangedTest extends DrupalUnitTestBase {
 
@@ -21,14 +23,6 @@ class NodeLastChangedTest extends DrupalUnitTestBase {
    */
   public static $modules = array('entity', 'user', 'node', 'field', 'text', 'filter');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node Last Changed',
-      'description' => 'Tests the node_last_changed() function.',
-      'group' => 'Node',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installEntitySchema('node');
diff --git a/core/modules/node/src/Tests/NodeLoadMultipleTest.php b/core/modules/node/src/Tests/NodeLoadMultipleTest.php
index c858376..e57ca8f 100644
--- a/core/modules/node/src/Tests/NodeLoadMultipleTest.php
+++ b/core/modules/node/src/Tests/NodeLoadMultipleTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests the node_load_multiple() function.
+ * Tests the loading of multiple nodes.
+ *
+ * @group node
  */
 class NodeLoadMultipleTest extends NodeTestBase {
 
@@ -19,14 +21,6 @@ class NodeLoadMultipleTest extends NodeTestBase {
    */
   public static $modules = array('views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Load multiple nodes',
-      'description' => 'Test the loading of multiple nodes.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $web_user = $this->drupalCreateUser(array('create article content', 'create page content'));
diff --git a/core/modules/node/src/Tests/NodePostSettingsTest.php b/core/modules/node/src/Tests/NodePostSettingsTest.php
index 7cfaa7e..f0b74cc 100644
--- a/core/modules/node/src/Tests/NodePostSettingsTest.php
+++ b/core/modules/node/src/Tests/NodePostSettingsTest.php
@@ -8,18 +8,13 @@
 namespace Drupal\node\Tests;
 
 /**
- * Checks that the post information displays when enabled for a content type.
+ * Tests that the post information (submitted by Username on date) text displays
+ * appropriately.
+ *
+ * @group node
  */
 class NodePostSettingsTest extends NodeTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node post information display',
-      'description' => 'Check that the post information (submitted by Username on date) text displays appropriately.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeQueryAlterTest.php b/core/modules/node/src/Tests/NodeQueryAlterTest.php
index ad80d73..1066386 100644
--- a/core/modules/node/src/Tests/NodeQueryAlterTest.php
+++ b/core/modules/node/src/Tests/NodeQueryAlterTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests node_query_node_access_alter().
+ * Tests that node access queries are properly altered by the node module.
+ *
+ * @group node
  */
 class NodeQueryAlterTest extends NodeTestBase {
 
@@ -19,14 +21,6 @@ class NodeQueryAlterTest extends NodeTestBase {
    */
   public static $modules = array('node_access_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node query alter',
-      'description' => 'Test that node access queries are properly altered by the node module.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * User with permission to view content.
    */
diff --git a/core/modules/node/src/Tests/NodeRSSContentTest.php b/core/modules/node/src/Tests/NodeRSSContentTest.php
index 64f8a2a..1ab9347 100644
--- a/core/modules/node/src/Tests/NodeRSSContentTest.php
+++ b/core/modules/node/src/Tests/NodeRSSContentTest.php
@@ -13,6 +13,8 @@
  * Create a node, enable the node_test module to ensure that extra data is
  * added to the node's renderable array, then verify that the data appears on
  * the site-wide RSS feed at rss.xml.
+ *
+ * @group node
  */
 class NodeRSSContentTest extends NodeTestBase {
 
@@ -23,14 +25,6 @@ class NodeRSSContentTest extends NodeTestBase {
    */
   public static $modules = array('node_test', 'views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node RSS Content',
-      'description' => 'Ensure that data added to nodes by other modules appears in RSS feeds.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeRevisionPermissionsTest.php b/core/modules/node/src/Tests/NodeRevisionPermissionsTest.php
index b3e48ef..bba2587 100644
--- a/core/modules/node/src/Tests/NodeRevisionPermissionsTest.php
+++ b/core/modules/node/src/Tests/NodeRevisionPermissionsTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests user permissions for node revisions.
+ *
+ * @group node
  */
 class NodeRevisionPermissionsTest extends NodeTestBase {
   protected $node_revisions = array();
@@ -28,14 +30,6 @@ class NodeRevisionPermissionsTest extends NodeTestBase {
     'delete' => 'delete page revisions',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node revision permissions',
-      'description' => 'Tests user permissions for node revision operations.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeRevisionsAllTestCase.php b/core/modules/node/src/Tests/NodeRevisionsAllTestCase.php
index f82cd7d..0f8e503 100644
--- a/core/modules/node/src/Tests/NodeRevisionsAllTestCase.php
+++ b/core/modules/node/src/Tests/NodeRevisionsAllTestCase.php
@@ -8,21 +8,16 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests actions against revisions for user with access to all revisions.
+ * Create a node with revisions and test viewing, saving, reverting, and
+ * deleting revisions for user with access to all.
+ *
+ * @group node
  */
 class NodeRevisionsAllTestCase extends NodeTestBase {
   protected $nodes;
   protected $revisionLogs;
   protected $profile = "standard";
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node revisions all',
-      'description' => 'Create a node with revisions and test viewing, saving, reverting, and deleting revisions for user with access to all.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeRevisionsTest.php b/core/modules/node/src/Tests/NodeRevisionsTest.php
index 549b354..16bb759 100644
--- a/core/modules/node/src/Tests/NodeRevisionsTest.php
+++ b/core/modules/node/src/Tests/NodeRevisionsTest.php
@@ -8,20 +8,15 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests the node revision functionality.
+ * Create a node with revisions and test viewing, saving, reverting, and
+ * deleting revisions for users with access for this content type.
+ *
+ * @group node
  */
 class NodeRevisionsTest extends NodeTestBase {
   protected $nodes;
   protected $revisionLogs;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node revisions by type',
-      'description' => 'Create a node with revisions and test viewing, saving, reverting, and deleting revisions for users with access for this content type.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeRevisionsUiTest.php b/core/modules/node/src/Tests/NodeRevisionsUiTest.php
index a0bb54d..d0a2bc7 100644
--- a/core/modules/node/src/Tests/NodeRevisionsUiTest.php
+++ b/core/modules/node/src/Tests/NodeRevisionsUiTest.php
@@ -8,24 +8,15 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests the node revision functionality.
+ * Tests the UI for controlling node revision behavior.
+ *
+ * @group node
  */
 class NodeRevisionsUiTest extends NodeTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Node revisions UI test',
-      'description' => 'Checks the UI for controlling node revision behavior.',
-      'group' => 'Node',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeSaveTest.php b/core/modules/node/src/Tests/NodeSaveTest.php
index 0377705..eaafdd5 100644
--- a/core/modules/node/src/Tests/NodeSaveTest.php
+++ b/core/modules/node/src/Tests/NodeSaveTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests node save related functionality, including import-save.
+ * Tests $node->save() for saving content.
+ *
+ * @group node
  */
 class NodeSaveTest extends NodeTestBase {
 
@@ -19,14 +21,6 @@ class NodeSaveTest extends NodeTestBase {
    */
   public static $modules = array('node_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node save',
-      'description' => 'Test $node->save() for saving content.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeSyndicateBlockTest.php b/core/modules/node/src/Tests/NodeSyndicateBlockTest.php
index 06a618f..b5bc4a2 100644
--- a/core/modules/node/src/Tests/NodeSyndicateBlockTest.php
+++ b/core/modules/node/src/Tests/NodeSyndicateBlockTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests the availability of the syndicate block.
+ * Tests if the syndicate block is available.
+ *
+ * @group node
  */
 class NodeSyndicateBlockTest extends NodeTestBase {
 
@@ -19,14 +21,6 @@ class NodeSyndicateBlockTest extends NodeTestBase {
    */
   public static $modules = array('block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Syndicate block',
-      'description' => 'Check if the syndicate block is available.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeTemplateSuggestionsTest.php b/core/modules/node/src/Tests/NodeTemplateSuggestionsTest.php
index fbf03e9..fef6aa0 100644
--- a/core/modules/node/src/Tests/NodeTemplateSuggestionsTest.php
+++ b/core/modules/node/src/Tests/NodeTemplateSuggestionsTest.php
@@ -8,22 +8,13 @@
 namespace Drupal\node\Tests;
 
 /**
- * Checks node template suggestions.
+ * Tests node template suggestions.
+ *
+ * @group node
  */
 class NodeTemplateSuggestionsTest extends NodeTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Node template suggestions',
-      'description' => 'Tests the node template suggestions.',
-      'group' => 'Node',
-    );
-  }
-
-  /**
    * Tests if template_preprocess_node() generates the correct suggestions.
    */
   function testNodeThemeHookSuggestions() {
diff --git a/core/modules/node/src/Tests/NodeTitleTest.php b/core/modules/node/src/Tests/NodeTitleTest.php
index 784125c..cd63f32 100644
--- a/core/modules/node/src/Tests/NodeTitleTest.php
+++ b/core/modules/node/src/Tests/NodeTitleTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests node title functionality.
+ * Tests node title.
+ *
+ * @group node
  */
 class NodeTitleTest extends NodeTestBase {
 
@@ -21,14 +23,6 @@ class NodeTitleTest extends NodeTestBase {
 
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node title',
-      'description' => 'Test node title.',
-      'group' => 'Node'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeTitleXSSTest.php b/core/modules/node/src/Tests/NodeTitleXSSTest.php
index 4eb58b7..37537b0 100644
--- a/core/modules/node/src/Tests/NodeTitleXSSTest.php
+++ b/core/modules/node/src/Tests/NodeTitleXSSTest.php
@@ -8,17 +8,12 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests XSS functionality with a node entity.
+ * Create a node with dangerous tags in its title and test that they are
+ * escaped.
+ *
+ * @group node
  */
 class NodeTitleXSSTest extends NodeTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Node title XSS filtering',
-      'description' => 'Create a node with dangerous tags in its title and test that they are escaped.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Tests XSS functionality with a node entity.
    */
diff --git a/core/modules/node/src/Tests/NodeTokenReplaceTest.php b/core/modules/node/src/Tests/NodeTokenReplaceTest.php
index e9c1a1f..a80ed79 100644
--- a/core/modules/node/src/Tests/NodeTokenReplaceTest.php
+++ b/core/modules/node/src/Tests/NodeTokenReplaceTest.php
@@ -11,7 +11,10 @@
 use Drupal\Component\Utility\String;
 
 /**
- * Test node token replacement in strings.
+ * Generates text using placeholders for dummy content to check node token
+ * replacement.
+ *
+ * @group node
  */
 class NodeTokenReplaceTest extends TokenReplaceUnitTestBase {
 
@@ -25,17 +28,6 @@ class NodeTokenReplaceTest extends TokenReplaceUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Node token replacement',
-      'description' => 'Generates text using placeholders for dummy content to check node token replacement.',
-      'group' => 'Node',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $this->installEntitySchema('node');
diff --git a/core/modules/node/src/Tests/NodeTranslationUITest.php b/core/modules/node/src/Tests/NodeTranslationUITest.php
index dd79a7c..b6dde03 100644
--- a/core/modules/node/src/Tests/NodeTranslationUITest.php
+++ b/core/modules/node/src/Tests/NodeTranslationUITest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the Node Translation UI.
+ *
+ * @group node
  */
 class NodeTranslationUITest extends ContentTranslationUITest {
 
@@ -29,14 +31,6 @@ class NodeTranslationUITest extends ContentTranslationUITest {
    */
   protected $profile = 'standard';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node translation UI',
-      'description' => 'Tests the node translation UI.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     $this->entityTypeId = 'node';
     $this->bundle = 'article';
diff --git a/core/modules/node/src/Tests/NodeTypeInitialLanguageTest.php b/core/modules/node/src/Tests/NodeTypeInitialLanguageTest.php
index ae17434..19edadf 100644
--- a/core/modules/node/src/Tests/NodeTypeInitialLanguageTest.php
+++ b/core/modules/node/src/Tests/NodeTypeInitialLanguageTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests related to node type initial language.
+ * Tests node type initial language settings.
+ *
+ * @group node
  */
 class NodeTypeInitialLanguageTest extends NodeTestBase {
 
@@ -19,14 +21,6 @@ class NodeTypeInitialLanguageTest extends NodeTestBase {
    */
   public static $modules = array('language', 'field_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node type initial language',
-      'description' => 'Tests node type initial language settings.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/NodeTypePersistenceTest.php b/core/modules/node/src/Tests/NodeTypePersistenceTest.php
index 1dd4c96..683b07c 100644
--- a/core/modules/node/src/Tests/NodeTypePersistenceTest.php
+++ b/core/modules/node/src/Tests/NodeTypePersistenceTest.php
@@ -8,19 +8,13 @@
 namespace Drupal\node\Tests;
 
 /**
- * Test node type customizations persistence.
+ * Ensures that node type customization survives module enabling and disabling.
+ *
+ * @group node
  */
 class NodeTypePersistenceTest extends NodeTestBase {
   // Enable the prerequisite modules for forum
   public static $modules = array('history', 'taxonomy', 'options', 'comment');
-  public static function getInfo() {
-    return array(
-      'name' => 'Node type persist',
-      'description' => 'Ensures that node type customization survives module enabling and disabling.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Tests that node type customizations persist through disable and uninstall.
    */
diff --git a/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php b/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php
index 2bb230e..f4c8a62 100644
--- a/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php
+++ b/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php
@@ -15,6 +15,8 @@
 
 /**
  * Tests importing renamed node type via configuration synchronisation.
+ *
+ * @group node
  */
 class NodeTypeRenameConfigImportTest extends WebTestBase {
 
@@ -28,17 +30,6 @@ class NodeTypeRenameConfigImportTest extends WebTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Import renamed node type',
-      'description' => 'Tests importing renamed node type via configuration synchronisation.',
-      'group' => 'Configuration',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $this->web_user = $this->drupalCreateUser(array('synchronize configuration'));
diff --git a/core/modules/node/src/Tests/NodeTypeTest.php b/core/modules/node/src/Tests/NodeTypeTest.php
index 7fdb99d..10bfbb9 100644
--- a/core/modules/node/src/Tests/NodeTypeTest.php
+++ b/core/modules/node/src/Tests/NodeTypeTest.php
@@ -9,7 +9,9 @@
 use Drupal\field\Entity\FieldInstanceConfig;
 
 /**
- * Tests related to node types.
+ * Ensures that node type functions work correctly.
+ *
+ * @group node
  */
 class NodeTypeTest extends NodeTestBase {
 
@@ -20,14 +22,6 @@ class NodeTypeTest extends NodeTestBase {
    */
   public static $modules = array('field_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node types',
-      'description' => 'Ensures that node type functions work correctly.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Ensures that node type functions (node_type_get_*) work correctly.
    *
diff --git a/core/modules/node/src/Tests/NodeValidationTest.php b/core/modules/node/src/Tests/NodeValidationTest.php
index 94c7ca3..3e1d4ba 100644
--- a/core/modules/node/src/Tests/NodeValidationTest.php
+++ b/core/modules/node/src/Tests/NodeValidationTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests node validation constraints.
+ *
+ * @group node
  */
 class NodeValidationTest extends EntityUnitTestBase {
 
@@ -21,14 +23,6 @@ class NodeValidationTest extends EntityUnitTestBase {
    */
   public static $modules = array('node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node Validation',
-      'description' => 'Tests the node validation constraints.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Set the default field storage backend for fields created during tests.
    */
diff --git a/core/modules/node/src/Tests/NodeViewLanguageTest.php b/core/modules/node/src/Tests/NodeViewLanguageTest.php
index f2bdf7f..dbb07ae 100644
--- a/core/modules/node/src/Tests/NodeViewLanguageTest.php
+++ b/core/modules/node/src/Tests/NodeViewLanguageTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the node language extra field display.
+ *
+ * @group node
  */
 class NodeViewLanguageTest extends NodeTestBase {
 
@@ -21,14 +23,6 @@ class NodeViewLanguageTest extends NodeTestBase {
    */
   public static $modules = array('node', 'datetime', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node view language field',
-      'description' => 'Tests the language extra field display.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Tests the language extra field display.
    */
diff --git a/core/modules/node/src/Tests/NodeViewTest.php b/core/modules/node/src/Tests/NodeViewTest.php
index 5f04e45..03c0035 100644
--- a/core/modules/node/src/Tests/NodeViewTest.php
+++ b/core/modules/node/src/Tests/NodeViewTest.php
@@ -10,18 +10,11 @@
 /**
  * Tests the node/{node} page.
  *
+ * @group node
  * @see \Drupal\node\Controller\NodeController
  */
 class NodeViewTest extends NodeTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node view page',
-      'description' => 'Tests the node/{node} page.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Tests the html head links.
    */
diff --git a/core/modules/node/src/Tests/PageEditTest.php b/core/modules/node/src/Tests/PageEditTest.php
index 2361d13..9ab628e 100644
--- a/core/modules/node/src/Tests/PageEditTest.php
+++ b/core/modules/node/src/Tests/PageEditTest.php
@@ -8,20 +8,14 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests the node edit functionality.
+ * Create a node and test node edit functionality.
+ *
+ * @group node
  */
 class PageEditTest extends NodeTestBase {
   protected $web_user;
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node edit',
-      'description' => 'Create a node and test node edit functionality.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/PagePreviewTest.php b/core/modules/node/src/Tests/PagePreviewTest.php
index d1635c5..b40ea57 100644
--- a/core/modules/node/src/Tests/PagePreviewTest.php
+++ b/core/modules/node/src/Tests/PagePreviewTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the node entity preview functionality.
+ *
+ * @group node
  */
 class PagePreviewTest extends NodeTestBase {
 
@@ -28,14 +30,6 @@ class PagePreviewTest extends NodeTestBase {
    */
   protected $field_name;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node preview',
-      'description' => 'Test node preview functionality.',
-      'group' => 'Node',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/PageViewTest.php b/core/modules/node/src/Tests/PageViewTest.php
index 7186d45..0d83193 100644
--- a/core/modules/node/src/Tests/PageViewTest.php
+++ b/core/modules/node/src/Tests/PageViewTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests the functionality of node entity edit permissions.
+ * Create a node and test edit permissions.
+ *
+ * @group node
  */
 class PageViewTest extends NodeTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Node edit permissions',
-      'description' => 'Create a node and test edit permissions.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Tests an anonymous and unpermissioned user attempting to edit the node.
    */
diff --git a/core/modules/node/src/Tests/SummaryLengthTest.php b/core/modules/node/src/Tests/SummaryLengthTest.php
index 8568d44..7b82d29 100644
--- a/core/modules/node/src/Tests/SummaryLengthTest.php
+++ b/core/modules/node/src/Tests/SummaryLengthTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\node\Tests;
 
 /**
- * Tests the summary length functionality.
+ * Tests summary length.
+ *
+ * @group node
  */
 class SummaryLengthTest extends NodeTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Summary length',
-      'description' => 'Test summary length.',
-      'group' => 'Node',
-    );
-  }
-
   /**
    * Tests the node summary length functionality.
    */
diff --git a/core/modules/node/src/Tests/Views/BulkFormTest.php b/core/modules/node/src/Tests/Views/BulkFormTest.php
index af0b2d1..53600e9 100644
--- a/core/modules/node/src/Tests/Views/BulkFormTest.php
+++ b/core/modules/node/src/Tests/Views/BulkFormTest.php
@@ -8,8 +8,9 @@
 namespace Drupal\node\Tests\Views;
 
 /**
- * Tests the views bulk form test.
+ * Tests a node bulk form.
  *
+ * @group node
  * @see \Drupal\node\Plugin\views\field\BulkForm
  */
 class BulkFormTest extends NodeTestBase {
@@ -21,14 +22,6 @@ class BulkFormTest extends NodeTestBase {
    */
   public static $testViews = array('test_node_bulk_form');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node: Bulk form',
-      'description' => 'Tests a node bulk form.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the node bulk form.
    */
diff --git a/core/modules/node/src/Tests/Views/FieldTypeTest.php b/core/modules/node/src/Tests/Views/FieldTypeTest.php
index e8f1e2c..7f20b55 100644
--- a/core/modules/node/src/Tests/Views/FieldTypeTest.php
+++ b/core/modules/node/src/Tests/Views/FieldTypeTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the Drupal\node\Plugin\views\field\Type handler.
+ *
+ * @group node
  */
 class FieldTypeTest extends NodeTestBase {
 
@@ -21,14 +23,6 @@ class FieldTypeTest extends NodeTestBase {
    */
   public static $testViews = array('test_field_type');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node: Node Type field',
-      'description' => 'Tests the Drupal\node\Plugin\views\field\Type handler.',
-      'group' => 'Views module integration',
-    );
-  }
-
   public function testFieldType() {
     $node = $this->drupalCreateNode();
     $expected_result[] = array(
diff --git a/core/modules/node/src/Tests/Views/FilterUidRevisionTest.php b/core/modules/node/src/Tests/Views/FilterUidRevisionTest.php
index 1e38fb4..60216b0 100644
--- a/core/modules/node/src/Tests/Views/FilterUidRevisionTest.php
+++ b/core/modules/node/src/Tests/Views/FilterUidRevisionTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the node_uid_revision handler.
+ *
+ * @group node
  */
 class FilterUidRevisionTest extends NodeTestBase {
 
@@ -21,15 +23,6 @@ class FilterUidRevisionTest extends NodeTestBase {
    */
   public static $testViews = array('test_filter_node_uid_revision');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node: User has revision Filter',
-      'description' => 'Tests the node_uid_revision handler.',
-      'group' => 'Views module integration',
-    );
-  }
-
-
   /**
    * Tests the node_uid_revision filter.
    */
diff --git a/core/modules/node/src/Tests/Views/FrontPageTest.php b/core/modules/node/src/Tests/Views/FrontPageTest.php
index b1f00ef..b68ab0f 100644
--- a/core/modules/node/src/Tests/Views/FrontPageTest.php
+++ b/core/modules/node/src/Tests/Views/FrontPageTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the default frontpage provided by views.
+ *
+ * @group node
  */
 class FrontPageTest extends ViewTestBase {
 
@@ -30,14 +32,6 @@ class FrontPageTest extends ViewTestBase {
    */
   public static $modules = array('node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node: Frontpage view',
-      'description' => 'Tests the default frontpage provided by views.',
-      'group' => 'Views module integration',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/Views/NodeContextualLinksTest.php b/core/modules/node/src/Tests/Views/NodeContextualLinksTest.php
index e8f6791..c77df9c 100644
--- a/core/modules/node/src/Tests/Views/NodeContextualLinksTest.php
+++ b/core/modules/node/src/Tests/Views/NodeContextualLinksTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests views contextual links on nodes.
+ *
+ * @group node
  */
 class NodeContextualLinksTest extends NodeTestBase {
 
@@ -29,14 +31,6 @@ class NodeContextualLinksTest extends NodeTestBase {
    */
   public static $testViews = array('test_contextual_links');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node: contextual links',
-      'description' => 'Tests views contextual links on nodes.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests contextual links.
    */
diff --git a/core/modules/node/src/Tests/Views/NodeIntegrationTest.php b/core/modules/node/src/Tests/Views/NodeIntegrationTest.php
index 9995c99..2be15a0 100644
--- a/core/modules/node/src/Tests/Views/NodeIntegrationTest.php
+++ b/core/modules/node/src/Tests/Views/NodeIntegrationTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\node\Tests\Views;
 
 /**
- * Tests Node module's Views integration.
+ * Tests the node integration into views.
+ *
+ * @group node
  */
 class NodeIntegrationTest extends NodeTestBase {
 
@@ -19,14 +21,6 @@ class NodeIntegrationTest extends NodeTestBase {
    */
   public static $testViews = array('test_node_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node: Views data',
-      'description' => 'Tests the node integration into views.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests basic node view with a node type argument.
    */
diff --git a/core/modules/node/src/Tests/Views/NodeRevisionWizardTest.php b/core/modules/node/src/Tests/Views/NodeRevisionWizardTest.php
index 3601310..d2d08ed 100644
--- a/core/modules/node/src/Tests/Views/NodeRevisionWizardTest.php
+++ b/core/modules/node/src/Tests/Views/NodeRevisionWizardTest.php
@@ -13,22 +13,12 @@
 /**
  * Tests the wizard with node_revision as base table.
  *
+ * @group node
  * @see \Drupal\node\Plugin\views\wizard\NodeRevision
  */
 class NodeRevisionWizardTest extends WizardTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Node revision wizard',
-      'description' => 'Tests the wizard with node_revision as base table.',
-      'group' => 'Views Wizard',
-    );
-  }
-
-  /**
    * Tests creating a node revision view.
    */
   public function testViewAdd() {
diff --git a/core/modules/node/src/Tests/Views/RevisionRelationships.php b/core/modules/node/src/Tests/Views/RevisionRelationships.php
index 4968048..dc4c0c8 100644
--- a/core/modules/node/src/Tests/Views/RevisionRelationships.php
+++ b/core/modules/node/src/Tests/Views/RevisionRelationships.php
@@ -11,7 +11,9 @@
 use Drupal\views\Tests\ViewTestData;
 
 /**
- * Tests basic node_revision table integration into views.
+ * Tests the integration of node_revision table of node module.
+ *
+ * @group node
  */
 class RevisionRelationships extends ViewTestBase {
 
@@ -35,14 +37,6 @@ protected function setUp() {
    */
   public static $testViews = array('test_node_revision_nid', 'test_node_revision_vid');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node: Revision integration',
-      'description' => 'Tests the integration of node_revision table of node module',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Create a node with revision and rest result count for both views.
    */
diff --git a/core/modules/node/src/Tests/Views/RowPluginTest.php b/core/modules/node/src/Tests/Views/RowPluginTest.php
index 7d83d3a..698c86d 100644
--- a/core/modules/node/src/Tests/Views/RowPluginTest.php
+++ b/core/modules/node/src/Tests/Views/RowPluginTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the node row plugin.
  *
+ * @group node
  * @see \Drupal\node\Plugin\views\row\NodeRow
  */
 class RowPluginTest extends NodeTestBase {
@@ -44,14 +45,6 @@ class RowPluginTest extends NodeTestBase {
    */
   protected $nodes;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node: Row plugin',
-      'description' => 'Tests the node row plugin.',
-      'group' => 'Views module integration',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/node/src/Tests/Views/StatusExtraTest.php b/core/modules/node/src/Tests/Views/StatusExtraTest.php
index 73962e1..ad6f608 100644
--- a/core/modules/node/src/Tests/Views/StatusExtraTest.php
+++ b/core/modules/node/src/Tests/Views/StatusExtraTest.php
@@ -10,6 +10,7 @@
 /**
  * Tests the node.status_extra field handler.
  *
+ * @group node
  * @see \Drupal\node\Plugin\views\filter\Status
  */
 class StatusExtraTest extends NodeTestBase {
@@ -21,14 +22,6 @@ class StatusExtraTest extends NodeTestBase {
    */
   public static $testViews = array('test_status_extra');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node: Status extra filter',
-      'description' => 'Tests the node.status_extra filter handler.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the status extra filter.
    */
diff --git a/core/modules/node/tests/src/Plugin/views/field/NodeBulkFormTest.php b/core/modules/node/tests/src/Plugin/views/field/NodeBulkFormTest.php
index 5deb7c5..21c4a94 100644
--- a/core/modules/node/tests/src/Plugin/views/field/NodeBulkFormTest.php
+++ b/core/modules/node/tests/src/Plugin/views/field/NodeBulkFormTest.php
@@ -12,20 +12,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the node bulk form plugin.
- *
- * @see \Drupal\node\Plugin\views\field\NodeBulkForm
+ * @coversDefaultClass \Drupal\node\Plugin\views\field\NodeBulkForm
+ * @group node
  */
 class NodeBulkFormTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node: Bulk form',
-      'description' => 'Tests the node bulk form plugin.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/options/src/Tests/OptionsDynamicValuesValidationTest.php b/core/modules/options/src/Tests/OptionsDynamicValuesValidationTest.php
index d464850..d0410b4 100644
--- a/core/modules/options/src/Tests/OptionsDynamicValuesValidationTest.php
+++ b/core/modules/options/src/Tests/OptionsDynamicValuesValidationTest.php
@@ -9,16 +9,10 @@
 
 /**
  * Tests the Options field allowed values function.
+ *
+ * @group options
  */
 class OptionsDynamicValuesValidationTest extends OptionsDynamicValuesTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Options field dynamic values',
-      'description' => 'Test the Options field allowed values function.',
-      'group' => 'Field types',
-    );
-  }
-
   /**
    * Test that allowed values function gets the entity.
    */
diff --git a/core/modules/options/src/Tests/OptionsFieldTest.php b/core/modules/options/src/Tests/OptionsFieldTest.php
index a1d2c14..6263c54 100644
--- a/core/modules/options/src/Tests/OptionsFieldTest.php
+++ b/core/modules/options/src/Tests/OptionsFieldTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests for the 'Options' field types.
+ *
+ * @group options
  */
 class OptionsFieldTest extends OptionsFieldUnitTestBase {
 
@@ -21,14 +23,6 @@ class OptionsFieldTest extends OptionsFieldUnitTestBase {
    */
   public static $modules = array('options');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Options field',
-      'description' => 'Test the Options field type.',
-      'group' => 'Field types',
-    );
-  }
-
   /**
    * Test that allowed values can be updated.
    */
diff --git a/core/modules/options/src/Tests/OptionsFieldUITest.php b/core/modules/options/src/Tests/OptionsFieldUITest.php
index baecfca..bce6877 100644
--- a/core/modules/options/src/Tests/OptionsFieldUITest.php
+++ b/core/modules/options/src/Tests/OptionsFieldUITest.php
@@ -11,7 +11,9 @@
 use Drupal\field\Tests\FieldTestBase;
 
 /**
- * Options module UI tests.
+ * Tests the Options field UI functionality.
+ *
+ * @group options
  */
 class OptionsFieldUITest extends FieldTestBase {
 
@@ -29,14 +31,6 @@ class OptionsFieldUITest extends FieldTestBase {
    */
   protected $type_name;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Options field UI',
-      'description' => 'Test the Options field UI functionality.',
-      'group' => 'Field types',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/options/src/Tests/OptionsFormattersTest.php b/core/modules/options/src/Tests/OptionsFormattersTest.php
index 34cda3a..f02503c 100644
--- a/core/modules/options/src/Tests/OptionsFormattersTest.php
+++ b/core/modules/options/src/Tests/OptionsFormattersTest.php
@@ -8,21 +8,14 @@
 namespace Drupal\options\Tests;
 
 /**
- * Tests the formatters provided by the options module.
+ * Tests the Options field type formatters.
  *
+ * @group options
  * @see \Drupal\options\Plugin\field\formatter\OptionsDefaultFormatter
  * @see \Drupal\options\Plugin\field\formatter\OptionsKeyFormatter
  */
 class OptionsFormattersTest extends OptionsFieldUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Options field formatters',
-      'description' => 'Test the Options field type formatters.',
-      'group' => 'Field types',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/options/src/Tests/OptionsSelectDynamicValuesTest.php b/core/modules/options/src/Tests/OptionsSelectDynamicValuesTest.php
index 3fee9c5..d3989eb 100644
--- a/core/modules/options/src/Tests/OptionsSelectDynamicValuesTest.php
+++ b/core/modules/options/src/Tests/OptionsSelectDynamicValuesTest.php
@@ -9,16 +9,10 @@
 
 /**
  * Tests an options select with a dynamic allowed values function.
+ *
+ * @group options
  */
 class OptionsSelectDynamicValuesTest extends OptionsDynamicValuesTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Options select dynamic values',
-      'description' => 'Test an options select on a list field with a dynamic allowed values function.',
-      'group' => 'Field types',
-    );
-  }
-
   /**
    * Tests the 'options_select' widget (single select).
    */
diff --git a/core/modules/options/src/Tests/OptionsWidgetsTest.php b/core/modules/options/src/Tests/OptionsWidgetsTest.php
index bcec12c..2378728 100644
--- a/core/modules/options/src/Tests/OptionsWidgetsTest.php
+++ b/core/modules/options/src/Tests/OptionsWidgetsTest.php
@@ -10,7 +10,9 @@
 use Drupal\field\Tests\FieldTestBase;
 
 /**
- * Test the Options widgets.
+ * Tests the Options widgets.
+ *
+ * @group options
  */
 class OptionsWidgetsTest extends FieldTestBase {
 
@@ -50,14 +52,6 @@ class OptionsWidgetsTest extends FieldTestBase {
   protected $web_user;
 
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Options widgets',
-      'description'  => "Test the Options widgets.",
-      'group' => 'Field types'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/path/src/Tests/PathAdminTest.php b/core/modules/path/src/Tests/PathAdminTest.php
index 30ea7f4..f3b48a0 100644
--- a/core/modules/path/src/Tests/PathAdminTest.php
+++ b/core/modules/path/src/Tests/PathAdminTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests the Path admin UI.
+ *
+ * @group path
  */
 class PathAdminTest extends PathTestBase {
 
@@ -19,14 +21,6 @@ class PathAdminTest extends PathTestBase {
    */
   public static $modules = array('path');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Path admin UI',
-      'description' => 'Tests the Path admin UI.',
-      'group' => 'Path',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/path/src/Tests/PathAliasTest.php b/core/modules/path/src/Tests/PathAliasTest.php
index db01fa9..2aa65f4 100644
--- a/core/modules/path/src/Tests/PathAliasTest.php
+++ b/core/modules/path/src/Tests/PathAliasTest.php
@@ -8,7 +8,10 @@
 namespace Drupal\path\Tests;
 
 /**
- * Tests path alias functionality.
+ * Add, edit, delete, and change alias and verify its consistency in the
+ * database.
+ *
+ * @group path
  */
 class PathAliasTest extends PathTestBase {
 
@@ -19,14 +22,6 @@ class PathAliasTest extends PathTestBase {
    */
   public static $modules = array('path');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Path alias functionality',
-      'description' => 'Add, edit, delete, and change alias and verify its consistency in the database.',
-      'group' => 'Path',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/path/src/Tests/PathLanguageTest.php b/core/modules/path/src/Tests/PathLanguageTest.php
index 958b4e8..6f241d7 100644
--- a/core/modules/path/src/Tests/PathLanguageTest.php
+++ b/core/modules/path/src/Tests/PathLanguageTest.php
@@ -10,7 +10,9 @@
 use Drupal\field\Entity\FieldConfig;
 
 /**
- * Tests URL aliases for translated nodes.
+ * Confirm that paths work with translated nodes.
+ *
+ * @group path
  */
 class PathLanguageTest extends PathTestBase {
 
@@ -21,14 +23,6 @@ class PathLanguageTest extends PathTestBase {
    */
   public static $modules = array('path', 'locale', 'content_translation');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Path aliases with translated nodes',
-      'description' => 'Confirm that paths work with translated nodes',
-      'group' => 'Path',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/path/src/Tests/PathLanguageUiTest.php b/core/modules/path/src/Tests/PathLanguageUiTest.php
index 5c97eff..59df2bf 100644
--- a/core/modules/path/src/Tests/PathLanguageUiTest.php
+++ b/core/modules/path/src/Tests/PathLanguageUiTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\path\Tests;
 
 /**
- * Tests the user interface for creating path aliases, with languages.
+ * Confirm that the Path module user interface works with languages.
+ *
+ * @group path
  */
 class PathLanguageUiTest extends PathTestBase {
 
@@ -19,14 +21,6 @@ class PathLanguageUiTest extends PathTestBase {
    */
   public static $modules = array('path', 'locale');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Path aliases with languages',
-      'description' => 'Confirm that the Path module user interface works with languages.',
-      'group' => 'Path',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/path/src/Tests/PathTaxonomyTermTest.php b/core/modules/path/src/Tests/PathTaxonomyTermTest.php
index 6c9d0e6..c7ae9d3 100644
--- a/core/modules/path/src/Tests/PathTaxonomyTermTest.php
+++ b/core/modules/path/src/Tests/PathTaxonomyTermTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests URL aliases for taxonomy terms.
+ *
+ * @group path
  */
 class PathTaxonomyTermTest extends PathTestBase {
 
@@ -19,14 +21,6 @@ class PathTaxonomyTermTest extends PathTestBase {
    */
   public static $modules = array('taxonomy');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy term URL aliases',
-      'description' => 'Tests URL aliases for taxonomy terms.',
-      'group' => 'Path',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/path/tests/src/Field/PathFieldDefinitionTest.php b/core/modules/path/tests/src/Field/PathFieldDefinitionTest.php
index afc56f2..a3adc68 100644
--- a/core/modules/path/tests/src/Field/PathFieldDefinitionTest.php
+++ b/core/modules/path/tests/src/Field/PathFieldDefinitionTest.php
@@ -10,12 +10,7 @@
 use Drupal\Tests\Core\Field\FieldDefinitionTestBase;
 
 /**
- * Tests a field definition for a 'path' field.
- *
- * @see \Drupal\Core\Field\FieldDefinition
- * @see \Drupal\path\Plugin\Field\FieldType\PathItem
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\Field\FieldDefinition
  * @group path
  */
 class PathFieldDefinitionTest extends FieldDefinitionTestBase {
@@ -23,17 +18,6 @@ class PathFieldDefinitionTest extends FieldDefinitionTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Path field definitions',
-      'description' => 'Tests that field definitions for path fields work correctly.',
-      'group' => 'Path',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function getPluginId() {
     return 'path';
   }
diff --git a/core/modules/quickedit/src/Tests/EditorSelectionTest.php b/core/modules/quickedit/src/Tests/EditorSelectionTest.php
index 03ce968..4faa335 100644
--- a/core/modules/quickedit/src/Tests/EditorSelectionTest.php
+++ b/core/modules/quickedit/src/Tests/EditorSelectionTest.php
@@ -12,7 +12,9 @@
 use Drupal\quickedit\EditorSelector;
 
 /**
- * Test in-place field editor selection.
+ * Tests in-place field editor selection.
+ *
+ * @group quickedit
  */
 class EditorSelectionTest extends QuickEditTestBase {
 
@@ -30,14 +32,6 @@ class EditorSelectionTest extends QuickEditTestBase {
    */
   protected $editorSelector;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'In-place field editor selection',
-      'description' => 'Tests in-place field editor selection.',
-      'group' => 'Quick Edit',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/quickedit/src/Tests/MetadataGeneratorTest.php b/core/modules/quickedit/src/Tests/MetadataGeneratorTest.php
index 7418ec0..5fd0425 100644
--- a/core/modules/quickedit/src/Tests/MetadataGeneratorTest.php
+++ b/core/modules/quickedit/src/Tests/MetadataGeneratorTest.php
@@ -14,7 +14,9 @@
 use Drupal\quickedit_test\MockEditEntityFieldAccessCheck;
 
 /**
- * Test in-place field editing metadata.
+ * Tests in-place field editing metadata.
+ *
+ * @group quickedit
  */
 class MetadataGeneratorTest extends QuickEditTestBase {
 
@@ -46,14 +48,6 @@ class MetadataGeneratorTest extends QuickEditTestBase {
    */
   protected $accessChecker;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'In-place field editing metadata',
-      'description' => 'Tests in-place field editing metadata generation.',
-      'group' => 'Quick Edit',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php b/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php
index 1e2f838..94b493f 100644
--- a/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php
+++ b/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php
@@ -13,7 +13,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests using in-place editing for an autocomplete entity reference widget.
+ * Tests in-place editing of autocomplete tags.
+ *
+ * @group quickedit
  */
 class QuickEditAutocompleteTermTest extends WebTestBase {
 
@@ -59,14 +61,6 @@ class QuickEditAutocompleteTermTest extends WebTestBase {
    */
   protected $field_name;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'In-place editing of autocomplete tags',
-      'description' => 'Tests in-place editing of autocomplete tags.',
-      'group' => 'Quick Edit',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php b/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php
index ad6b1f3..1f39842 100644
--- a/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php
+++ b/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php
@@ -14,7 +14,10 @@
 use Drupal\Component\Utility\Unicode;
 
 /**
- * Tests loading of Quick Edit and lazy-loading of in-place editors.
+ * Tests loading of in-place editing functionality and lazy loading of its
+ * in-place editors.
+ *
+ * @group quickedit
  */
 class QuickEditLoadingTest extends WebTestBase {
 
@@ -25,14 +28,6 @@ class QuickEditLoadingTest extends WebTestBase {
    */
   public static $modules = array('contextual', 'quickedit', 'filter', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'In-place editing loading',
-      'description' => 'Tests loading of in-place editing functionality and lazy loading of its in-place editors.',
-      'group' => 'Quick Edit',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/quickedit/tests/src/Access/EditEntityAccessCheckTest.php b/core/modules/quickedit/tests/src/Access/EditEntityAccessCheckTest.php
index 6596ccb..33d4ed4 100644
--- a/core/modules/quickedit/tests/src/Access/EditEntityAccessCheckTest.php
+++ b/core/modules/quickedit/tests/src/Access/EditEntityAccessCheckTest.php
@@ -14,12 +14,8 @@
 use Drupal\Core\Entity\EntityInterface;
 
 /**
- * Tests the edit entity access controller.
- *
- * @group Drupal
- * @group QuickEdit
- *
- * @see \Drupal\quickedit\Access\EditEntityAccessCheck
+ * @coversDefaultClass \Drupal\quickedit\Access\EditEntityAccessCheck
+ * @group quickedit
  */
 class EditEntityAccessCheckTest extends UnitTestCase {
 
@@ -44,14 +40,6 @@ class EditEntityAccessCheckTest extends UnitTestCase {
    */
   protected $entityStorage;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Edit entity access check test',
-      'description' => 'Unit test of edit entity access check.',
-      'group' => 'Quick Edit'
-    );
-  }
-
   protected function setUp() {
     $this->entityManager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
 
diff --git a/core/modules/quickedit/tests/src/Access/EditEntityFieldAccessCheckTest.php b/core/modules/quickedit/tests/src/Access/EditEntityFieldAccessCheckTest.php
index d02c092..f30630d 100644
--- a/core/modules/quickedit/tests/src/Access/EditEntityFieldAccessCheckTest.php
+++ b/core/modules/quickedit/tests/src/Access/EditEntityFieldAccessCheckTest.php
@@ -16,12 +16,8 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Tests the edit entity field access controller.
- *
- * @group Drupal
- * @group QuickEdit
- *
- * @see \Drupal\quickedit\Access\EditEntityFieldAccessCheck
+ * @coversDefaultClass \Drupal\quickedit\Access\EditEntityFieldAccessCheck
+ * @group quickedit
  */
 class EditEntityFieldAccessCheckTest extends UnitTestCase {
 
@@ -46,14 +42,6 @@ class EditEntityFieldAccessCheckTest extends UnitTestCase {
    */
   protected $entityStorage;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Edit entity field access check test',
-      'description' => 'Unit test of edit entity field access check.',
-      'group' => 'Quick Edit'
-    );
-  }
-
   protected function setUp() {
     $this->entityManager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
 
diff --git a/core/modules/rdf/src/Tests/CommentAttributesTest.php b/core/modules/rdf/src/Tests/CommentAttributesTest.php
index d58e44b..60aedbb 100644
--- a/core/modules/rdf/src/Tests/CommentAttributesTest.php
+++ b/core/modules/rdf/src/Tests/CommentAttributesTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the RDFa markup of comments.
+ *
+ * @group rdf
  */
 class CommentAttributesTest extends CommentTestBase {
 
@@ -22,14 +24,6 @@ class CommentAttributesTest extends CommentTestBase {
    */
   public static $modules = array('views', 'node', 'comment', 'rdf');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'RDFa markup for comments',
-      'description' => 'Tests the RDFa markup of comments.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/CrudTest.php b/core/modules/rdf/src/Tests/CrudTest.php
index 26f793d..772ec4f 100644
--- a/core/modules/rdf/src/Tests/CrudTest.php
+++ b/core/modules/rdf/src/Tests/CrudTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the RDF mapping CRUD functions.
+ *
+ * @group rdf
  */
 class CrudTest extends DrupalUnitTestBase {
 
@@ -21,14 +23,6 @@ class CrudTest extends DrupalUnitTestBase {
    */
   public static $modules = array('entity_test', 'rdf', 'system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'RDF mapping CRUD functions',
-      'description' => 'Test the RDF mapping CRUD functions.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->prefix = 'rdf.mapping';
diff --git a/core/modules/rdf/src/Tests/Field/DateTimeFieldRdfaTest.php b/core/modules/rdf/src/Tests/Field/DateTimeFieldRdfaTest.php
index 2c7b3b2..391a56d 100644
--- a/core/modules/rdf/src/Tests/Field/DateTimeFieldRdfaTest.php
+++ b/core/modules/rdf/src/Tests/Field/DateTimeFieldRdfaTest.php
@@ -9,7 +9,9 @@
 use Drupal\rdf\Tests\Field\FieldRdfaTestBase;
 
 /**
- * Tests the placement of RDFa in text field formatters.
+ * Tests RDFa output by datetime field formatters.
+ *
+ * @group rdf
  */
 class DateTimeFieldRdfaTest extends FieldRdfaTestBase {
 
@@ -30,14 +32,6 @@ class DateTimeFieldRdfaTest extends FieldRdfaTestBase {
   */
   public static $modules = array('datetime');
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Field formatter: datetime',
-      'description'  => 'Tests RDFa output by datetime field formatters.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/Field/EmailFieldRdfaTest.php b/core/modules/rdf/src/Tests/Field/EmailFieldRdfaTest.php
index fa9775f..7eb8d33 100644
--- a/core/modules/rdf/src/Tests/Field/EmailFieldRdfaTest.php
+++ b/core/modules/rdf/src/Tests/Field/EmailFieldRdfaTest.php
@@ -9,7 +9,9 @@
 use Drupal\rdf\Tests\Field\FieldRdfaTestBase;
 
 /**
- * Tests the placement of RDFa in email field formatters.
+ * Tests RDFa output by email field formatters.
+ *
+ * @group rdf
  */
 class EmailFieldRdfaTest extends FieldRdfaTestBase {
 
@@ -23,14 +25,6 @@ class EmailFieldRdfaTest extends FieldRdfaTestBase {
    */
   public static $modules = array('email', 'text');
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Field formatter: email',
-      'description'  => 'Tests RDFa output by email field formatters.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/Field/FieldRdfaDatatypeCallbackTest.php b/core/modules/rdf/src/Tests/Field/FieldRdfaDatatypeCallbackTest.php
index b6e6413..7d62d0e 100644
--- a/core/modules/rdf/src/Tests/Field/FieldRdfaDatatypeCallbackTest.php
+++ b/core/modules/rdf/src/Tests/Field/FieldRdfaDatatypeCallbackTest.php
@@ -8,6 +8,8 @@
 
 /**
  * Tests the RDFa output of a text field formatter with a datatype callback.
+ *
+ * @group rdf
  */
 class FieldRdfaDatatypeCallbackTest extends FieldRdfaTestBase {
 
@@ -21,14 +23,6 @@ class FieldRdfaDatatypeCallbackTest extends FieldRdfaTestBase {
    */
   public static $modules = array('text', 'filter');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field formatter: datatype callback',
-      'description' => 'Tests RDFa output for field formatters with a datatype callback.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/Field/TaxonomyTermReferenceRdfaTest.php b/core/modules/rdf/src/Tests/Field/TaxonomyTermReferenceRdfaTest.php
index ed49cfc..37e2709 100644
--- a/core/modules/rdf/src/Tests/Field/TaxonomyTermReferenceRdfaTest.php
+++ b/core/modules/rdf/src/Tests/Field/TaxonomyTermReferenceRdfaTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the RDFa output of the taxonomy term reference field formatter.
+ *
+ * @group rdf
  */
 class TaxonomyTermReferenceRdfaTest extends FieldRdfaTestBase {
 
@@ -40,14 +42,6 @@ class TaxonomyTermReferenceRdfaTest extends FieldRdfaTestBase {
    */
   public static $modules = array('taxonomy', 'options', 'text', 'filter');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field formatter: taxonomy term reference',
-      'description' => 'Tests RDFa output by taxonomy term reference field formatters.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php b/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php
index 32d6825..b1446a5 100644
--- a/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php
+++ b/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php
@@ -7,7 +7,9 @@
 namespace Drupal\rdf\Tests\Field;
 
 /**
- * Tests the placement of RDFa in telephone field formatters.
+ * Tests RDFa output by telephone field formatters.
+ *
+ * @group rdf
  */
 class TelephoneFieldRdfaTest extends FieldRdfaTestBase {
 
@@ -28,14 +30,6 @@ class TelephoneFieldRdfaTest extends FieldRdfaTestBase {
    */
   public static $modules = array('telephone', 'text');
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Field formatter: telephone',
-      'description'  => 'Tests RDFa output by telephone field formatters.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/Field/TextFieldRdfaTest.php b/core/modules/rdf/src/Tests/Field/TextFieldRdfaTest.php
index 5cbf841..6fdbdaf 100644
--- a/core/modules/rdf/src/Tests/Field/TextFieldRdfaTest.php
+++ b/core/modules/rdf/src/Tests/Field/TextFieldRdfaTest.php
@@ -9,7 +9,9 @@
 use Drupal\rdf\Tests\Field\FieldRdfaTestBase;
 
 /**
- * Tests the placement of RDFa in text field formatters.
+ * Tests RDFa output by text field formatters.
+ *
+ * @group rdf
  */
 class TextFieldRdfaTest extends FieldRdfaTestBase {
 
@@ -37,14 +39,6 @@ class TextFieldRdfaTest extends FieldRdfaTestBase {
    */
   public static $modules = array('text', 'filter');
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Field formatter: text',
-      'description'  => 'Tests RDFa output by text field formatters.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/FileFieldAttributesTest.php b/core/modules/rdf/src/Tests/FileFieldAttributesTest.php
index 2381395..3253fff 100644
--- a/core/modules/rdf/src/Tests/FileFieldAttributesTest.php
+++ b/core/modules/rdf/src/Tests/FileFieldAttributesTest.php
@@ -10,7 +10,9 @@
 use Drupal\file\Tests\FileFieldTestBase;
 
 /**
- * Tests RDFa markup generation for File fields.
+ * Tests the RDFa markup of filefields.
+ *
+ * @group rdf
  */
 class FileFieldAttributesTest extends FileFieldTestBase {
 
@@ -42,14 +44,6 @@ class FileFieldAttributesTest extends FileFieldTestBase {
    */
   protected $node;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'RDFa markup for files',
-      'description' => 'Tests the RDFa markup of filefields.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->fieldName = strtolower($this->randomName());
diff --git a/core/modules/rdf/src/Tests/GetNamespacesTest.php b/core/modules/rdf/src/Tests/GetNamespacesTest.php
index 0457ee4..da09739 100644
--- a/core/modules/rdf/src/Tests/GetNamespacesTest.php
+++ b/core/modules/rdf/src/Tests/GetNamespacesTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for RDF namespaces XML serialization.
+ * Confirm that the serialization of RDF namespaces in present in the HTML
+ * markup.
+ *
+ * @group rdf
  */
 class GetNamespacesTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class GetNamespacesTest extends WebTestBase {
    */
   public static $modules = array('rdf', 'rdf_test_namespaces');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'RDF namespaces serialization test',
-      'description' => 'Confirm that the serialization of RDF namespaces in present in the HTML markup.',
-      'group' => 'RDF',
-    );
-  }
-
   /**
    * Tests RDF namespaces.
    */
diff --git a/core/modules/rdf/src/Tests/GetRdfNamespacesTest.php b/core/modules/rdf/src/Tests/GetRdfNamespacesTest.php
index db9ef14..bf38c6b 100644
--- a/core/modules/rdf/src/Tests/GetRdfNamespacesTest.php
+++ b/core/modules/rdf/src/Tests/GetRdfNamespacesTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for RDF namespaces declaration with hook_rdf_namespaces().
+ * Tests hook_rdf_namespaces().
+ *
+ * @group rdf
  */
 class GetRdfNamespacesTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class GetRdfNamespacesTest extends WebTestBase {
    */
   public static $modules = array('rdf', 'rdf_test_namespaces');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'RDF namespaces',
-      'description' => 'Test hook_rdf_namespaces().',
-      'group' => 'RDF',
-    );
-  }
-
   /**
    * Tests getting RDF namespaces.
    */
diff --git a/core/modules/rdf/src/Tests/ImageFieldAttributesTest.php b/core/modules/rdf/src/Tests/ImageFieldAttributesTest.php
index 39e52b7..300fac5 100644
--- a/core/modules/rdf/src/Tests/ImageFieldAttributesTest.php
+++ b/core/modules/rdf/src/Tests/ImageFieldAttributesTest.php
@@ -10,7 +10,9 @@
 use Drupal\image\Tests\ImageFieldTestBase;
 
 /**
- * Tests RDFa markup generation for image fields.
+ * Tests the RDFa markup of imagefields.
+ *
+ * @group rdf
  */
 class ImageFieldAttributesTest extends ImageFieldTestBase {
 
@@ -42,14 +44,6 @@ class ImageFieldAttributesTest extends ImageFieldTestBase {
    */
   protected $node;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'RDFa markup for imagefield',
-      'description' => 'Tests the RDFa markup of imagefields.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/NodeAttributesTest.php b/core/modules/rdf/src/Tests/NodeAttributesTest.php
index 76e1af6..8b2badf 100644
--- a/core/modules/rdf/src/Tests/NodeAttributesTest.php
+++ b/core/modules/rdf/src/Tests/NodeAttributesTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the RDFa markup of Nodes.
+ *
+ * @group rdf
  */
 class NodeAttributesTest extends NodeTestBase {
 
@@ -21,14 +23,6 @@ class NodeAttributesTest extends NodeTestBase {
    */
   public static $modules = array('rdf');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'RDFa markup for nodes',
-      'description' => 'Tests the RDFa markup of nodes.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/RdfaAttributesTest.php b/core/modules/rdf/src/Tests/RdfaAttributesTest.php
index 726e78b..3da1c65 100644
--- a/core/modules/rdf/src/Tests/RdfaAttributesTest.php
+++ b/core/modules/rdf/src/Tests/RdfaAttributesTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests RDFa attribute generation.
+ * Tests RDFa attribute generation from RDF mapping.
+ *
+ * @group rdf
  */
 class RdfaAttributesTest extends DrupalUnitTestBase {
 
@@ -21,14 +23,6 @@ class RdfaAttributesTest extends DrupalUnitTestBase {
    */
   public static $modules = array('rdf');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'RDFa attributes',
-      'description' => 'Test RDFa attribute generation from RDF mapping.',
-      'group' => 'RDF',
-    );
-  }
-
   /**
    * Test attribute creation for mappings which use 'property'.
    */
diff --git a/core/modules/rdf/src/Tests/StandardProfileTest.php b/core/modules/rdf/src/Tests/StandardProfileTest.php
index 5919d54..be714fa 100644
--- a/core/modules/rdf/src/Tests/StandardProfileTest.php
+++ b/core/modules/rdf/src/Tests/StandardProfileTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests that the standard profile mappings are set and exposed as expected.
+ * Tests the RDF mappings and RDFa markup of the standard profile.
+ *
+ * @group rdf
  */
 class StandardProfileTest extends WebTestBase {
 
@@ -99,14 +101,6 @@ class StandardProfileTest extends WebTestBase {
    */
   protected $commenterUri;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Standard profile RDF',
-      'description' => 'Tests the RDF mappings and RDFa markup of the standard profile.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/TaxonomyAttributesTest.php b/core/modules/rdf/src/Tests/TaxonomyAttributesTest.php
index 1172fbc..8d3c43f 100644
--- a/core/modules/rdf/src/Tests/TaxonomyAttributesTest.php
+++ b/core/modules/rdf/src/Tests/TaxonomyAttributesTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the RDFa markup of Taxonomy terms.
+ *
+ * @group rdf
  */
 class TaxonomyAttributesTest extends TaxonomyTestBase {
 
@@ -21,14 +23,6 @@ class TaxonomyAttributesTest extends TaxonomyTestBase {
    */
   public static $modules = array('rdf');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'RDFa markup for taxonomy terms',
-      'description' => 'Tests the RDFa markup of taxonomy terms.',
-      'group' => 'RDF',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/TaxonomyTermFieldAttributesTest.php b/core/modules/rdf/src/Tests/TaxonomyTermFieldAttributesTest.php
index 2c84d0f..70fcf1b 100644
--- a/core/modules/rdf/src/Tests/TaxonomyTermFieldAttributesTest.php
+++ b/core/modules/rdf/src/Tests/TaxonomyTermFieldAttributesTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests RDFa markup generation for taxonomy term fields.
+ *
+ * @group rdf
  */
 class TaxonomyTermFieldAttributesTest extends TaxonomyTestBase {
 
@@ -36,14 +38,6 @@ class TaxonomyTermFieldAttributesTest extends TaxonomyTestBase {
    */
   protected $vocabulary;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'RDFa markup for taxonomy term fields',
-      'description' => 'Tests the RDFa markup of taxonomy term fields.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rdf/src/Tests/UserAttributesTest.php b/core/modules/rdf/src/Tests/UserAttributesTest.php
index 847d893..a6d11d3 100644
--- a/core/modules/rdf/src/Tests/UserAttributesTest.php
+++ b/core/modules/rdf/src/Tests/UserAttributesTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the RDFa markup of Users.
+ *
+ * @group rdf
  */
 class UserAttributesTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class UserAttributesTest extends WebTestBase {
    */
   public static $modules = array('rdf', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'RDFa markup for users',
-      'description' => 'Tests the RDFa markup of users.',
-      'group' => 'RDF',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     rdf_get_mapping('user', 'user')
diff --git a/core/modules/rdf/tests/src/RdfMappingConfigEntityUnitTest.php b/core/modules/rdf/tests/src/RdfMappingConfigEntityUnitTest.php
index 6c2793d..c1b63db 100644
--- a/core/modules/rdf/tests/src/RdfMappingConfigEntityUnitTest.php
+++ b/core/modules/rdf/tests/src/RdfMappingConfigEntityUnitTest.php
@@ -13,9 +13,7 @@
 
 /**
  * @coversDefaultClass \Drupal\rdf\Entity\RdfMapping
- *
- * @group Drupal
- * @group Config
+ * @group rdf
  */
 class RdfMappingConfigEntityUnitTest extends UnitTestCase {
 
@@ -50,17 +48,6 @@ class RdfMappingConfigEntityUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\field\Entity\RdfMapping unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityTypeId = $this->randomName();
 
diff --git a/core/modules/responsive_image/src/Tests/ResponsiveImageAdminUITest.php b/core/modules/responsive_image/src/Tests/ResponsiveImageAdminUITest.php
index b752a16..ca65b1d 100644
--- a/core/modules/responsive_image/src/Tests/ResponsiveImageAdminUITest.php
+++ b/core/modules/responsive_image/src/Tests/ResponsiveImageAdminUITest.php
@@ -11,7 +11,9 @@
 use Drupal\breakpoint\Entity\Breakpoint;
 
 /**
- * Tests for breakpoint sets admin interface.
+ * Thoroughly test the administrative interface of the Responsive Image module.
+ *
+ * @group responsive_image
  */
 class ResponsiveImageAdminUITest extends WebTestBase {
 
@@ -30,17 +32,6 @@ class ResponsiveImageAdminUITest extends WebTestBase {
   public static $modules = array('responsive_image');
 
   /**
-   * Drupal\simpletest\WebTestBase\getInfo().
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Responsive Image administration functionality',
-      'description' => 'Thoroughly test the administrative interface of the Responsive Image module.',
-      'group' => 'Responsive Image',
-    );
-  }
-
-  /**
    * Drupal\simpletest\WebTestBase\setUp().
    */
   public function setUp() {
diff --git a/core/modules/responsive_image/src/Tests/ResponsiveImageFieldDisplayTest.php b/core/modules/responsive_image/src/Tests/ResponsiveImageFieldDisplayTest.php
index 952a0a6..d6a09bc 100644
--- a/core/modules/responsive_image/src/Tests/ResponsiveImageFieldDisplayTest.php
+++ b/core/modules/responsive_image/src/Tests/ResponsiveImageFieldDisplayTest.php
@@ -11,7 +11,9 @@
 use Drupal\image\Tests\ImageFieldTestBase;
 
 /**
- * Test class to check that formatters and display settings are working.
+ * Tests responsive image display formatter.
+ *
+ * @group responsive_image
  */
 class ResponsiveImageFieldDisplayTest extends ImageFieldTestBase {
 
@@ -25,17 +27,6 @@ class ResponsiveImageFieldDisplayTest extends ImageFieldTestBase {
   public static $modules = array('field_ui', 'responsive_image');
 
   /**
-   * Drupal\simpletest\WebTestBase\getInfo().
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Responsive Image field display tests',
-      'description' => 'Test responsive image display formatter.',
-      'group' => 'Responsive Image',
-    );
-  }
-
-  /**
    * Drupal\simpletest\WebTestBase\setUp().
    */
   public function setUp() {
diff --git a/core/modules/responsive_image/tests/src/ResponsiveImageMappingEntityTest.php b/core/modules/responsive_image/tests/src/ResponsiveImageMappingEntityTest.php
index 8565c3b..ff7abd1 100644
--- a/core/modules/responsive_image/tests/src/ResponsiveImageMappingEntityTest.php
+++ b/core/modules/responsive_image/tests/src/ResponsiveImageMappingEntityTest.php
@@ -13,9 +13,7 @@
 
 /**
  * @coversDefaultClass \Drupal\responsive_image\Entity\ResponsiveImageMapping
- *
- * @group Drupal
- * @group Responsive_image
+ * @group responsive_image
  */
 class ResponsiveImageMappingEntityTest extends UnitTestCase {
 
@@ -71,17 +69,6 @@ class ResponsiveImageMappingEntityTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\responsive_image\Entity\ResponsiveImageMapping unit test',
-      'group' => 'Responsive Image',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityTypeId = $this->randomName();
     $this->provider = $this->randomName();
diff --git a/core/modules/rest/src/Tests/AuthTest.php b/core/modules/rest/src/Tests/AuthTest.php
index a1ae295..b53beaf 100644
--- a/core/modules/rest/src/Tests/AuthTest.php
+++ b/core/modules/rest/src/Tests/AuthTest.php
@@ -10,7 +10,9 @@
 use Drupal\rest\Tests\RESTTestBase;
 
 /**
- * Tests authenticated operations on test entities.
+ * Tests authentication provider restrictions.
+ *
+ * @group rest
  */
 class AuthTest extends RESTTestBase {
 
@@ -22,17 +24,6 @@ class AuthTest extends RESTTestBase {
   public static $modules = array('basic_auth', 'hal', 'rest', 'entity_test', 'comment');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Resource authentication',
-      'description' => 'Tests authentication provider restrictions.',
-      'group' => 'REST',
-    );
-  }
-
-  /**
    * Tests reading from an authenticated resource.
    */
   public function testRead() {
diff --git a/core/modules/rest/src/Tests/CreateTest.php b/core/modules/rest/src/Tests/CreateTest.php
index 3ac369a..5476dbf 100644
--- a/core/modules/rest/src/Tests/CreateTest.php
+++ b/core/modules/rest/src/Tests/CreateTest.php
@@ -10,7 +10,9 @@
 use Drupal\Component\Serialization\Json;
 
 /**
- * Tests resource creation on user, node and test entities.
+ * Tests the creation of resources.
+ *
+ * @group rest
  */
 class CreateTest extends RESTTestBase {
 
@@ -21,14 +23,6 @@ class CreateTest extends RESTTestBase {
    */
   public static $modules = array('hal', 'rest', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Create resource',
-      'description' => 'Tests the creation of resources.',
-      'group' => 'REST',
-    );
-  }
-
   /**
    * Tests several valid and invalid create requests on all entity types.
    */
diff --git a/core/modules/rest/src/Tests/CsrfTest.php b/core/modules/rest/src/Tests/CsrfTest.php
index f1a6aa7..9d526c9 100644
--- a/core/modules/rest/src/Tests/CsrfTest.php
+++ b/core/modules/rest/src/Tests/CsrfTest.php
@@ -6,7 +6,9 @@
 namespace Drupal\rest\Tests;
 
 /**
- * Tests the CSRF access check.
+ * Tests the CSRF protection.
+ *
+ * @group rest
  */
 class CsrfTest extends RESTTestBase {
 
@@ -34,17 +36,6 @@ class CsrfTest extends RESTTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'CSRF access',
-      'description' => 'Tests the CSRF protection.',
-      'group' => 'REST',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rest/src/Tests/DBLogTest.php b/core/modules/rest/src/Tests/DBLogTest.php
index ca3806e..5d4641e 100644
--- a/core/modules/rest/src/Tests/DBLogTest.php
+++ b/core/modules/rest/src/Tests/DBLogTest.php
@@ -11,7 +11,9 @@
 use Drupal\rest\Tests\RESTTestBase;
 
 /**
- * Tests the Watchdog resource to retrieve log messages.
+ * Tests the watchdog database log resource.
+ *
+ * @group rest
  */
 class DBLogTest extends RESTTestBase {
 
@@ -22,14 +24,6 @@ class DBLogTest extends RESTTestBase {
    */
   public static $modules = array('hal', 'rest', 'dblog');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'DB Log resource',
-      'description' => 'Tests the watchdog database log resource.',
-      'group' => 'REST',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     // Enable REST API for the watchdog resource.
diff --git a/core/modules/rest/src/Tests/DeleteTest.php b/core/modules/rest/src/Tests/DeleteTest.php
index 799862e..402325c 100644
--- a/core/modules/rest/src/Tests/DeleteTest.php
+++ b/core/modules/rest/src/Tests/DeleteTest.php
@@ -10,7 +10,9 @@
 use Drupal\rest\Tests\RESTTestBase;
 
 /**
- * Tests resource deletion on user, node and test entities.
+ * Tests the deletion of resources.
+ *
+ * @group rest
  */
 class DeleteTest extends RESTTestBase {
 
@@ -21,14 +23,6 @@ class DeleteTest extends RESTTestBase {
    */
   public static $modules = array('hal', 'rest', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Delete resource',
-      'description' => 'Tests the deletion of resources.',
-      'group' => 'REST',
-    );
-  }
-
   /**
    * Tests several valid and invalid delete requests on all entity types.
    */
diff --git a/core/modules/rest/src/Tests/NodeTest.php b/core/modules/rest/src/Tests/NodeTest.php
index a85774b..4cd2bc9 100644
--- a/core/modules/rest/src/Tests/NodeTest.php
+++ b/core/modules/rest/src/Tests/NodeTest.php
@@ -10,7 +10,9 @@
 use Drupal\rest\Tests\RESTTestBase;
 
 /**
- * Tests resource read operations on test entities, nodes and users.
+ * Tests special cases for node entities.
+ *
+ * @group rest
  */
 class NodeTest extends RESTTestBase {
 
@@ -23,14 +25,6 @@ class NodeTest extends RESTTestBase {
    */
   public static $modules = array('hal', 'rest', 'comment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Node resource',
-      'description' => 'Test special cases for node entities.',
-      'group' => 'REST',
-    );
-  }
-
   /**
    * Enables node specific REST API configuration and authentication.
    *
diff --git a/core/modules/rest/src/Tests/ReadTest.php b/core/modules/rest/src/Tests/ReadTest.php
index 6777cf5..dda6bc8 100644
--- a/core/modules/rest/src/Tests/ReadTest.php
+++ b/core/modules/rest/src/Tests/ReadTest.php
@@ -11,7 +11,9 @@
 use Drupal\rest\Tests\RESTTestBase;
 
 /**
- * Tests resource read operations on test entities, nodes and users.
+ * Tests the retrieval of resources.
+ *
+ * @group rest
  */
 class ReadTest extends RESTTestBase {
 
@@ -22,14 +24,6 @@ class ReadTest extends RESTTestBase {
    */
   public static $modules = array('hal', 'rest', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Read resource',
-      'description' => 'Tests the retrieval of resources.',
-      'group' => 'REST',
-    );
-  }
-
   /**
    * Tests several valid and invalid read requests on all entity types.
    */
diff --git a/core/modules/rest/src/Tests/ResourceTest.php b/core/modules/rest/src/Tests/ResourceTest.php
index 92d2074..729af5c 100644
--- a/core/modules/rest/src/Tests/ResourceTest.php
+++ b/core/modules/rest/src/Tests/ResourceTest.php
@@ -10,7 +10,9 @@
 use Drupal\rest\Tests\RESTTestBase;
 
 /**
- * Tests the REST resource structure.
+ * Tests the structure of a REST resource.
+ *
+ * @group rest
  */
 class ResourceTest extends RESTTestBase {
 
@@ -24,17 +26,6 @@ class ResourceTest extends RESTTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Resource structure',
-      'description' => 'Tests the structure of a REST resource',
-      'group' => 'REST',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $this->config = \Drupal::config('rest.settings');
diff --git a/core/modules/rest/src/Tests/UpdateTest.php b/core/modules/rest/src/Tests/UpdateTest.php
index 7afedfa..e5a0193 100644
--- a/core/modules/rest/src/Tests/UpdateTest.php
+++ b/core/modules/rest/src/Tests/UpdateTest.php
@@ -11,7 +11,9 @@
 use Drupal\rest\Tests\RESTTestBase;
 
 /**
- * Tests resource updates on test entities.
+ * Tests the update of resources.
+ *
+ * @group rest
  */
 class UpdateTest extends RESTTestBase {
 
@@ -22,14 +24,6 @@ class UpdateTest extends RESTTestBase {
    */
   public static $modules = array('hal', 'rest', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update resource',
-      'description' => 'Tests the update of resources.',
-      'group' => 'REST',
-    );
-  }
-
   /**
    * Tests several valid and invalid partial update requests on test entities.
    */
diff --git a/core/modules/rest/src/Tests/Views/StyleSerializerTest.php b/core/modules/rest/src/Tests/Views/StyleSerializerTest.php
index e2ff66e..fa2e954 100644
--- a/core/modules/rest/src/Tests/Views/StyleSerializerTest.php
+++ b/core/modules/rest/src/Tests/Views/StyleSerializerTest.php
@@ -15,6 +15,7 @@
 /**
  * Tests the serializer style plugin.
  *
+ * @group rest
  * @see \Drupal\rest\Plugin\views\display\RestExport
  * @see \Drupal\rest\Plugin\views\style\Serializer
  * @see \Drupal\rest\Plugin\views\row\DataEntityRow
@@ -41,14 +42,6 @@ class StyleSerializerTest extends PluginTestBase {
    */
   protected $adminUser;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Style: Serializer plugin',
-      'description' => 'Tests the serializer style plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/rest/tests/src/CollectRoutesTest.php b/core/modules/rest/tests/src/CollectRoutesTest.php
index f511192..9baf9d1 100644
--- a/core/modules/rest/tests/src/CollectRoutesTest.php
+++ b/core/modules/rest/tests/src/CollectRoutesTest.php
@@ -14,7 +14,9 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Defines tests for the collectRoutes() method.
+ * Tests the REST export view plugin.
+ *
+ * @group rest
  */
 class CollectRoutesTest extends UnitTestCase {
 
@@ -30,14 +32,6 @@ class CollectRoutesTest extends UnitTestCase {
    */
   protected $routes;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'routes: REST export plugin',
-      'description' => 'Tests the REST export view plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/search/src/Tests/SearchAdvancedSearchFormTest.php b/core/modules/search/src/Tests/SearchAdvancedSearchFormTest.php
index fc6ce6a..5a55cee 100644
--- a/core/modules/search/src/Tests/SearchAdvancedSearchFormTest.php
+++ b/core/modules/search/src/Tests/SearchAdvancedSearchFormTest.php
@@ -9,18 +9,12 @@
 
 /**
  * Indexes content and tests the advanced search form.
+ *
+ * @group search
  */
 class SearchAdvancedSearchFormTest extends SearchTestBase {
   protected $node;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Advanced search form',
-      'description' => 'Indexes content and tests the advanced search form.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Create and login user.
diff --git a/core/modules/search/src/Tests/SearchBlockTest.php b/core/modules/search/src/Tests/SearchBlockTest.php
index 311f69a..d700df8 100644
--- a/core/modules/search/src/Tests/SearchBlockTest.php
+++ b/core/modules/search/src/Tests/SearchBlockTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\search\Tests;
 
 /**
- * Tests the rendering of the search block.
+ * Tests if the search form block is available.
+ *
+ * @group search
  */
 class SearchBlockTest extends SearchTestBase {
 
@@ -19,14 +21,6 @@ class SearchBlockTest extends SearchTestBase {
    */
   public static $modules = array('block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Block availability',
-      'description' => 'Check if the search form block is available.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchCommentCountToggleTest.php b/core/modules/search/src/Tests/SearchCommentCountToggleTest.php
index 64c1171..4fdebaa 100644
--- a/core/modules/search/src/Tests/SearchCommentCountToggleTest.php
+++ b/core/modules/search/src/Tests/SearchCommentCountToggleTest.php
@@ -10,7 +10,7 @@
 use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface;
 
 /**
- * Tests that comment count display toggles properly on comment status of node
+ * Tests that comment count display toggles properly on comment status of node.
  *
  * Issue 537278
  *
@@ -18,6 +18,8 @@
  * - Nodes with comment status set to Closed should show comment counts
  *     only when there are comments
  * - Nodes with comment status set to Hidden should never show comment counts
+ *
+ * @group search
  */
 class SearchCommentCountToggleTest extends SearchTestBase {
 
@@ -31,14 +33,6 @@ class SearchCommentCountToggleTest extends SearchTestBase {
   protected $searching_user;
   protected $searchable_nodes;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment count toggle',
-      'description' => 'Verify that comment count display toggles properly on comment status of node.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchCommentTest.php b/core/modules/search/src/Tests/SearchCommentTest.php
index c825d2a..a918910 100644
--- a/core/modules/search/src/Tests/SearchCommentTest.php
+++ b/core/modules/search/src/Tests/SearchCommentTest.php
@@ -12,7 +12,9 @@
 use Drupal\field\Entity\FieldInstanceConfig;
 
 /**
- * Test integration searching comments.
+ * Tests integration searching comments.
+ *
+ * @group search
  */
 class SearchCommentTest extends SearchTestBase {
 
@@ -25,14 +27,6 @@ class SearchCommentTest extends SearchTestBase {
 
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Comment Search tests',
-      'description' => 'Test integration searching comments.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php b/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php
index 0c7f541..6e57d95 100644
--- a/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php
+++ b/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\search\Tests;
 
 /**
- * Test config page.
+ * Verify the search config settings form.
+ *
+ * @group search
  */
 class SearchConfigSettingsFormTest extends SearchTestBase {
 
@@ -33,14 +35,6 @@ class SearchConfigSettingsFormTest extends SearchTestBase {
    */
   public $search_node;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Config settings form',
-      'description' => 'Verify the search config settings form.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchEmbedFormTest.php b/core/modules/search/src/Tests/SearchEmbedFormTest.php
index 985eae1..9c3441a 100644
--- a/core/modules/search/src/Tests/SearchEmbedFormTest.php
+++ b/core/modules/search/src/Tests/SearchEmbedFormTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\search\Tests;
 
 /**
- * Tests that we can embed a form in search results and submit it.
+ * Verifies that a form embedded in search results works.
+ *
+ * @group search
  */
 class SearchEmbedFormTest extends SearchTestBase {
 
@@ -29,14 +31,6 @@ class SearchEmbedFormTest extends SearchTestBase {
    */
   public $submit_count = 0;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Embedded forms',
-      'description' => 'Verifies that a form embedded in search results works',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchExactTest.php b/core/modules/search/src/Tests/SearchExactTest.php
index 12d1b12..60855bb 100644
--- a/core/modules/search/src/Tests/SearchExactTest.php
+++ b/core/modules/search/src/Tests/SearchExactTest.php
@@ -9,16 +9,10 @@
 
 /**
  * Tests that searching for a phrase gets the correct page count.
+ *
+ * @group search
  */
 class SearchExactTest extends SearchTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Search engine phrase queries',
-      'description' => 'Tests that searching for a phrase gets the correct page count.',
-      'group' => 'Search',
-    );
-  }
-
   /**
    * Tests that the correct number of pager links are found for both keywords and phrases.
    */
diff --git a/core/modules/search/src/Tests/SearchExcerptTest.php b/core/modules/search/src/Tests/SearchExcerptTest.php
index ff7eaeb..257b9b8 100644
--- a/core/modules/search/src/Tests/SearchExcerptTest.php
+++ b/core/modules/search/src/Tests/SearchExcerptTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the search_excerpt() function.
+ *
+ * @group search
  */
 class SearchExcerptTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class SearchExcerptTest extends WebTestBase {
    */
   public static $modules = array('search', 'search_langcode_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search excerpt extraction',
-      'description' => 'Tests that the search_excerpt() function works.',
-      'group' => 'Search',
-    );
-  }
-
   /**
    * Tests search_excerpt() with several simulated search keywords.
    *
diff --git a/core/modules/search/src/Tests/SearchKeywordsConditionsTest.php b/core/modules/search/src/Tests/SearchKeywordsConditionsTest.php
index ea15f9e..d1217cf 100644
--- a/core/modules/search/src/Tests/SearchKeywordsConditionsTest.php
+++ b/core/modules/search/src/Tests/SearchKeywordsConditionsTest.php
@@ -8,11 +8,13 @@
 namespace Drupal\search\Tests;
 
 /**
- * Tests the searching without keywords.
+ * Verify the search without keywords set and extra conditions.
  *
  * Verifies that a plugin can override the isSearchExecutable() method to allow
  * searching without keywords set and that GET query parameters are made
  * available to plugins during search execution.
+ *
+ * @group search
  */
 class SearchKeywordsConditionsTest extends SearchTestBase {
 
@@ -23,14 +25,6 @@ class SearchKeywordsConditionsTest extends SearchTestBase {
    */
   public static $modules = array('comment', 'search_extra_type');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Keywords and conditions',
-      'description' => 'Verify the search without keywords set and extra conditions.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchLanguageTest.php b/core/modules/search/src/Tests/SearchLanguageTest.php
index ffcf33d..afa774b 100644
--- a/core/modules/search/src/Tests/SearchLanguageTest.php
+++ b/core/modules/search/src/Tests/SearchLanguageTest.php
@@ -11,7 +11,9 @@
 use Drupal\field\Entity\FieldConfig;
 
 /**
- * Test node search with multiple languages.
+ * Tests advanced search with different languages added.
+ *
+ * @group search
  */
 class SearchLanguageTest extends SearchTestBase {
 
@@ -22,14 +24,6 @@ class SearchLanguageTest extends SearchTestBase {
    */
   public static $modules = array('language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search language selection',
-      'description' => 'Tests advanced search with different languages added.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchMatchTest.php b/core/modules/search/src/Tests/SearchMatchTest.php
index 14ea024..66ec5b1 100644
--- a/core/modules/search/src/Tests/SearchMatchTest.php
+++ b/core/modules/search/src/Tests/SearchMatchTest.php
@@ -17,16 +17,10 @@
 
 /**
  * Indexes content and queries it.
+ *
+ * @group search
  */
 class SearchMatchTest extends SearchTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Search engine queries',
-      'description' => 'Indexes content and queries it.',
-      'group' => 'Search',
-    );
-  }
-
   /**
    * Test search indexing.
    */
diff --git a/core/modules/search/src/Tests/SearchMultilingualEntityTest.php b/core/modules/search/src/Tests/SearchMultilingualEntityTest.php
index 54f21a4..af98aed 100644
--- a/core/modules/search/src/Tests/SearchMultilingualEntityTest.php
+++ b/core/modules/search/src/Tests/SearchMultilingualEntityTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests entities with multilingual fields.
+ *
+ * @group search
  */
 class SearchMultilingualEntityTest extends SearchTestBase {
 
@@ -31,14 +33,6 @@ class SearchMultilingualEntityTest extends SearchTestBase {
 
   public static $modules = array('language', 'locale', 'comment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Multilingual entities',
-      'description' => 'Tests entities with multilingual fields.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchNodePunctuationTest.php b/core/modules/search/src/Tests/SearchNodePunctuationTest.php
index 863fc19..479138e 100644
--- a/core/modules/search/src/Tests/SearchNodePunctuationTest.php
+++ b/core/modules/search/src/Tests/SearchNodePunctuationTest.php
@@ -8,20 +8,14 @@
 namespace Drupal\search\Tests;
 
 /**
- * Tests node search with punctuation.
+ * Tests search functionality with punctuation.
+ *
+ * @group search
  */
 class SearchNodePunctuationTest extends SearchTestBase {
 
   public $test_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search with punctuation',
-      'description' => 'Tests search functionality with punctuation.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     node_access_rebuild();
diff --git a/core/modules/search/src/Tests/SearchNodeUpdateAndDeletionTest.php b/core/modules/search/src/Tests/SearchNodeUpdateAndDeletionTest.php
index b03b1c8..c8e6405 100644
--- a/core/modules/search/src/Tests/SearchNodeUpdateAndDeletionTest.php
+++ b/core/modules/search/src/Tests/SearchNodeUpdateAndDeletionTest.php
@@ -7,7 +7,9 @@
 namespace Drupal\search\Tests;
 
 /**
- * Tests search index info is updated properly on node updates / deletions.
+ * Tests search index is updated properly when nodes are removed or updated.
+ *
+ * @group search
  */
 class SearchNodeUpdateAndDeletionTest extends SearchTestBase {
 
@@ -20,14 +22,6 @@ class SearchNodeUpdateAndDeletionTest extends SearchTestBase {
 
   public $test_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search index synchronization on node updating / removal',
-      'description' => 'Tests search index is updated properly when nodes are removed or updated.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchNumberMatchingTest.php b/core/modules/search/src/Tests/SearchNumberMatchingTest.php
index 65d2bfd..b63b97b 100644
--- a/core/modules/search/src/Tests/SearchNumberMatchingTest.php
+++ b/core/modules/search/src/Tests/SearchNumberMatchingTest.php
@@ -10,21 +10,15 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Tests that various number formats match each other in searching.
+ * Tests that numbers can be searched with more complex matching.
+ *
+ * @group search
  */
 class SearchNumberMatchingTest extends SearchTestBase {
   protected $test_user;
   protected $numbers;
   protected $nodes;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search number matching',
-      'description' => 'Check that numbers can be searched with more complex matching',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchNumbersTest.php b/core/modules/search/src/Tests/SearchNumbersTest.php
index 41a41ae..8b0b27f 100644
--- a/core/modules/search/src/Tests/SearchNumbersTest.php
+++ b/core/modules/search/src/Tests/SearchNumbersTest.php
@@ -10,21 +10,15 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Tests that numbers with different formats can be searched.
+ * Tests that numbers can be searched.
+ *
+ * @group search
  */
 class SearchNumbersTest extends SearchTestBase {
   protected $test_user;
   protected $numbers;
   protected $nodes;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search numbers',
-      'description' => 'Check that numbers can be searched',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchPageCacheTagsTest.php b/core/modules/search/src/Tests/SearchPageCacheTagsTest.php
index 2478e66..db92e4f 100644
--- a/core/modules/search/src/Tests/SearchPageCacheTagsTest.php
+++ b/core/modules/search/src/Tests/SearchPageCacheTagsTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests the search_page entity cache tags on the search results pages.
+ *
+ * @group search
  */
 class SearchPageCacheTagsTest extends SearchTestBase {
 
@@ -16,14 +18,6 @@ class SearchPageCacheTagsTest extends SearchTestBase {
 
   protected $searching_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search page cache tags',
-      'description' => 'Tests the presence of the SearchPage entity\'s cache tags on the search results pages.',
-      'group' => 'Search'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchPageOverrideTest.php b/core/modules/search/src/Tests/SearchPageOverrideTest.php
index 8a313f2..3855eb2 100644
--- a/core/modules/search/src/Tests/SearchPageOverrideTest.php
+++ b/core/modules/search/src/Tests/SearchPageOverrideTest.php
@@ -12,6 +12,8 @@
  *
  * Verifies that a plugin can override the buildResults() method to
  * control what the search results page looks like.
+ *
+ * @group search
  */
 class SearchPageOverrideTest extends SearchTestBase {
 
@@ -24,14 +26,6 @@ class SearchPageOverrideTest extends SearchTestBase {
 
   public $search_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search page override',
-      'description' => 'Verifies that the result page can be overridden.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchPageTextTest.php b/core/modules/search/src/Tests/SearchPageTextTest.php
index 7d65e6f..901751a 100644
--- a/core/modules/search/src/Tests/SearchPageTextTest.php
+++ b/core/modules/search/src/Tests/SearchPageTextTest.php
@@ -9,18 +9,12 @@
 
 /**
  * Tests the bike shed text on no results page, and text on the search page.
+ *
+ * @group search
  */
 class SearchPageTextTest extends SearchTestBase {
   protected $searching_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search page text',
-      'description' => 'Tests the bike shed text on the no results page, and various other text on search pages.',
-      'group' => 'Search'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchPreprocessLangcodeTest.php b/core/modules/search/src/Tests/SearchPreprocessLangcodeTest.php
index 6e9951b..bddabc6 100644
--- a/core/modules/search/src/Tests/SearchPreprocessLangcodeTest.php
+++ b/core/modules/search/src/Tests/SearchPreprocessLangcodeTest.php
@@ -8,6 +8,8 @@
 
 /**
  * Tests that the search prepocessing uses the correct language code.
+ *
+ * @group search
  */
 class SearchPreprocessLangcodeTest extends SearchTestBase {
 
@@ -18,14 +20,6 @@ class SearchPreprocessLangcodeTest extends SearchTestBase {
    */
   public static $modules = array('search_langcode_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search preprocess langcode',
-      'description' => 'Tests that the search prepocessing uses the correct language code.',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchQueryAlterTest.php b/core/modules/search/src/Tests/SearchQueryAlterTest.php
index 1e29749..b1811a2 100644
--- a/core/modules/search/src/Tests/SearchQueryAlterTest.php
+++ b/core/modules/search/src/Tests/SearchQueryAlterTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests that the node search query can be altered via the query alter hook.
+ *
+ * @group search
  */
 class SearchQueryAlterTest extends SearchTestBase {
   /**
@@ -18,14 +20,6 @@ class SearchQueryAlterTest extends SearchTestBase {
    */
   public static $modules = array('search_query_alter');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search query alter',
-      'description' => 'Tests that the node search query can be altered via the query alter hook.',
-      'group' => 'Search'
-    );
-  }
-
   /**
    * Tests that the query alter works.
    */
diff --git a/core/modules/search/src/Tests/SearchRankingTest.php b/core/modules/search/src/Tests/SearchRankingTest.php
index 48410d6..92d218c 100644
--- a/core/modules/search/src/Tests/SearchRankingTest.php
+++ b/core/modules/search/src/Tests/SearchRankingTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Indexes content and tests ranking factors.
+ *
+ * @group search
  */
 class SearchRankingTest extends SearchTestBase {
 
@@ -28,14 +30,6 @@ class SearchRankingTest extends SearchTestBase {
    */
   public static $modules = array('statistics', 'comment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search engine ranking',
-      'description' => 'Indexes content and tests ranking factors.',
-      'group' => 'Search',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchSetLocaleTest.php b/core/modules/search/src/Tests/SearchSetLocaleTest.php
index 6e58b8f..dacc181 100644
--- a/core/modules/search/src/Tests/SearchSetLocaleTest.php
+++ b/core/modules/search/src/Tests/SearchSetLocaleTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\search\Tests;
 
 /**
- * Tests searching with locale values set.
+ * Tests that search works with numeric locale settings.
+ *
+ * @group search
  */
 class SearchSetLocaleTest extends SearchTestBase {
 
@@ -26,14 +28,6 @@ class SearchSetLocaleTest extends SearchTestBase {
    */
   protected $nodeSearchPlugin;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Search with numeric locale set',
-      'description' => 'Check that search works with numeric locale settings',
-      'group' => 'Search',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/search/src/Tests/SearchSimplifyTest.php b/core/modules/search/src/Tests/SearchSimplifyTest.php
index 5b1e5d4..a850750 100644
--- a/core/modules/search/src/Tests/SearchSimplifyTest.php
+++ b/core/modules/search/src/Tests/SearchSimplifyTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\search\Tests;
 
 /**
- * Test search_simplify() on every Unicode character, and some other cases.
+ * Tests that the search_simply() function works as intended.
+ *
+ * @group search
  */
 class SearchSimplifyTest extends SearchTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Search simplify',
-      'description' => 'Check that the search_simply() function works as intended.',
-      'group' => 'Search',
-    );
-  }
-
   /**
    * Tests that all Unicode characters simplify correctly.
    */
diff --git a/core/modules/search/src/Tests/SearchTokenizerTest.php b/core/modules/search/src/Tests/SearchTokenizerTest.php
index 361cebf..360bc70 100644
--- a/core/modules/search/src/Tests/SearchTokenizerTest.php
+++ b/core/modules/search/src/Tests/SearchTokenizerTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\search\Tests;
 
 /**
- * Test the CJK tokenizer.
+ * Tests that CJK tokenizer works as intended.
+ *
+ * @group search
  */
 class SearchTokenizerTest extends SearchTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'CJK tokenizer',
-      'description' => 'Check that CJK tokenizer works as intended.',
-      'group' => 'Search',
-    );
-  }
-
   /**
    * Verifies that strings of CJK characters are tokenized.
    *
diff --git a/core/modules/search/tests/src/SearchPageRepositoryTest.php b/core/modules/search/tests/src/SearchPageRepositoryTest.php
index 334f995..fb7d179 100644
--- a/core/modules/search/tests/src/SearchPageRepositoryTest.php
+++ b/core/modules/search/tests/src/SearchPageRepositoryTest.php
@@ -12,12 +12,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the search page repository.
- *
- * @see \Drupal\search\SearchPageRepository
- *
- * @group Drupal
- * @group Search
+ * @coversDefaultClass \Drupal\search\SearchPageRepository
+ * @group search
  */
 class SearchPageRepositoryTest extends UnitTestCase {
 
@@ -52,17 +48,6 @@ class SearchPageRepositoryTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Search page repository test',
-      'description' => 'Tests methods on the \Drupal\search\SearchPageRepository class',
-      'group' => 'Search',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->query = $this->getMock('Drupal\Core\Entity\Query\QueryInterface');
 
diff --git a/core/modules/search/tests/src/SearchPluginBagTest.php b/core/modules/search/tests/src/SearchPluginBagTest.php
index c2cf9af..3ac5c42 100644
--- a/core/modules/search/tests/src/SearchPluginBagTest.php
+++ b/core/modules/search/tests/src/SearchPluginBagTest.php
@@ -11,12 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the search plugin bag.
- *
- * @see \Drupal\search\Plugin\SearchPluginBag
- *
- * @group Drupal
- * @group Search
+ * @coversDefaultClass \Drupal\search\Plugin\SearchPluginBag
+ * @group search
  */
 class SearchPluginBagTest extends UnitTestCase {
 
@@ -44,16 +40,6 @@ class SearchPluginBagTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Search plugin bag test',
-      'description' => 'Tests the \Drupal\search\Plugin\SearchPluginBag class',
-      'group' => 'Search',
-    );
-  }
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->pluginManager = $this->getMock('Drupal\Component\Plugin\PluginManagerInterface');
     $this->searchPluginBag = new SearchPluginBag($this->pluginManager, 'banana', array('id' => 'banana', 'color' => 'yellow'), 'fruit_stand');
diff --git a/core/modules/serialization/src/Tests/EntityResolverTest.php b/core/modules/serialization/src/Tests/EntityResolverTest.php
index 3f4d0dd..3162b4c 100644
--- a/core/modules/serialization/src/Tests/EntityResolverTest.php
+++ b/core/modules/serialization/src/Tests/EntityResolverTest.php
@@ -7,7 +7,9 @@
 namespace Drupal\serialization\Tests;
 
 /**
- * Tests the entity reference resolver.
+ * Tests that entities references can be resolved.
+ *
+ * @group serialization
  */
 class EntityResolverTest extends NormalizerTestBase {
 
@@ -25,14 +27,6 @@ class EntityResolverTest extends NormalizerTestBase {
    */
   protected $format = 'hal_json';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity resolver tests',
-      'description' => 'Tests that entities references can be resolved.',
-      'group' => 'Serialization',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/serialization/src/Tests/EntitySerializationTest.php b/core/modules/serialization/src/Tests/EntitySerializationTest.php
index fc01ced..8a91589 100644
--- a/core/modules/serialization/src/Tests/EntitySerializationTest.php
+++ b/core/modules/serialization/src/Tests/EntitySerializationTest.php
@@ -11,7 +11,9 @@
 use Drupal\Component\Utility\String;
 
 /**
- * Tests entity normalization and serialization of supported core formats.
+ * Tests that entities can be serialized to supported core formats.
+ *
+ * @group serialization
  */
 class EntitySerializationTest extends NormalizerTestBase {
 
@@ -43,14 +45,6 @@ class EntitySerializationTest extends NormalizerTestBase {
    */
   protected $entityClass = 'Drupal\entity_test\Entity\EntityTest';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity serialization tests',
-      'description' => 'Tests that entities can be serialized to supported core formats.',
-      'group' => 'Serialization',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/serialization/src/Tests/SerializationTest.php b/core/modules/serialization/src/Tests/SerializationTest.php
index 10c500c..772999c 100644
--- a/core/modules/serialization/src/Tests/SerializationTest.php
+++ b/core/modules/serialization/src/Tests/SerializationTest.php
@@ -11,7 +11,9 @@
 use Symfony\Component\Serializer\Exception\UnexpectedValueException;
 
 /**
- * Tests generic registration of module provided normalizers and encoders.
+ * Funtional tests for serialization system.
+ *
+ * @group serialization
  */
 class SerializationTest extends DrupalUnitTestBase {
 
@@ -29,14 +31,6 @@ class SerializationTest extends DrupalUnitTestBase {
    */
   protected $serializer;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Serialization tests',
-      'description' => 'Funtional tests for serialization system.',
-      'group' => 'Serialization',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->serializer = $this->container->get('serializer');
diff --git a/core/modules/serialization/tests/src/Encoder/JsonEncoderTest.php b/core/modules/serialization/tests/src/Encoder/JsonEncoderTest.php
index f4dcc1b..7878dc3 100644
--- a/core/modules/serialization/tests/src/Encoder/JsonEncoderTest.php
+++ b/core/modules/serialization/tests/src/Encoder/JsonEncoderTest.php
@@ -11,20 +11,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the JsonEncoder class.
- *
- * @see \Drupal\serialization\Encoder\JsonEncoder
+ * @coversDefaultClass \Drupal\serialization\Encoder\JsonEncoder
+ * @group serialization
  */
 class JsonEncoderTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'JsonEncoderTest',
-      'description' => 'Tests the JsonEncoder class.',
-      'group' => 'Serialization',
-    );
-  }
-
   /**
    * Tests the supportsEncoding() method.
    */
diff --git a/core/modules/serialization/tests/src/Encoder/XmlEncoderTest.php b/core/modules/serialization/tests/src/Encoder/XmlEncoderTest.php
index eef24b9..4af83ab 100644
--- a/core/modules/serialization/tests/src/Encoder/XmlEncoderTest.php
+++ b/core/modules/serialization/tests/src/Encoder/XmlEncoderTest.php
@@ -11,9 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the XmlEncoder class.
- *
- * @see \Drupal\serialization\Encoder\XmlEncoder
+ * @coversDefaultClass \Drupal\serialization\Encoder\XmlEncoder
+ * @group serialization
  */
 class XmlEncoderTest extends UnitTestCase {
 
@@ -36,14 +35,6 @@ class XmlEncoderTest extends UnitTestCase {
    */
   protected $testArray = array('test' => 'test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'XmlEncoderTest',
-      'description' => 'Tests the XmlEncoder class.',
-      'group' => 'Serialization',
-    );
-  }
-
   public function setUp() {
     $this->baseEncoder = $this->getMock('Symfony\Component\Serializer\Encoder\XmlEncoder');
     $this->encoder = new XmlEncoder();
diff --git a/core/modules/serialization/tests/src/EntityResolver/ChainEntityResolverTest.php b/core/modules/serialization/tests/src/EntityResolver/ChainEntityResolverTest.php
index 5deda2f..0f05311 100644
--- a/core/modules/serialization/tests/src/EntityResolver/ChainEntityResolverTest.php
+++ b/core/modules/serialization/tests/src/EntityResolver/ChainEntityResolverTest.php
@@ -11,12 +11,8 @@
 use Drupal\serialization\EntityResolver\ChainEntityResolver;
 
 /**
- * Tests the ChainEntityResolver class.
- *
- * @see \Drupal\serialization\EntityResolver\ChainEntityResolver
- *
- * @group Drupal
- * @group Serialization
+ * @coversDefaultClass \Drupal\serialization\EntityResolver\ChainEntityResolver
+ * @group serialization
  */
 class ChainEntityResolverTest extends UnitTestCase {
 
@@ -44,17 +40,6 @@ class ChainEntityResolverTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'ChainEntityResolver',
-      'description' => 'Tests the Drupal\serialization\EntityResolver\ChainEntityResolver class.',
-      'group' => 'Serialization',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->testNormalizer = $this->getMock('Symfony\Component\Serializer\Normalizer\NormalizerInterface');
     $this->testData = new \stdClass();
diff --git a/core/modules/serialization/tests/src/EntityResolver/UuidResolverTest.php b/core/modules/serialization/tests/src/EntityResolver/UuidResolverTest.php
index 9d49dce..9430cf0 100644
--- a/core/modules/serialization/tests/src/EntityResolver/UuidResolverTest.php
+++ b/core/modules/serialization/tests/src/EntityResolver/UuidResolverTest.php
@@ -11,12 +11,8 @@
 use Drupal\serialization\EntityResolver\UuidResolver;
 
 /**
- * Tests the UuidResolver class.
- *
- * @see \Drupal\serialization\EntityResolver\UuidResolver
- *
- * @group Drupal
- * @group Serialization
+ * @coversDefaultClass \Drupal\serialization\EntityResolver\UuidResolver
+ * @group serialization
  */
 class UuidResolverTest extends UnitTestCase {
 
@@ -37,17 +33,6 @@ class UuidResolverTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'UuidResolver',
-      'description' => 'Tests the UuidResolver class.',
-      'group' => 'Serialization',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityManager = $this->getMockBuilder('Drupal\Core\Entity\EntityManager')
       ->disableOriginalConstructor()
diff --git a/core/modules/serialization/tests/src/Normalizer/ConfigEntityNormalizerTest.php b/core/modules/serialization/tests/src/Normalizer/ConfigEntityNormalizerTest.php
index 795ad6d..9670cc1 100644
--- a/core/modules/serialization/tests/src/Normalizer/ConfigEntityNormalizerTest.php
+++ b/core/modules/serialization/tests/src/Normalizer/ConfigEntityNormalizerTest.php
@@ -11,26 +11,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the ConfigEntityNormalizer class.
- *
- * @group Serialization
- *
  * @coversDefaultClass \Drupal\serialization\Normalizer\ConfigEntityNormalizer
+ * @group serialization
  */
 class ConfigEntityNormalizerTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'ConfigEntityNormalizer',
-      'description' => 'Tests the ConfigEntityNormalizer class.',
-      'group' => 'Serialization',
-    );
-  }
-
-  /**
    * Tests the normalize() method.
    *
    * @covers ::normalize
diff --git a/core/modules/serialization/tests/src/Normalizer/EntityNormalizerTest.php b/core/modules/serialization/tests/src/Normalizer/EntityNormalizerTest.php
index 968ebfb..ace7d2e 100644
--- a/core/modules/serialization/tests/src/Normalizer/EntityNormalizerTest.php
+++ b/core/modules/serialization/tests/src/Normalizer/EntityNormalizerTest.php
@@ -11,9 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the EntityNormalizer class.
- *
  * @coversDefaultClass \Drupal\serialization\Normalizer\EntityNormalizer
+ * @group serialization
  */
 class EntityNormalizerTest extends UnitTestCase {
 
@@ -41,17 +40,6 @@ class EntityNormalizerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'ListNormalizer',
-      'description' => 'Tests the ListNormalizer class.',
-      'group' => 'Serialization',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityManager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
     $this->entityNormalizer = new EntityNormalizer($this->entityManager);
diff --git a/core/modules/serialization/tests/src/Normalizer/ListNormalizerTest.php b/core/modules/serialization/tests/src/Normalizer/ListNormalizerTest.php
index 2462b4a..1a5afcc 100644
--- a/core/modules/serialization/tests/src/Normalizer/ListNormalizerTest.php
+++ b/core/modules/serialization/tests/src/Normalizer/ListNormalizerTest.php
@@ -13,12 +13,8 @@
 use Drupal\Core\TypedData\Plugin\DataType\ItemList;
 
 /**
- * Tests the ListNormalizer class.
- *
- * @see \Drupal\serialization\Normalizer\ListNormalizer
- *
- * @group Drupal
- * @group Serialization
+ * @coversDefaultClass \Drupal\serialization\Normalizer\ListNormalizer
+ * @group serialization
  */
 class ListNormalizerTest extends UnitTestCase {
 
@@ -43,14 +39,6 @@ class ListNormalizerTest extends UnitTestCase {
    */
   protected $expectedListValues = array('test', 'test', 'test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'ListNormalizer',
-      'description' => 'Tests the ListNormalizer class.',
-      'group' => 'Serialization',
-    );
-  }
-
   public function setUp() {
     // Mock the TypedDataManager to return a TypedDataInterface mock.
     $typed_data = $this->getMock('Drupal\Core\TypedData\TypedDataInterface');
diff --git a/core/modules/serialization/tests/src/Normalizer/NormalizerBaseTest.php b/core/modules/serialization/tests/src/Normalizer/NormalizerBaseTest.php
index f03755c..dbb67d9 100644
--- a/core/modules/serialization/tests/src/Normalizer/NormalizerBaseTest.php
+++ b/core/modules/serialization/tests/src/Normalizer/NormalizerBaseTest.php
@@ -11,26 +11,12 @@
 use Drupal\serialization\Normalizer\NormalizerBase;
 
 /**
- * Tests the NormalizerBase class.
- *
- * @see \Drupal\serialization\Normalizer\NormalizerBase
- *
- * @group Serialization
+ * @coversDefaultClass \Drupal\serialization\Normalizer\NormalizerBase
+ * @group serialization
  */
 class NormalizerBaseTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'NormalizerBase',
-      'description' => 'Tests the abstract NormalizerBase class.',
-      'group' => 'Serialization',
-    );
-  }
-
-  /**
    * Tests the supportsNormalization method.
    *
    * @dataProvider providerTestSupportsNormalization
diff --git a/core/modules/serialization/tests/src/Normalizer/TypedDataNormalizerTest.php b/core/modules/serialization/tests/src/Normalizer/TypedDataNormalizerTest.php
index 3e1dafd..52f2702 100644
--- a/core/modules/serialization/tests/src/Normalizer/TypedDataNormalizerTest.php
+++ b/core/modules/serialization/tests/src/Normalizer/TypedDataNormalizerTest.php
@@ -11,11 +11,8 @@
 use Drupal\serialization\Normalizer\TypedDataNormalizer;
 
 /**
- * Tests the TypedDataNormalizer class.
- *
- * @see \Drupal\serialization\Normalizer\TypedDataNormalizer
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\serialization\Normalizer\TypedDataNormalizer
+ * @group serialization
  */
 class TypedDataNormalizerTest extends UnitTestCase {
 
@@ -33,14 +30,6 @@ class TypedDataNormalizerTest extends UnitTestCase {
    */
   protected $typedData;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'TypedDataNormalizer',
-      'description' => 'Tests the TypedDataNormalizer class.',
-      'group' => 'Serialization',
-    );
-  }
-
   public function setUp() {
     $this->normalizer = new TypedDataNormalizer();
     $this->typedData = $this->getMock('Drupal\Core\TypedData\TypedDataInterface');
diff --git a/core/modules/shortcut/src/Tests/ShortcutCacheTagsTest.php b/core/modules/shortcut/src/Tests/ShortcutCacheTagsTest.php
index 3188e0a..780bca8 100644
--- a/core/modules/shortcut/src/Tests/ShortcutCacheTagsTest.php
+++ b/core/modules/shortcut/src/Tests/ShortcutCacheTagsTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the Shortcut entity's cache tags.
+ *
+ * @group shortcut
  */
 class ShortcutCacheTagsTest extends EntityCacheTagsTestBase {
 
@@ -23,13 +25,6 @@ class ShortcutCacheTagsTest extends EntityCacheTagsTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return parent::generateStandardizedInfo('Shortcut link', 'Shortcut');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/shortcut/src/Tests/ShortcutLinksTest.php b/core/modules/shortcut/src/Tests/ShortcutLinksTest.php
index abc017e..2b65d21 100644
--- a/core/modules/shortcut/src/Tests/ShortcutLinksTest.php
+++ b/core/modules/shortcut/src/Tests/ShortcutLinksTest.php
@@ -10,7 +10,9 @@
 use Drupal\shortcut\Entity\ShortcutSet;
 
 /**
- * Defines shortcut links test cases.
+ * Create, view, edit, delete, and change shortcut links.
+ *
+ * @group shortcut
  */
 class ShortcutLinksTest extends ShortcutTestBase {
 
@@ -21,14 +23,6 @@ class ShortcutLinksTest extends ShortcutTestBase {
    */
   public static $modules = array('router_test', 'views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Shortcut link functionality',
-      'description' => 'Create, view, edit, delete, and change shortcut links.',
-      'group' => 'Shortcut',
-    );
-  }
-
   /**
    * Tests that creating a shortcut works properly.
    */
diff --git a/core/modules/shortcut/src/Tests/ShortcutSetsTest.php b/core/modules/shortcut/src/Tests/ShortcutSetsTest.php
index c17316d..c4c26c7 100644
--- a/core/modules/shortcut/src/Tests/ShortcutSetsTest.php
+++ b/core/modules/shortcut/src/Tests/ShortcutSetsTest.php
@@ -9,18 +9,12 @@
 use Drupal\shortcut\Entity\ShortcutSet;
 
 /**
- * Defines shortcut set test cases.
+ * Create, view, edit, delete, and change shortcut sets.
+ *
+ * @group shortcut
  */
 class ShortcutSetsTest extends ShortcutTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Shortcut set functionality',
-      'description' => 'Create, view, edit, delete, and change shortcut sets.',
-      'group' => 'Shortcut',
-    );
-  }
-
   /**
    * Tests creating a shortcut set.
    */
diff --git a/core/modules/shortcut/tests/src/Menu/ShortcutLocalTasksTest.php b/core/modules/shortcut/tests/src/Menu/ShortcutLocalTasksTest.php
index c4b4564..7ac2f17 100644
--- a/core/modules/shortcut/tests/src/Menu/ShortcutLocalTasksTest.php
+++ b/core/modules/shortcut/tests/src/Menu/ShortcutLocalTasksTest.php
@@ -12,19 +12,10 @@
 /**
  * Tests existence of shortcut local tasks.
  *
- * @group Drupal
- * @group Shortcut
+ * @group shortcut
  */
 class ShortcutLocalTasksTest extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Shortcut local tasks test',
-      'description' => 'Test shortcut local tasks.',
-      'group' => 'Shortcut',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array(
       'shortcut' => 'core/modules/shortcut',
diff --git a/core/modules/simpletest/css/simpletest.module.css b/core/modules/simpletest/css/simpletest.module.css
index 611cc4a..71f7eea 100644
--- a/core/modules/simpletest/css/simpletest.module.css
+++ b/core/modules/simpletest/css/simpletest.module.css
@@ -4,7 +4,7 @@
   width: 1em;
 }
 th.simpletest-test-label {
-  width: 16em;
+  width: 40%;
 }
 
 .simpletest-image {
diff --git a/core/modules/simpletest/simpletest.api.php b/core/modules/simpletest/simpletest.api.php
index dad9a39..e5251b7 100644
--- a/core/modules/simpletest/simpletest.api.php
+++ b/core/modules/simpletest/simpletest.api.php
@@ -14,9 +14,9 @@
  * Alter the list of tests.
  *
  * @param $groups
- *   A two dimension array, the first key is the test group (as defined in
- *   getInfo) the second is the name of the class and the value is the return
- *   value of the getInfo method.
+ *   A two dimensional array, the first key is the test group, the second is the
+ *   name of the test class, and the value is in associative array containing
+ *   'name', 'description', 'group', and 'requires' keys.
  */
 function hook_simpletest_alter(&$groups) {
   // An alternative session handler module would not want to run the original
diff --git a/core/modules/simpletest/simpletest.module b/core/modules/simpletest/simpletest.module
index 96ab21b..9911234 100644
--- a/core/modules/simpletest/simpletest.module
+++ b/core/modules/simpletest/simpletest.module
@@ -5,6 +5,8 @@
 use Drupal\Core\Extension\ExtensionDiscovery;
 use Drupal\Core\Render\Element;
 use Drupal\simpletest\TestBase;
+use Drupal\simpletest\TestDiscovery;
+use Sun\StaticReflection\ReflectionClass;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Process\PhpExecutableFinder;
 
@@ -88,40 +90,34 @@ function _simpletest_format_summary_line($summary) {
  *
  * @param $test_list
  *   List of tests to run.
- * @param $reporter
- *   Which reporter to use. Allowed values are: text, xml, html and drupal,
- *   drupal being the default.
  *
  * @return string
  *   The test ID.
  */
-function simpletest_run_tests($test_list, $reporter = 'drupal') {
+function simpletest_run_tests($test_list) {
   $test_id = db_insert('simpletest_test_id')
     ->useDefaults(array('test_id'))
     ->execute();
 
-  $phpunit_tests = isset($test_list['UnitTest']) ? $test_list['UnitTest'] : array();
-  if ($phpunit_tests) {
+  if (!empty($test_list['phpunit'])) {
     $phpunit_results = simpletest_run_phpunit_tests($test_id, $phpunit_tests);
     simpletest_process_phpunit_results($phpunit_results);
   }
 
-  if (!array_key_exists('WebTest', $test_list) || empty($test_list['WebTest'])) {
-    // Early return if there are no WebTests to run.
+  // Early return if there are no further tests to run.
+  if (empty($test_list['simpletest'])) {
     return $test_id;
   }
 
-  // Contine with SimpleTests only.
-  $test_list = $test_list['WebTest'];
+  // Continue with SimpleTests only.
+  $test_list = $test_list['simpletest'];
 
   // Clear out the previous verbose files.
   file_unmanaged_delete_recursive('public://simpletest/verbose');
 
   // Get the info for the first test being run.
-  $first_test = array_shift($test_list);
-  $first_instance = new $first_test();
-  array_unshift($test_list, $first_test);
-  $info = $first_instance->getInfo();
+  $first_test = reset($test_list);
+  $info = TestDiscovery::getTestInfo(new ReflectionClass($first_test));
 
   $batch = array(
     'title' => t('Running tests'),
@@ -295,7 +291,7 @@ function _simpletest_batch_operation($test_list_init, $test_id, &$context) {
   $test = new $test_class($test_id);
   $test->run();
   $size = count($test_list);
-  $info = $test->getInfo();
+  $info = TestDiscovery::getTestInfo(new ReflectionClass($test));
 
   \Drupal::moduleHandler()->invokeAll('test_finished', array($test->results));
 
@@ -422,8 +418,8 @@ function simpletest_log_read($test_id, $database_prefix, $test_class) {
  *   returned.
  *
  * @return array[]
- *   An array of tests keyed with the groups specified in each of the tests'
- *   getInfo() methods and then keyed by the test classes. For example:
+ *   An array of tests keyed with the groups, and then keyed by test classes.
+ *   For example:
  *   @code
  *     $groups['Block'] => array(
  *       'BlockTestCase' => array(
@@ -435,159 +431,14 @@ function simpletest_log_read($test_id, $database_prefix, $test_class) {
  *   @endcode
  */
 function simpletest_test_get_all($module = NULL) {
-  static $all_groups = array();
-  $cid = "simpletest:$module";
-
-  if (!isset($all_groups[$cid])) {
-    $all_groups[$cid] = array();
-    $groups = &$all_groups[$cid];
-    // Register namespaces (extensions are not necessarily enabled).
-    simpletest_classloader_register();
-
-    // Load test information from cache if available, otherwise retrieve the
-    // information from each tests getInfo() method.
-    if ($cache = \Drupal::cache()->get($cid)) {
-      $groups = $cache->data;
-    }
-    else {
-      // Select all PSR-0 classes in the Tests namespace of all modules.
-      $listing = new ExtensionDiscovery();
-      // Ensure that tests in all profiles are discovered.
-      $listing->setProfileDirectories(array());
-      $all_data = $listing->scan('module', TRUE);
-      // If module is set then we keep only that one module.
-      if (isset($module)) {
-        $all_data = array(
-          $module => $all_data[$module],
-        );
-      }
-      else {
-        $all_data += $listing->scan('profile', TRUE);
-        $all_data += $listing->scan('theme', TRUE);
-      }
-
-      // Scan all extension folders for class files.
-      $classes = array();
-      foreach ($all_data as $name => $data) {
-
-        // Build the directory in which simpletest test classes would reside.
-        $tests_dir = DRUPAL_ROOT . '/' . $data->getPath() . '/src/Tests';
-
-        // Check if the directory exists.
-        if (!is_dir($tests_dir)) {
-          // This extension has no directory for simpletest cases.
-          continue;
-        }
-
-        // Scan the directory for class files.
-        $files = file_scan_directory($tests_dir, '/\.php$/');
-        if (empty($files)) {
-          // No class files found.
-          continue;
-        }
-
-        // Convert the file names into the namespaced class names.
-        $strlen = strlen($tests_dir) + 1;
-        $namespace = 'Drupal\\' . $name . '\Tests\\';
-        foreach ($files as $file) {
-          $classes[] = $namespace . str_replace('/', '\\', substr($file->uri, $strlen, -4));
-        }
-      }
-
-      // Check that each class has a getInfo() method and store the information
-      // in an array keyed with the group specified in the test information.
-      $groups = array();
-      foreach ($classes as $class) {
-        // Test classes need to implement getInfo() to be valid.
-        if (class_exists($class) && method_exists($class, 'getInfo')) {
-          $reflectionClass = new ReflectionClass($class);
-          // Skip abstract classes and interfaces.
-          if ($reflectionClass->isInstantiable()) {
-            $reflectionMethod = new ReflectionMethod($class, 'getInfo');
-            $declaringClass = $reflectionMethod->getDeclaringClass()->getName();
-            // Avoid testing intermediate classes which do not implement the
-            // method.
-            if ($class == $declaringClass) {
-              $info = call_user_func(array($class, 'getInfo'));
-            }
-            else {
-              continue;
-            }
-          }
-          else {
-            continue;
-          }
-          // If this test class requires a non-existing module, skip it.
-          if (!empty($info['dependencies'])) {
-            foreach ($info['dependencies'] as $dependency) {
-              if (!isset($dependency_data[$dependency])) {
-                continue 2;
-              }
-            }
-          }
-
-          $groups[$info['group']][$class] = $info;
-        }
-      }
-
-      // Sort the groups and tests within the groups by name.
-      uksort($groups, 'strnatcasecmp');
-      foreach ($groups as &$tests) {
-        uksort($tests, 'strnatcasecmp');
-      }
-
-      // Allow modules extending core tests to disable originals.
-      \Drupal::moduleHandler()->alter('simpletest', $groups);
-      \Drupal::cache()->set($cid, $groups);
-    }
-  }
-  return $all_groups[$cid];
+  return \Drupal::service('test_discovery')->getTestClasses();
 }
 
 /**
  * Registers namespaces for disabled modules.
  */
 function simpletest_classloader_register() {
-  // Use the same cache prefix as simpletest_test_get_all().
-  $cid = "simpletest::all";
-  $types = array(
-    'theme_engine',
-    'module',
-    'theme',
-    'profile',
-  );
-
-  if ($cache = \Drupal::cache()->get($cid)) {
-    $extensions = $cache->data;
-  }
-  else {
-    $listing = new ExtensionDiscovery();
-    // Ensure that tests in all profiles are discovered.
-    $listing->setProfileDirectories(array());
-    $extensions = array();
-    foreach ($types as $type) {
-      foreach ($listing->scan($type, TRUE) as $name => $file) {
-        $extensions[$type][$name] = $file->getPathname();
-      }
-    }
-    \Drupal::cache()->set($cid, $extensions);
-  }
-
-  $classloader = drupal_classloader();
-  foreach ($types as $type) {
-    foreach ($extensions[$type] as $name => $uri) {
-      drupal_classloader_register($name, dirname($uri));
-      $classloader->addPsr4('Drupal\\' . $name . '\\Tests\\', array(
-        DRUPAL_ROOT . '/' . dirname($uri) . '/tests/Drupal/' . $name . '/Tests',
-        DRUPAL_ROOT . '/' . dirname($uri) . '/tests/src',
-      ));
-      // While being there, prime drupal_get_filename().
-      drupal_get_filename($type, $name, $uri);
-    }
-  }
-
-  // Register the core test directory so we can find \Drupal\UnitTestCase.
-  $classloader->add('Drupal\\Tests', DRUPAL_ROOT . '/core/tests');
+  \Drupal::service('test_discovery')->registerTestNamespaces();
 }
 
 /**
@@ -748,60 +599,6 @@ function simpletest_mail_alter(&$message) {
 }
 
 /**
- * Gets PHPUnit classes.
- *
- * @param string $module
- *   Name of a module. If set then only tests belonging to this module is
- *   returned.
- *
- * @return array
- *   Returns an array of test classes.
- *
- * @throws \RuntimeException
- *   This is thrown when anything is wrong with a test.
- */
-function simpletest_phpunit_get_available_tests($module = NULL) {
-  // Try to load the class names array from cache.
-  $cid = 'simpletest_phpunit:' . $module;
-  if ($cache = \Drupal::cache()->get($cid)) {
-    $test_classes = $cache->data;
-  }
-  else {
-    if ($module) {
-      $prefix = 'Drupal\\' . $module . '\\';
-      $n = strlen($prefix);
-    }
-    // If there was no cached data available we have to find the tests.
-    // Load the PHPUnit configuration file, which tells us where to find the
-    // tests.
-    $phpunit_config = simpletest_phpunit_configuration_filepath();
-    $configuration = PHPUnit_Util_Configuration::getInstance($phpunit_config);
-    // Find all the tests and get a list of unique class names.
-    $test_suite = $configuration->getTestSuiteConfiguration(NULL);
-    $test_classes = array();
-    /** @var $test_suite \PHPUnit_Framework_TestSuite[] */
-    foreach ($test_suite as $test) {
-      // PHPUnit returns a warning message if something is wrong with a test,
-      // throw an exception to avoid an error when trying to call getInfo() on
-      // this.
-      if ($test instanceof PHPUnit_Framework_Warning) {
-        throw new RuntimeException($test->getMessage());
-      }
-
-      $name = $test->getName();
-      if (!array_key_exists($name, $test_classes) && (!$module || substr($name, 0, $n) == $prefix)) {
-        $test_classes[$name] = $name::getInfo();
-      }
-    }
-
-    // Since we have recalculated, we now need to store the new data into cache.
-    \Drupal::cache()->set($cid, $test_classes);
-  }
-
-  return $test_classes;
-}
-
-/**
  * Converts PHPUnit's JUnit XML output to an array.
  *
  * @param $test_id
diff --git a/core/modules/simpletest/simpletest.services.yml b/core/modules/simpletest/simpletest.services.yml
new file mode 100644
index 0000000..b6c75e2
--- /dev/null
+++ b/core/modules/simpletest/simpletest.services.yml
@@ -0,0 +1,3 @@
+services:
+  test_discovery:
+    class: Drupal\simpletest\TestDiscovery
diff --git a/core/modules/simpletest/src/Form/SimpletestTestForm.php b/core/modules/simpletest/src/Form/SimpletestTestForm.php
index e3876a5..a85f941 100644
--- a/core/modules/simpletest/src/Form/SimpletestTestForm.php
+++ b/core/modules/simpletest/src/Form/SimpletestTestForm.php
@@ -27,6 +27,20 @@ public function getFormId() {
    * {@inheritdoc}
    */
   public function buildForm(array $form, array &$form_state) {
+    $form['actions'] = array('#type' => 'actions');
+    $form['actions']['submit'] = array(
+      '#type' => 'submit',
+      '#value' => $this->t('Run tests'),
+      '#tableselect' => TRUE,
+      '#button_type' => 'primary',
+    );
+
+    // Do not needlessly re-execute a full test discovery if the user input
+    // already contains an explicit list of test classes to run.
+    if (!empty($form_state['input']['tests'])) {
+      return $form;
+    }
+
     // JavaScript-only table filters.
     $form['filters'] = array(
       '#type' => 'container',
@@ -96,9 +110,6 @@ public function buildForm(array $form, array &$form_state) {
 
     // Generate the list of tests arranged by group.
     $groups = simpletest_test_get_all();
-    $groups['PHPUnit'] = simpletest_phpunit_get_available_tests();
-    $form_state['storage']['PHPUnit'] = $groups['PHPUnit'];
-
     foreach ($groups as $group => $tests) {
       $form['tests'][$group] = array(
         '#attributes' => array('class' => array('simpletest-group')),
@@ -150,10 +161,7 @@ public function buildForm(array $form, array &$form_state) {
         );
         $form['tests'][$class]['description'] = array(
           '#prefix' => '<div class="description">',
-          '#markup' => String::format('@description (@class)', array(
-            '@description' => $info['description'],
-            '@class' => $class,
-          )),
+          '#markup' => String::checkPlain($info['description']),
           '#suffix' => '</div>',
           '#wrapper_attributes' => array(
             'class' => array('simpletest-test-description', 'table-filter-text-source'),
@@ -162,15 +170,6 @@ public function buildForm(array $form, array &$form_state) {
       }
     }
 
-    // Action buttons.
-    $form['actions'] = array('#type' => 'actions');
-    $form['actions']['submit'] = array(
-      '#type' => 'submit',
-      '#value' => $this->t('Run tests'),
-      '#tableselect' => TRUE,
-      '#button_type' => 'primary',
-    );
-
     $form['clean'] = array(
       '#type' => 'fieldset',
       '#title' => $this->t('Clean test environment'),
@@ -190,16 +189,31 @@ public function buildForm(array $form, array &$form_state) {
    * {@inheritdoc}
    */
   public function submitForm(array &$form, array &$form_state) {
+    // Test discovery does not run upon form submission.
     simpletest_classloader_register();
 
-    $phpunit_all = array_keys($form_state['storage']['PHPUnit']);
+    // This form accepts arbitrary user input for 'tests'.
+    // An invalid value will cause the $class_name lookup below to die with a
+    // fatal error. Regular user access mechanisms to this form are intact.
+    // The only validation effectively being skipped is the validation of
+    // available checkboxes vs. submitted checkboxes.
+    // @todo Refactor Form API to allow to POST values without constructing the
+    //   entire form more easily, BUT retaining routing access security and
+    //   retaining Form API CSRF #token security validation, and without having
+    //   to rely on form caching.
+    if (empty($form_state['values']['tests']) && !empty($form_state['input']['tests'])) {
+      $form_state['values']['tests'] = $form_state['input']['tests'];
+    }
 
     $tests_list = array();
     foreach ($form_state['values']['tests'] as $class_name => $value) {
-      // Since class_exists() will likely trigger an autoload lookup,
-      // we do the fast check first.
-      if ($value === $class_name && class_exists($class_name)) {
-        $test_type = in_array($class_name, $phpunit_all) ? 'UnitTest' : 'WebTest';
+      if ($value === $class_name) {
+        if (is_subclass_of($class_name, 'PHPUnit_Framework_TestCase')) {
+          $test_type = 'phpunit';
+        }
+        else {
+          $test_type = 'simpletest';
+        }
         $tests_list[$test_type][] = $class_name;
       }
     }
diff --git a/core/modules/simpletest/src/TestBase.php b/core/modules/simpletest/src/TestBase.php
index 0987d3d..ad3886e 100644
--- a/core/modules/simpletest/src/TestBase.php
+++ b/core/modules/simpletest/src/TestBase.php
@@ -207,27 +207,6 @@ public function __construct($test_id = NULL) {
   }
 
   /**
-   * Provides meta information about this test case, such as test name.
-   *
-   * @return array
-   *   An array of untranslated strings with the following keys:
-   *   - name: An overview of what is tested by the class; for example, "User
-   *     access rules".
-   *   - description: One sentence describing the test, starting with a verb.
-   *   - group: The human-readable name of the module ("Node", "Statistics"), or
-   *     the human-readable name of the Drupal facility tested (e.g. "Form API"
-   *     or "XML-RPC").
-   */
-  public static function getInfo() {
-    // PHP does not allow us to declare this method as abstract public static,
-    // so we simply throw an exception here if this has not been implemented by
-    // a child class.
-    throw new \RuntimeException(String::format('@class must implement \Drupal\simpletest\TestBase::getInfo().', array(
-      '@class' => get_called_class(),
-    )));
-  }
-
-  /**
    * Performs setup tasks before each individual test method is run.
    */
   abstract protected function setUp();
diff --git a/core/modules/simpletest/src/TestDiscovery.php b/core/modules/simpletest/src/TestDiscovery.php
new file mode 100644
index 0000000..bb2b6b4
--- /dev/null
+++ b/core/modules/simpletest/src/TestDiscovery.php
@@ -0,0 +1,328 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\simpletest\TestDiscovery.
+ */
+
+namespace Drupal\simpletest;
+
+use Drupal\Core\Extension\Extension;
+use Drupal\Core\Extension\ExtensionDiscovery;
+use Sun\StaticReflection\ReflectionClass;
+use PHPUnit_Framework_TestSuite;
+use PHPUnit_Framework_Warning;
+use PHPUnit_Util_Test;
+
+/**
+ * Discovers available tests.
+ */
+class TestDiscovery {
+
+  /**
+   * Cached map of all test namespaces to respective directories.
+   *
+   * @var array
+   */
+  protected $testNamespaces;
+
+  /**
+   * Cached list of all discovered test classes.
+   *
+   * @var array
+   */
+  protected $testClasses;
+
+  /**
+   * Cached list of available extension names, keyed by extension type.
+   *
+   * @var array
+   */
+  protected $availableExtensions;
+
+  /**
+   * Registers test namespaces of all available extensions.
+   *
+   * @return array
+   *   An associative array whose keys are PSR-4 namespace prefixes and whose
+   *   values are directory names.
+   *
+   * @todo Inject class loader.
+   */
+  public function registerTestNamespaces() {
+    if (isset($this->testNamespaces)) {
+      return $this->testNamespaces;
+    }
+    $this->testNamespaces = array();
+
+    $loader = drupal_classloader();
+    $existing = $loader->getPrefixesPsr4();
+
+    // Add PHPUnit test namespace of Drupal core.
+    $this->testNamespaces['Drupal\\Tests\\'] = [DRUPAL_ROOT . '/core/tests/Drupal/Tests'];
+
+    $this->availableExtensions = array();
+    foreach ($this->getExtensions() as $name => $extension) {
+      $this->availableExtensions[$extension->getType()][$name] = $name;
+
+      $base_namespace = "Drupal\\$name\\";
+      $base_path = DRUPAL_ROOT . '/' . $extension->getPath();
+
+      // Add namespace of disabled/uninstalled extensions.
+      if (!isset($existing[$base_namespace])) {
+        $loader->addPsr4($base_namespace, "$base_path/src");
+      }
+      // Add Simpletest test namespace.
+      $this->testNamespaces[$base_namespace . 'Tests\\'][] = "$base_path/src/Tests";
+
+      // Add PHPUnit test namespace.
+      // @todo Move PHPUnit namespace of extensions into Drupal\Tests\$name.
+      // @see https://drupal.org/node/2260121
+      $this->testNamespaces[$base_namespace . 'Tests\\'][] = "$base_path/tests/src";
+
+      // While being there, prime drupal_get_filename().
+      // @todo Remove this.
+      drupal_get_filename($extension->getType(), $name, $extension->getPathname());
+    }
+
+    foreach ($this->testNamespaces as $prefix => $paths) {
+      $loader->addPsr4($prefix, $paths);
+    }
+
+    return $this->testNamespaces;
+  }
+
+  /**
+   * Discovers all available tests in all extensions.
+   *
+   * @return array
+   *   An array of tests keyed by the @group specified in each of test's
+   *   phpDoc comment block, and then keyed by class names. For example:
+   *   @code
+   *     $groups['Block'] => array(
+   *       'Drupal\block\Tests\BlockTest' => array(
+   *         'name' => 'Drupal\block\Tests\BlockTest',
+   *         'description' => 'Tests block UI CRUD functionality.',
+   *         'group' => 'Block',
+   *       ),
+   *     );
+   *   @endcode
+   *
+   * @todo Remove singular grouping; retain list of groups in 'group' key.
+   * @todo Add dedicated groups 'Kernel' + 'Web' complementing 'PHPUnit'.
+   */
+  public function getTestClasses() {
+    if (isset($this->testClasses)) {
+      return $this->testClasses;
+    }
+    $this->testClasses = array();
+
+    $classmap = $this->findTestClasses();
+
+    // Prevent expensive class loader lookups for each reflected test class by
+    // registering the complete classmap of test classes to the class loader.
+    $loader = drupal_classloader();
+    $loader->addClassMap($classmap);
+
+    foreach ($classmap as $classname => $pathname) {
+      $class = new ReflectionClass($classname, $pathname);
+
+      // Skip interfaces, abstract classes, and traits.
+      if (!$class->isInstantiable()) {
+        continue;
+      }
+      // Skip non-test classes.
+      // For performance reasons, check the most common base classes first.
+      $is_test = $is_phpunit = $class->isSubclassOfAny(array(
+        'PHPUnit_Framework_TestCase',
+        'Drupal\Tests\UnitTestCase',
+      ));
+      $is_test = $is_test || $class->isSubclassOfAny(array(
+        'Drupal\simpletest\TestBase',
+        'Drupal\simpletest\UnitTestBase',
+        'Drupal\simpletest\KernelTestBase',
+        'Drupal\simpletest\DrupalUnitTestBase',
+        'Drupal\simpletest\WebTestBase',
+        'Drupal\simpletest\InstallerTestBase',
+      ));
+      // Checking for the following may trigger autoloading of all dependencies.
+      $is_test = $is_test || $class->isSubclassOf('Drupal\simpletest\TestBase');
+      $is_test = $is_test || $is_phpunit = $class->isSubclassOf('PHPUnit_Framework_TestCase');
+      if (!$is_test) {
+        continue;
+      }
+      $info = static::getTestInfo($class, $is_phpunit);
+
+      // Skip this test class if it requires unavailable modules.
+      // @todo PHPUnit skips tests with unmet requirements when executing a test
+      //   (instead of excluding them upfront). Refactor test runner to follow
+      //   that approach.
+      if (!empty($info['requires']['module'])) {
+        if (array_diff($info['requires']['module'], $this->availableExtensions['module'])) {
+          continue;
+        }
+      }
+
+      $this->testClasses[$info['group']][$classname] = $info;
+    }
+
+    // Sort the groups and tests within the groups by name.
+    uksort($this->testClasses, 'strnatcasecmp');
+    foreach ($this->testClasses as &$tests) {
+      uksort($tests, 'strnatcasecmp');
+    }
+
+    // Allow modules extending core tests to disable originals.
+    \Drupal::moduleHandler()->alter('simpletest', $this->testClasses);
+
+    return $this->testClasses;
+  }
+
+  /**
+   * Discovers all test classes in all available extensions.
+   *
+   * @return array
+   *   A classmap containing all discovered test classes.
+   */
+  public function findTestClasses() {
+    $classmap = array();
+    foreach ($this->registerTestNamespaces() as $namespace => $paths) {
+      foreach ($paths as $path) {
+        if (!is_dir($path)) {
+          continue;
+        }
+        $classmap += static::scanDirectory($namespace, $path);
+      }
+    }
+    return $classmap;
+  }
+
+  /**
+   * Scans a given directory for class files.
+   *
+   * @param string $namespace_prefix
+   *   The namespace prefix to use for discovered classes. Must contain a
+   *   trailing namespace separator (backslash).
+   *   For example: 'Drupal\\node\\Tests\\'
+   * @param string $path
+   *   The directory path to scan.
+   *   For example: '/path/to/drupal/core/modules/node/tests/src'
+   *
+   * @return array
+   *   An associative array whose keys are fully-qualified class names and whose
+   *   values are corresponding filesystem pathnames.
+   *
+   * @todo Limit to filenames with 'Test' suffix.
+   */
+  public static function scanDirectory($namespace_prefix, $path) {
+    if (substr($namespace_prefix, -1) !== '\\') {
+      throw new \InvalidArgumentException("Namespace prefix for $path must contain a trailing namespace separator.");
+    }
+    $flags = \FilesystemIterator::UNIX_PATHS;
+    $flags |= \FilesystemIterator::SKIP_DOTS;
+    $flags |= \FilesystemIterator::FOLLOW_SYMLINKS;
+    $flags |= \FilesystemIterator::CURRENT_AS_SELF;
+
+    $iterator = new \RecursiveDirectoryIterator($path, $flags);
+    $filter = new \RecursiveCallbackFilterIterator($iterator, function ($current, $key, $iterator) {
+      if ($iterator->hasChildren()) {
+        return TRUE;
+      }
+      return $current->isFile() && $current->getExtension() === 'php';
+    });
+    $files = new \RecursiveIteratorIterator($filter);
+    $classes = array();
+    foreach ($files as $fileinfo) {
+      $class = $namespace_prefix;
+      if ('' !== $subpath = $fileinfo->getSubPath()) {
+        $class .= strtr($subpath, '/', '\\') . '\\';
+      }
+      $class .= $fileinfo->getBasename('.php');
+      $classes[$class] = $fileinfo->getPathname();
+    }
+    return $classes;
+  }
+
+  /**
+   * Retrieves information about a test class for UI purposes.
+   *
+   * @param \Sun\StaticReflection\ReflectionClass $class
+   *   The reflected test class.
+   * @param bool $is_phpunit
+   *   (optional) Whether the test class is a PHPUnit test.
+   *
+   * @return array
+   *   An associative array containing:
+   *   - name: The test class name.
+   *   - description: The test (phpDoc) summary.
+   *   - group: A human-readable group name parsed from a @group class phpDoc
+   *     annotation. (Only one at this point.)
+   *   - requires: An associative array containing requirements:
+   *     - module: A list of Drupal module extension names that the test depends
+   *       on.
+   */
+  public static function getTestInfo(ReflectionClass $class, $is_phpunit = FALSE) {
+    $classname = $class->getName();
+    $info = array(
+      'name' => $classname,
+    );
+    // Automatically convert @coversDefaultClass into summary.
+    $annotations = $class->getAnnotations();
+    if (isset($annotations['coversDefaultClass'][0])) {
+      $info['description'] = 'Tests ' . $annotations['coversDefaultClass'][0] . '.';
+    }
+    else {
+      $info['description'] = $class->getSummary();
+    }
+    if (empty($info['description'])) {
+      throw new \LogicException(sprintf('Missing PHPDoc summary line on %s in %s.', $classname, $class->getFileName()));
+    }
+
+    // Reduce to @group and @requires.
+    $info += array_intersect_key($annotations, array('group' => 1, 'requires' => 1));
+
+    // @todo Add support for 'PHP', 'OS', 'function', 'extension'.
+    if (isset($info['requires'])) {
+      foreach ($info['requires'] as $i => $value) {
+        list($type, $value) = explode(' ', $value, 2);
+        if ($type === 'module') {
+          $info['requires']['module'][$value] = $value;
+          unset($info['requires'][$i]);
+        }
+      }
+    }
+
+    // Process @group information.
+    // @todo Support multiple @groups + change UI to expose a group select
+    //   dropdown to filter tests by group instead of collapsible table rows.
+    // @todo Replace single enforced PHPUnit group with base class groups.
+    if ($is_phpunit) {
+      $info['group'] = 'PHPUnit';
+    }
+    else {
+      if (empty($info['group'])) {
+        throw new \LogicException("Missing @group for $classname.");
+      }
+      $info['group'] = reset($info['group']);
+    }
+
+    return $info;
+  }
+
+  /**
+   * Returns all available extensions.
+   *
+   * @return \Drupal\Core\Extension\Extension[]
+   *   An array of Extension objects, keyed by extension name.
+   */
+  protected function getExtensions() {
+    $listing = new ExtensionDiscovery();
+    // Ensure that tests in all profiles are discovered.
+    $listing->setProfileDirectories(array());
+    $extensions = $listing->scan('module', TRUE);
+    $extensions += $listing->scan('profile', TRUE);
+    $extensions += $listing->scan('theme', TRUE);
+    return $extensions;
+  }
+
+}
diff --git a/core/modules/simpletest/src/Tests/BrokenSetUpTest.php b/core/modules/simpletest/src/Tests/BrokenSetUpTest.php
index 43f9443..35c80d1 100644
--- a/core/modules/simpletest/src/Tests/BrokenSetUpTest.php
+++ b/core/modules/simpletest/src/Tests/BrokenSetUpTest.php
@@ -10,13 +10,14 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests a test case that does not run parent::setUp() in its setUp() method.
+ * Tests a test case that does not call parent::setUp().
  *
  * If a test case does not call parent::setUp(), running
  * \Drupal\simpletest\WebTestBase::tearDown() would destroy the main site's
  * database tables. Therefore, we ensure that tests which are not set up
  * properly are skipped.
  *
+ * @group simpletest
  * @see \Drupal\simpletest\WebTestBase
  */
 class BrokenSetUpTest extends WebTestBase {
@@ -35,14 +36,6 @@ class BrokenSetUpTest extends WebTestBase {
    */
   protected $sharedTriggerFile;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Broken SimpleTest method',
-      'description' => 'Tests a test case that does not call parent::setUp().',
-      'group' => 'SimpleTest'
-    );
-  }
-
   function setUp() {
     // If the test is being run from the main site, set up normally.
     if (!$this->isInChildSite()) {
diff --git a/core/modules/simpletest/src/Tests/BrowserTest.php b/core/modules/simpletest/src/Tests/BrowserTest.php
index ef484a8..d744550 100644
--- a/core/modules/simpletest/src/Tests/BrowserTest.php
+++ b/core/modules/simpletest/src/Tests/BrowserTest.php
@@ -10,17 +10,11 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test internal testing framework browser.
+ * Tests the internal browser of the testing framework.
+ *
+ * @group simpletest
  */
 class BrowserTest extends WebTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'SimpleTest browser',
-      'description' => 'Test the internal browser of the testing framework.',
-      'group' => 'SimpleTest',
-    );
-  }
-
   /**
    * Test \Drupal\simpletest\WebTestBase::getAbsoluteUrl().
    */
diff --git a/core/modules/simpletest/src/Tests/FolderTest.php b/core/modules/simpletest/src/Tests/FolderTest.php
index 878bda7..9df2b33 100644
--- a/core/modules/simpletest/src/Tests/FolderTest.php
+++ b/core/modules/simpletest/src/Tests/FolderTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test Folder creation
+ * This test will check SimpleTest's treatment of hook_install during setUp. 
+ * Image module is used for test.
+ *
+ * @group simpletest
  */
 class FolderTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class FolderTest extends WebTestBase {
    */
   public static $modules = array('image');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Testing SimpleTest setUp',
-      'description' => "This test will check SimpleTest's treatment of hook_install during setUp.  Image module is used for test.",
-      'group' => 'SimpleTest',
-    );
-  }
-
   function testFolderSetup() {
     $directory = file_default_scheme() . '://styles';
     $this->assertTrue(file_prepare_directory($directory, FALSE), 'Directory created.');
diff --git a/core/modules/simpletest/src/Tests/InstallationProfileModuleTestsTest.php b/core/modules/simpletest/src/Tests/InstallationProfileModuleTestsTest.php
index 994fb36..454135c 100644
--- a/core/modules/simpletest/src/Tests/InstallationProfileModuleTestsTest.php
+++ b/core/modules/simpletest/src/Tests/InstallationProfileModuleTestsTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Verifies that tests bundled with installation profile modules are found.
+ *
+ * @group simpletest
  */
 class InstallationProfileModuleTestsTest extends WebTestBase {
 
@@ -35,14 +37,6 @@ class InstallationProfileModuleTestsTest extends WebTestBase {
    */
   protected $profile = 'testing';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Installation profile module tests',
-      'description' => 'Verifies that tests bundled with installation profile modules are found.',
-      'group' => 'SimpleTest',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
@@ -55,7 +49,7 @@ function setUp() {
    */
   function testInstallationProfileTests() {
     $this->drupalGet('admin/config/development/testing');
-    $this->assertText('Installation profile module tests helper');
+    $this->assertText('Drupal\drupal_system_listing_compatible_test\Tests\SystemListingCompatibleTest');
     $edit = array(
       'tests[Drupal\drupal_system_listing_compatible_test\Tests\SystemListingCompatibleTest]' => TRUE,
     );
diff --git a/core/modules/simpletest/src/Tests/KernelTestBaseTest.php b/core/modules/simpletest/src/Tests/KernelTestBaseTest.php
index 41347e0..6bff487 100644
--- a/core/modules/simpletest/src/Tests/KernelTestBaseTest.php
+++ b/core/modules/simpletest/src/Tests/KernelTestBaseTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests KernelTestBase functionality.
+ *
+ * @group simpletest
  */
 class KernelTestBaseTest extends KernelTestBase {
 
@@ -21,14 +23,6 @@ class KernelTestBaseTest extends KernelTestBase {
    */
   public static $modules = array('entity', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'KernelTestBase',
-      'description' => 'Tests KernelTestBase functionality.',
-      'group' => 'SimpleTest',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/simpletest/src/Tests/MailCaptureTest.php b/core/modules/simpletest/src/Tests/MailCaptureTest.php
index 6b4b304..bbbd026 100644
--- a/core/modules/simpletest/src/Tests/MailCaptureTest.php
+++ b/core/modules/simpletest/src/Tests/MailCaptureTest.php
@@ -10,21 +10,13 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests Simpletest email capturing (TestMailCollector) and assertion methods.
+ * Tests the SimpleTest email capturing logic, the assertMail assertion and the
+ * drupalGetMails function.
+ *
+ * @group simpletest
  */
 class MailCaptureTest extends WebTestBase {
   /**
-   * Implement getInfo().
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'SimpleTest email capturing',
-      'description' => 'Test the SimpleTest email capturing logic, the assertMail assertion and the drupalGetMails function.',
-      'group' => 'SimpleTest',
-    );
-  }
-
-  /**
    * Test to see if the wrapper function is executed correctly.
    */
   function testMailSend() {
diff --git a/core/modules/simpletest/src/Tests/MissingCheckedRequirementsTest.php b/core/modules/simpletest/src/Tests/MissingCheckedRequirementsTest.php
index 0f63734..bb81e11 100644
--- a/core/modules/simpletest/src/Tests/MissingCheckedRequirementsTest.php
+++ b/core/modules/simpletest/src/Tests/MissingCheckedRequirementsTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests missing requirements to run test.
+ * Tests a test case with missing requirements.
+ *
+ * @group simpletest
  */
 class MissingCheckedRequirementsTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class MissingCheckedRequirementsTest extends WebTestBase {
    */
   public static $modules = array('simpletest');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Broken requirements test',
-      'description' => 'Tests a test case with missing requirements.',
-      'group' => 'SimpleTest',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $admin_user = $this->drupalCreateUser(array('administer unit tests'));
diff --git a/core/modules/simpletest/src/Tests/MissingDependentModuleUnitTest.php b/core/modules/simpletest/src/Tests/MissingDependentModuleUnitTest.php
index 08874bd..6873170 100644
--- a/core/modules/simpletest/src/Tests/MissingDependentModuleUnitTest.php
+++ b/core/modules/simpletest/src/Tests/MissingDependentModuleUnitTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\UnitTestBase;
 
 /**
- * Test required modules for tests.
+ * This test should not load since it requires a module that is not found.
+ *
+ * @group simpletest
+ * @requires module simpletest_missing_module
  */
 class MissingDependentModuleUnitTest extends UnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Testing dependent module test',
-      'description' => 'This test should not load since it requires a module that is not found.',
-      'group' => 'SimpleTest',
-      'dependencies' => array('simpletest_missing_module'),
-    );
-  }
-
   /**
    * Ensure that this test will not be loaded despite its dependency.
    */
diff --git a/core/modules/simpletest/src/Tests/OtherInstallationProfileTestsTest.php b/core/modules/simpletest/src/Tests/OtherInstallationProfileTestsTest.php
index aa848e1..fecc468 100644
--- a/core/modules/simpletest/src/Tests/OtherInstallationProfileTestsTest.php
+++ b/core/modules/simpletest/src/Tests/OtherInstallationProfileTestsTest.php
@@ -12,6 +12,7 @@
 /**
  * Verifies that tests in other installation profiles are found.
  *
+ * @group simpletest
  * @see SimpleTestInstallationProfileModuleTestsTestCase
  */
 class OtherInstallationProfileTestsTest extends WebTestBase {
@@ -37,14 +38,6 @@ class OtherInstallationProfileTestsTest extends WebTestBase {
    */
   protected $profile = 'minimal';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Other Installation profiles',
-      'description' => 'Verifies that tests in modules contained in other installation profiles are found.',
-      'group' => 'SimpleTest',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
@@ -63,8 +56,7 @@ function testOtherInstallationProfile() {
 
     // Assert the existence of a test for a module in a different installation
     // profile than the current.
-    $this->drupalGet('admin/config/development/testing');
-    $this->assertText('Installation profile module tests helper');
+    $this->assertText('Drupal\drupal_system_listing_compatible_test\Tests\SystemListingCompatibleTest');
   }
 
 }
diff --git a/core/modules/simpletest/src/Tests/SimpleTestTest.php b/core/modules/simpletest/src/Tests/SimpleTestTest.php
index b2fffb3..7fe5278 100755
--- a/core/modules/simpletest/src/Tests/SimpleTestTest.php
+++ b/core/modules/simpletest/src/Tests/SimpleTestTest.php
@@ -10,7 +10,11 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Simpletest UI test runner and internal browser.
+ * Tests SimpleTest's web interface: check that the intended tests were run and
+ * ensure that test reports display the intended results. Also test SimpleTest's
+ * internal browser and APIs both explicitly and implicitly.
+ *
+ * @group simpletest
  */
 class SimpleTestTest extends WebTestBase {
 
@@ -33,17 +37,6 @@ class SimpleTestTest extends WebTestBase {
    */
   protected $test_ids = array();
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'SimpleTest functionality',
-      'description' => "Test SimpleTest's web interface: check that the intended tests were run and ensure that test reports display the intended results. Also test SimpleTest's internal browser and APIs both explicitly and implicitly.",
-      'group' => 'SimpleTest'
-    );
-  }
-
   function setUp() {
     if (!$this->isInChildSite()) {
       $php = <<<'EOD'
diff --git a/core/modules/simpletest/src/Tests/UserHelpersTest.php b/core/modules/simpletest/src/Tests/UserHelpersTest.php
index 269e009..fb15567 100644
--- a/core/modules/simpletest/src/Tests/UserHelpersTest.php
+++ b/core/modules/simpletest/src/Tests/UserHelpersTest.php
@@ -11,17 +11,11 @@
 
 /**
  * Tests User related helper methods of WebTestBase.
+ *
+ * @group simpletest
  */
 class UserHelpersTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User helper methods',
-      'description' => 'Tests User related helper methods of WebTestBase.',
-      'group' => 'SimpleTest',
-    );
-  }
-
   /**
    * Tests WebTestBase::drupalUserIsLoggedIn().
    */
diff --git a/core/modules/simpletest/tests/src/PhpUnitAutoloaderTest.php b/core/modules/simpletest/tests/src/PhpUnitAutoloaderTest.php
index bcb940e..3f1fa37 100644
--- a/core/modules/simpletest/tests/src/PhpUnitAutoloaderTest.php
+++ b/core/modules/simpletest/tests/src/PhpUnitAutoloaderTest.php
@@ -10,21 +10,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Test PHPUnit autoloader works correctly.
+ * Tests that classes are correctly loaded during PHPUnit initialization.
  *
- * @group Drupal
  * @group simpletest
  */
 class PhpUnitAutoloaderTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'PHPUnit autoloader',
-      'description' => 'Test that classes are correctly loaded during PHPUnit initialization.',
-      'group' => 'Simpletest',
-    );
-  }
-
   /**
    * Test loading of classes provided by test sub modules.
    */
diff --git a/core/modules/simpletest/tests/src/PhpUnitErrorTest.php b/core/modules/simpletest/tests/src/PhpUnitErrorTest.php
index fdd38fa..4139859 100644
--- a/core/modules/simpletest/tests/src/PhpUnitErrorTest.php
+++ b/core/modules/simpletest/tests/src/PhpUnitErrorTest.php
@@ -5,22 +5,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Test PHPUnit errors are getting converted to Simpletest errors.
+ * Tests PHPUnit errors are getting converted to Simpletest errors.
  *
- * @group Drupal
  * @group simpletest
  */
 class PhpUnitErrorTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'PHPUnit errors',
-      'description' => 'Test PHPUnit errors getting converted to Simpletest errors.',
-      'group' => 'Simpletest',
-
-    );
-  }
-
   /**
    * Test errors reported.
    *
diff --git a/core/modules/simpletest/tests/src/TestBaseTest.php b/core/modules/simpletest/tests/src/TestBaseTest.php
index 79b0345..50e08b5 100644
--- a/core/modules/simpletest/tests/src/TestBaseTest.php
+++ b/core/modules/simpletest/tests/src/TestBaseTest.php
@@ -10,10 +10,7 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests helper methods provided by the abstract TestBase class.
- *
  * @coversDefaultClass \Drupal\simpletest\TestBase
- * @group Drupal
  * @group simpletest
  */
 class TestBaseTest extends UnitTestCase {
@@ -25,15 +22,6 @@ class TestBaseTest extends UnitTestCase {
    */
   protected $stub;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'TestBase helper functions test',
-      'description' => 'Test helper functions provided by the TestBase abstract class.',
-      'group' => 'Simpletest',
-
-    );
-  }
-
   protected function setUp() {
     $this->stub = $this->getMockForAbstractClass('Drupal\simpletest\TestBase');
   }
diff --git a/core/modules/simpletest/tests/src/WebTestBaseTest.php b/core/modules/simpletest/tests/src/WebTestBaseTest.php
index 8bce846..7a1c84e 100644
--- a/core/modules/simpletest/tests/src/WebTestBaseTest.php
+++ b/core/modules/simpletest/tests/src/WebTestBaseTest.php
@@ -10,26 +10,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests helper methods provided by the abstract WebTestBase class.
- *
- * @group Drupal
- * @group simpletest
  * @coversDefaultClass \Drupal\simpletest\WebTestBase
+ * @group simpletest
  */
 class WebTestBaseTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'WebTestBase helper functions test',
-      'description' => 'Test helper functions provided by the WebTestBase abstract class.',
-      'group' => 'Simpletest',
-    );
-  }
-
-  /**
    * Provides data for testing the assertFieldByName() helper.
    *
    * @return array
diff --git a/core/modules/statistics/src/Tests/StatisticsAdminTest.php b/core/modules/statistics/src/Tests/StatisticsAdminTest.php
index ad68b72..5c8c2d1 100644
--- a/core/modules/statistics/src/Tests/StatisticsAdminTest.php
+++ b/core/modules/statistics/src/Tests/StatisticsAdminTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the statistics administration screen.
+ * Tests the statistics admin.
+ *
+ * @group statistics
  */
 class StatisticsAdminTest extends WebTestBase {
 
@@ -44,14 +46,6 @@ class StatisticsAdminTest extends WebTestBase {
    */
   protected $client;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Test statistics admin.',
-      'description' => 'Tests the statistics admin.',
-      'group' => 'Statistics'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/statistics/src/Tests/StatisticsLoggingTest.php b/core/modules/statistics/src/Tests/StatisticsLoggingTest.php
index 3effaf5..82a9764 100644
--- a/core/modules/statistics/src/Tests/StatisticsLoggingTest.php
+++ b/core/modules/statistics/src/Tests/StatisticsLoggingTest.php
@@ -10,10 +10,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests that logging via statistics_exit() works for all pages.
+ * Tests request logging for cached and uncached pages.
  *
  * We subclass WebTestBase rather than StatisticsTestBase, because we
  * want to test requests from an anonymous user.
+ *
+ * @group statistics
  */
 class StatisticsLoggingTest extends WebTestBase {
 
@@ -31,14 +33,6 @@ class StatisticsLoggingTest extends WebTestBase {
    */
   protected $client;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Statistics logging tests',
-      'description' => 'Tests request logging for cached and uncached pages.',
-      'group' => 'Statistics'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/statistics/src/Tests/StatisticsReportsTest.php b/core/modules/statistics/src/Tests/StatisticsReportsTest.php
index 3d8309a..520e6a4 100644
--- a/core/modules/statistics/src/Tests/StatisticsReportsTest.php
+++ b/core/modules/statistics/src/Tests/StatisticsReportsTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\statistics\Tests;
 
 /**
- * Tests that report pages render properly, and that access logging works.
+ * Tests display of statistics report blocks.
+ *
+ * @group statistics
  */
 class StatisticsReportsTest extends StatisticsTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Statistics reports tests',
-      'description' => 'Tests display of statistics report blocks.',
-      'group' => 'Statistics'
-    );
-  }
-
   /**
    * Tests the "popular content" block.
    */
diff --git a/core/modules/statistics/src/Tests/StatisticsTokenReplaceTest.php b/core/modules/statistics/src/Tests/StatisticsTokenReplaceTest.php
index e1f0f4b..05b6aab 100644
--- a/core/modules/statistics/src/Tests/StatisticsTokenReplaceTest.php
+++ b/core/modules/statistics/src/Tests/StatisticsTokenReplaceTest.php
@@ -8,17 +8,12 @@
 namespace Drupal\statistics\Tests;
 
 /**
- * Tests statistics token replacement in strings.
+ * Generates text using placeholders for dummy content to check statistics token
+ * replacement.
+ *
+ * @group statistics
  */
 class StatisticsTokenReplaceTest extends StatisticsTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Statistics token replacement',
-      'description' => 'Generates text using placeholders for dummy content to check statistics token replacement.',
-      'group' => 'Statistics',
-    );
-  }
-
   /**
    * Creates a node, then tests the statistics tokens generated from it.
    */
diff --git a/core/modules/statistics/src/Tests/Views/IntegrationTest.php b/core/modules/statistics/src/Tests/Views/IntegrationTest.php
index f7fec46..5ef8610 100644
--- a/core/modules/statistics/src/Tests/Views/IntegrationTest.php
+++ b/core/modules/statistics/src/Tests/Views/IntegrationTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests basic integration of views data from the statistics module.
  *
+ * @group statistics
  * @see
  */
 class IntegrationTest extends ViewTestBase {
@@ -46,14 +47,6 @@ class IntegrationTest extends ViewTestBase {
    */
   public static $testViews = array('test_statistics_integration');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Statistics: Integration tests',
-      'description' => 'Tests basic integration of views data from the statistics module.',
-      'group' => 'Views module integration',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/syslog/src/Tests/SyslogTest.php b/core/modules/syslog/src/Tests/SyslogTest.php
index 1e1a545..6d479ac 100644
--- a/core/modules/syslog/src/Tests/SyslogTest.php
+++ b/core/modules/syslog/src/Tests/SyslogTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Syslog module functionality.
+ * Tests syslog settings.
+ *
+ * @group syslog
  */
 class SyslogTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class SyslogTest extends WebTestBase {
    */
   public static $modules = array('syslog');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Syslog functionality',
-      'description' => 'Test syslog settings.',
-      'group' => 'Syslog'
-    );
-  }
-
   /**
    * Tests the syslog settings page.
    */
diff --git a/core/modules/system/src/Tests/Action/ActionUnitTest.php b/core/modules/system/src/Tests/Action/ActionUnitTest.php
index 70fc663..2a5934c 100644
--- a/core/modules/system/src/Tests/Action/ActionUnitTest.php
+++ b/core/modules/system/src/Tests/Action/ActionUnitTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests action plugins.
+ *
+ * @group Action
  */
 class ActionUnitTest extends DrupalUnitTestBase {
 
@@ -30,17 +32,6 @@ class ActionUnitTest extends DrupalUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Action Plugins',
-      'description' => 'Tests Action plugins.',
-      'group' => 'Action',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Ajax/CommandsTest.php b/core/modules/system/src/Tests/Ajax/CommandsTest.php
index eed4a5f..945a763 100644
--- a/core/modules/system/src/Tests/Ajax/CommandsTest.php
+++ b/core/modules/system/src/Tests/Ajax/CommandsTest.php
@@ -24,17 +24,11 @@
 use Drupal\Core\Ajax\SettingsCommand;
 
 /**
- * Tests Ajax framework commands.
+ * Performs tests on AJAX framework commands.
+ *
+ * @group Ajax
  */
 class CommandsTest extends AjaxTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'AJAX commands',
-      'description' => 'Performs tests on AJAX framework commands.',
-      'group' => 'AJAX',
-    );
-  }
-
   /**
    * Tests the various Ajax Commands.
    */
diff --git a/core/modules/system/src/Tests/Ajax/DialogTest.php b/core/modules/system/src/Tests/Ajax/DialogTest.php
index b41b6e2..127b863 100644
--- a/core/modules/system/src/Tests/Ajax/DialogTest.php
+++ b/core/modules/system/src/Tests/Ajax/DialogTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\Ajax;
 
 /**
- * Tests use of dialogs as wrappers for Ajax responses.
+ * Performs tests on opening and manipulating dialogs via AJAX commands.
+ *
+ * @group Ajax
  */
 class DialogTest extends AjaxTestBase {
 
@@ -20,17 +22,6 @@ class DialogTest extends AjaxTestBase {
   public static $modules = array('ajax_test', 'ajax_forms_test', 'contact');
 
   /**
-   * Declares test info.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'AJAX dialogs commands',
-      'description' => 'Performs tests on opening and manipulating dialogs via AJAX commands.',
-      'group' => 'AJAX',
-    );
-  }
-
-  /**
    * Test sending non-JS and AJAX requests to open and manipulate modals.
    */
   public function testDialog() {
diff --git a/core/modules/system/src/Tests/Ajax/ElementValidationTest.php b/core/modules/system/src/Tests/Ajax/ElementValidationTest.php
index a6e9daa..455ae46 100644
--- a/core/modules/system/src/Tests/Ajax/ElementValidationTest.php
+++ b/core/modules/system/src/Tests/Ajax/ElementValidationTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\Ajax;
 
 /**
- * Tests using ajax_test module.
+ * Various tests of AJAX behavior.
+ *
+ * @group Ajax
  */
 class ElementValidationTest extends AjaxTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Miscellaneous AJAX tests',
-      'description' => 'Various tests of AJAX behavior',
-      'group' => 'AJAX',
-    );
-  }
-
   /**
    * Tries to post an Ajax change to a form that has a validated element.
    *
diff --git a/core/modules/system/src/Tests/Ajax/FormValuesTest.php b/core/modules/system/src/Tests/Ajax/FormValuesTest.php
index 6fb3ab1..b1c2822 100644
--- a/core/modules/system/src/Tests/Ajax/FormValuesTest.php
+++ b/core/modules/system/src/Tests/Ajax/FormValuesTest.php
@@ -10,17 +10,11 @@
 use Drupal\Core\Ajax\DataCommand;
 
 /**
- * Tests that $form_state['values'] is properly delivered to $ajax['callback'].
+ * Tests that form values are properly delivered to AJAX callbacks.
+ *
+ * @group Ajax
  */
 class FormValuesTest extends AjaxTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'AJAX command form values',
-      'description' => 'Tests that form values are properly delivered to AJAX callbacks.',
-      'group' => 'AJAX',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Ajax/FrameworkTest.php b/core/modules/system/src/Tests/Ajax/FrameworkTest.php
index aa51ab5..f31148e 100644
--- a/core/modules/system/src/Tests/Ajax/FrameworkTest.php
+++ b/core/modules/system/src/Tests/Ajax/FrameworkTest.php
@@ -15,17 +15,11 @@
 use Drupal\Core\Ajax\SettingsCommand;
 
 /**
- * Tests primary Ajax framework functions.
+ * Performs tests on AJAX framework functions.
+ *
+ * @group Ajax
  */
 class FrameworkTest extends AjaxTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'AJAX framework',
-      'description' => 'Performs tests on AJAX framework functions.',
-      'group' => 'AJAX',
-    );
-  }
-
   /**
    * Ensures \Drupal\Core\Ajax\AjaxResponse::ajaxRender() returns JavaScript settings from the page request.
    */
diff --git a/core/modules/system/src/Tests/Ajax/MultiFormTest.php b/core/modules/system/src/Tests/Ajax/MultiFormTest.php
index dfbc423..bf55e6b 100644
--- a/core/modules/system/src/Tests/Ajax/MultiFormTest.php
+++ b/core/modules/system/src/Tests/Ajax/MultiFormTest.php
@@ -10,7 +10,10 @@
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 
 /**
- * Tests Ajax-enabled forms functionality with multiple instances of the form.
+ * Tests that AJAX-enabled forms work when multiple instances of the same form
+ * are on a page.
+ *
+ * @group Ajax
  */
 class MultiFormTest extends AjaxTestBase {
 
@@ -21,14 +24,6 @@ class MultiFormTest extends AjaxTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'AJAX multi form',
-      'description' => 'Tests that AJAX-enabled forms work when multiple instances of the same form are on a page.',
-      'group' => 'AJAX',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Batch/PageTest.php b/core/modules/system/src/Tests/Batch/PageTest.php
index 9c15510..1a30c6c 100644
--- a/core/modules/system/src/Tests/Batch/PageTest.php
+++ b/core/modules/system/src/Tests/Batch/PageTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Batch API Progress page.
+ * Tests the content of the progress page.
+ *
+ * @group Batch
  */
 class PageTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class PageTest extends WebTestBase {
    */
   public static $modules = array('batch_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Batch progress page',
-      'description' => 'Test the content of the progress page.',
-      'group' => 'Batch API',
-    );
-  }
-
   /**
    * Tests that the batch API progress page uses the correct theme.
    */
diff --git a/core/modules/system/src/Tests/Batch/ProcessingTest.php b/core/modules/system/src/Tests/Batch/ProcessingTest.php
index 8450b9c..837cad0 100644
--- a/core/modules/system/src/Tests/Batch/ProcessingTest.php
+++ b/core/modules/system/src/Tests/Batch/ProcessingTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Batch API.
+ * Tests batch processing in form and non-form workflow.
+ *
+ * @group Batch
  */
 class ProcessingTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ProcessingTest extends WebTestBase {
    */
   public static $modules = array('batch_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Batch processing',
-      'description' => 'Test batch processing in form and non-form workflow.',
-      'group' => 'Batch API',
-    );
-  }
-
   /**
    * Tests batches triggered outside of form submission.
    */
diff --git a/core/modules/system/src/Tests/Block/SystemMenuBlockTest.php b/core/modules/system/src/Tests/Block/SystemMenuBlockTest.php
index 943a7cc..0d1d00b 100644
--- a/core/modules/system/src/Tests/Block/SystemMenuBlockTest.php
+++ b/core/modules/system/src/Tests/Block/SystemMenuBlockTest.php
@@ -8,8 +8,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests \Drupal\system\Plugin\Block\SystemMenuBlock
+ * Tests \Drupal\system\Plugin\Block\SystemMenuBlock.
  *
+ * @group Block
  * @todo Expand test coverage to all SystemMenuBlock functionality, including
  *   block_menu_delete().
  *
@@ -25,14 +26,6 @@ class SystemMenuBlockTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'menu_link', 'block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'System menu block test',
-      'description' => 'Tests \Drupal\system\Plugin\Block\SystemMenuBlock.',
-      'group' => 'System blocks',
-    );
-  }
-
   /**
    * Tests calculation of a system menu block's configuration dependencies.
    */
diff --git a/core/modules/system/src/Tests/Bootstrap/GetFilenameUnitTest.php b/core/modules/system/src/Tests/Bootstrap/GetFilenameUnitTest.php
index c78a111..c499d38 100644
--- a/core/modules/system/src/Tests/Bootstrap/GetFilenameUnitTest.php
+++ b/core/modules/system/src/Tests/Bootstrap/GetFilenameUnitTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\UnitTestBase;
 
 /**
- * Tests drupal_get_filename()'s availability.
+ * Tests that drupal_get_filename() works correctly.
+ *
+ * @group Bootstrap
  */
 class GetFilenameUnitTest extends UnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Get filename test',
-      'description' => 'Test that drupal_get_filename() works correctly.',
-      'group' => 'Bootstrap',
-    );
-  }
-
   /**
    * Tests that drupal_get_filename() works when the file is not in database.
    */
diff --git a/core/modules/system/src/Tests/Bootstrap/PageCacheTest.php b/core/modules/system/src/Tests/Bootstrap/PageCacheTest.php
index f487a1e..3f31f86 100644
--- a/core/modules/system/src/Tests/Bootstrap/PageCacheTest.php
+++ b/core/modules/system/src/Tests/Bootstrap/PageCacheTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Enables the page cache and tests it with various HTTP requests.
+ *
+ * @group Bootstrap
  */
 class PageCacheTest extends WebTestBase {
 
@@ -25,14 +27,6 @@ class PageCacheTest extends WebTestBase {
    */
   public static $modules = array('test_page_test', 'system_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Page cache test',
-      'description' => 'Enable the page cache and test it with various HTTP requests.',
-      'group' => 'Bootstrap'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Bootstrap/ResettableStaticUnitTest.php b/core/modules/system/src/Tests/Bootstrap/ResettableStaticUnitTest.php
index 23a84b8..8613902 100644
--- a/core/modules/system/src/Tests/Bootstrap/ResettableStaticUnitTest.php
+++ b/core/modules/system/src/Tests/Bootstrap/ResettableStaticUnitTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\UnitTestBase;
 
 /**
- * Tests that resetting static variables works.
+ * Tests that drupal_static() and drupal_static_reset() work.
+ *
+ * @group Bootstrap
  */
 class ResettableStaticUnitTest extends UnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Resettable static variables test',
-      'description' => 'Test that drupal_static() and drupal_static_reset() work.',
-      'group' => 'Bootstrap',
-    );
-  }
-
   /**
    * Tests drupal_static() function.
    *
diff --git a/core/modules/system/src/Tests/Cache/ApcuBackendUnitTest.php b/core/modules/system/src/Tests/Cache/ApcuBackendUnitTest.php
index 2aae663..134de2c 100644
--- a/core/modules/system/src/Tests/Cache/ApcuBackendUnitTest.php
+++ b/core/modules/system/src/Tests/Cache/ApcuBackendUnitTest.php
@@ -11,17 +11,11 @@
 
 /**
  * Tests the APCu cache backend.
+ *
+ * @group Cache
  */
 class ApcuBackendUnitTest extends GenericCacheBackendUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'APCu cache backend',
-      'description' => 'Tests the APCu cache backend.',
-      'group' => 'Cache',
-    );
-  }
-
   protected function checkRequirements() {
     $requirements = parent::checkRequirements();
     if (!extension_loaded('apc')) {
diff --git a/core/modules/system/src/Tests/Cache/BackendChainUnitTest.php b/core/modules/system/src/Tests/Cache/BackendChainUnitTest.php
index 3323b1a..cbfaf16 100644
--- a/core/modules/system/src/Tests/Cache/BackendChainUnitTest.php
+++ b/core/modules/system/src/Tests/Cache/BackendChainUnitTest.php
@@ -11,18 +11,12 @@
 use Drupal\Core\Cache\MemoryBackend;
 
 /**
- * Tests BackendChain using GenericCacheBackendUnitTestBase.
+ * Unit test of the backend chain using the generic cache unit test base.
+ *
+ * @group Cache
  */
 class BackendChainUnitTest extends GenericCacheBackendUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Backend chain',
-      'description' => 'Unit test of the backend chain using the generic cache unit test base.',
-      'group' => 'Cache',
-    );
-  }
-
   protected function createCacheBackend($bin) {
     $chain = new BackendChain($bin);
 
diff --git a/core/modules/system/src/Tests/Cache/ClearTest.php b/core/modules/system/src/Tests/Cache/ClearTest.php
index f8e9499..740ec8e 100644
--- a/core/modules/system/src/Tests/Cache/ClearTest.php
+++ b/core/modules/system/src/Tests/Cache/ClearTest.php
@@ -8,20 +8,14 @@
 namespace Drupal\system\Tests\Cache;
 
 /**
- * Tests cache clearing methods.
+ * Tests our clearing is done the proper way.
+ *
+ * @group Cache
  */
 use Drupal\Core\Cache\Cache;
 
 class ClearTest extends CacheTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Cache clear test',
-      'description' => 'Check our clearing is done the proper way.',
-      'group' => 'Cache'
-    );
-  }
-
   function setUp() {
     $this->default_bin = 'render';
     $this->default_value = $this->randomName(10);
diff --git a/core/modules/system/src/Tests/Cache/DatabaseBackendTagTest.php b/core/modules/system/src/Tests/Cache/DatabaseBackendTagTest.php
index 3b2b178..e110d9e 100644
--- a/core/modules/system/src/Tests/Cache/DatabaseBackendTagTest.php
+++ b/core/modules/system/src/Tests/Cache/DatabaseBackendTagTest.php
@@ -14,6 +14,8 @@
 
 /**
  * Tests DatabaseBackend cache tag implementation.
+ *
+ * @group Cache
  */
 class DatabaseBackendTagTest extends DrupalUnitTestBase {
 
@@ -24,14 +26,6 @@ class DatabaseBackendTagTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Database backend tag test',
-      'description' => 'Tests database backend cache tag implementation.',
-      'group' => 'Cache',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/system/src/Tests/Cache/DatabaseBackendUnitTest.php b/core/modules/system/src/Tests/Cache/DatabaseBackendUnitTest.php
index 762ae86..bd2952e 100644
--- a/core/modules/system/src/Tests/Cache/DatabaseBackendUnitTest.php
+++ b/core/modules/system/src/Tests/Cache/DatabaseBackendUnitTest.php
@@ -10,7 +10,9 @@
 use Drupal\Core\Cache\DatabaseBackend;
 
 /**
- * Tests DatabaseBackend using GenericCacheBackendUnitTestBase.
+ * Unit test of the database backend using the generic cache unit test base.
+ *
+ * @group Cache
  */
 class DatabaseBackendUnitTest extends GenericCacheBackendUnitTestBase {
 
@@ -21,14 +23,6 @@ class DatabaseBackendUnitTest extends GenericCacheBackendUnitTestBase {
    */
   public static $modules = array('system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Database backend',
-      'description' => 'Unit test of the database backend using the generic cache unit test base.',
-      'group' => 'Cache',
-    );
-  }
-
   /**
    * Creates a new instance of DatabaseBackend.
    *
diff --git a/core/modules/system/src/Tests/Cache/MemoryBackendUnitTest.php b/core/modules/system/src/Tests/Cache/MemoryBackendUnitTest.php
index d3a29e3..85edfde 100644
--- a/core/modules/system/src/Tests/Cache/MemoryBackendUnitTest.php
+++ b/core/modules/system/src/Tests/Cache/MemoryBackendUnitTest.php
@@ -10,18 +10,12 @@
 use Drupal\Core\Cache\MemoryBackend;
 
 /**
- * Tests MemoryBackend using GenericCacheBackendUnitTestBase.
+ * Unit test of the memory cache backend using the generic cache unit test base.
+ *
+ * @group Cache
  */
 class MemoryBackendUnitTest extends GenericCacheBackendUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Memory cache backend',
-      'description' => 'Unit test of the memory cache backend using the generic cache unit test base.',
-      'group' => 'Cache',
-    );
-  }
-
   /**
    * Creates a new instance of MemoryBackend.
    *
diff --git a/core/modules/system/src/Tests/Cache/PageCacheTagsIntegrationTest.php b/core/modules/system/src/Tests/Cache/PageCacheTagsIntegrationTest.php
index bc384ef..6dbfb51 100644
--- a/core/modules/system/src/Tests/Cache/PageCacheTagsIntegrationTest.php
+++ b/core/modules/system/src/Tests/Cache/PageCacheTagsIntegrationTest.php
@@ -13,6 +13,7 @@
 /**
  * Enables the page cache and tests its cache tags in various scenarios.
  *
+ * @group Cache
  * @see \Drupal\system\Tests\Bootstrap\PageCacheTest
  * @see \Drupal\node\Tests\NodePageCacheTest
  * @see \Drupal\menu_ui\Tests\MenuTest::testMenuBlockPageCacheTags()
@@ -23,14 +24,6 @@ class PageCacheTagsIntegrationTest extends WebTestBase {
 
   protected $dumpHeaders = TRUE;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Page cache tags integration test',
-      'description' => 'Enable the page cache and test its cache tags in various scenarios.',
-      'group' => 'Cache',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Cache/PhpBackendUnitTest.php b/core/modules/system/src/Tests/Cache/PhpBackendUnitTest.php
index 82c877c..57df19b 100644
--- a/core/modules/system/src/Tests/Cache/PhpBackendUnitTest.php
+++ b/core/modules/system/src/Tests/Cache/PhpBackendUnitTest.php
@@ -10,18 +10,12 @@
 use Drupal\Core\Cache\PhpBackend;
 
 /**
- * Tests PhpBackendUnitTest using GenericCacheBackendUnitTestBase.
+ * Unit test of the PHP cache backend using the generic cache unit test base.
+ *
+ * @group Cache
  */
 class PhpBackendUnitTest extends GenericCacheBackendUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Php cache backend',
-      'description' => 'Unit test of the PHP cache backend using the generic cache unit test base.',
-      'group' => 'Cache',
-    );
-  }
-
   /**
    * Creates a new instance of MemoryBackend.
    *
diff --git a/core/modules/system/src/Tests/Common/AddFeedTest.php b/core/modules/system/src/Tests/Common/AddFeedTest.php
index 9997813..3dd0c67 100644
--- a/core/modules/system/src/Tests/Common/AddFeedTest.php
+++ b/core/modules/system/src/Tests/Common/AddFeedTest.php
@@ -12,17 +12,11 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests drupal_add_feed().
+ * Make sure that drupal_add_feed() works correctly with various constructs.
+ *
+ * @group Common
  */
 class AddFeedTest extends WebTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'drupal_add_feed() tests',
-      'description' => 'Make sure that drupal_add_feed() works correctly with various constructs.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests drupal_add_feed() with paths, URLs, and titles.
    */
diff --git a/core/modules/system/src/Tests/Common/AlterTest.php b/core/modules/system/src/Tests/Common/AlterTest.php
index e02c590..d291275 100644
--- a/core/modules/system/src/Tests/Common/AlterTest.php
+++ b/core/modules/system/src/Tests/Common/AlterTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests alteration of arguments passed to \Drupal::moduleHandler->alter().
+ *
+ * @group Common
  */
 class AlterTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class AlterTest extends WebTestBase {
    */
   public static $modules = array('block', 'common_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Alter hook functionality',
-      'description' => 'Tests alteration of arguments passed to \Drupal::moduleHandler->alter().',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests if the theme has been altered.
    */
diff --git a/core/modules/system/src/Tests/Common/CascadingStylesheetsTest.php b/core/modules/system/src/Tests/Common/CascadingStylesheetsTest.php
index 9b7e454..d2b3614 100644
--- a/core/modules/system/src/Tests/Common/CascadingStylesheetsTest.php
+++ b/core/modules/system/src/Tests/Common/CascadingStylesheetsTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests the Drupal CSS system.
+ * Tests adding various cascading stylesheets to the page.
+ *
+ * @group Common
  */
 class CascadingStylesheetsTest extends DrupalUnitTestBase {
 
@@ -22,14 +24,6 @@ class CascadingStylesheetsTest extends DrupalUnitTestBase {
    */
   public static $modules = array('language', 'system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Cascading stylesheets',
-      'description' => 'Tests adding various cascading stylesheets to the page.',
-      'group' => 'Common',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Reset _drupal_add_css() before each test.
diff --git a/core/modules/system/src/Tests/Common/FormatDateTest.php b/core/modules/system/src/Tests/Common/FormatDateTest.php
index 7fd5683..fa5257d 100644
--- a/core/modules/system/src/Tests/Common/FormatDateTest.php
+++ b/core/modules/system/src/Tests/Common/FormatDateTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the format_date() function.
+ *
+ * @group Common
  */
 class FormatDateTest extends WebTestBase {
 
@@ -28,14 +30,6 @@ class FormatDateTest extends WebTestBase {
    */
   const LANGCODE = 'xx';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Format date',
-      'description' => 'Test the format_date() function.',
-      'group' => 'Common',
-    );
-  }
-
   function setUp() {
     parent::setUp('language');
 
diff --git a/core/modules/system/src/Tests/Common/HtmlIdentifierUnitTest.php b/core/modules/system/src/Tests/Common/HtmlIdentifierUnitTest.php
index ec9bbb4..c7fbbf9 100644
--- a/core/modules/system/src/Tests/Common/HtmlIdentifierUnitTest.php
+++ b/core/modules/system/src/Tests/Common/HtmlIdentifierUnitTest.php
@@ -11,17 +11,12 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests cleaning HTML identifiers.
+ * Tests the functions drupal_html_class(), drupal_html_id() and
+ * drupal_clean_css_identifier() for expected behavior.
+ *
+ * @group Common
  */
 class HtmlIdentifierUnitTest extends UnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'HTML identifiers',
-      'description' => 'Test the functions drupal_html_class(), drupal_html_id() and drupal_clean_css_identifier() for expected behavior',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/system/src/Tests/Common/JavaScriptTest.php b/core/modules/system/src/Tests/Common/JavaScriptTest.php
index f6f3da8..2f5dcae 100644
--- a/core/modules/system/src/Tests/Common/JavaScriptTest.php
+++ b/core/modules/system/src/Tests/Common/JavaScriptTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the JavaScript system.
+ *
+ * @group Common
  */
 class JavaScriptTest extends DrupalUnitTestBase {
 
@@ -28,14 +30,6 @@ class JavaScriptTest extends DrupalUnitTestBase {
    */
   protected $preprocess_js = NULL;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'JavaScript',
-      'description' => 'Tests the JavaScript system.',
-      'group' => 'Common',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // There are dependencies in drupal_get_js() on the theme layer so we need
diff --git a/core/modules/system/src/Tests/Common/MergeAttachmentsTest.php b/core/modules/system/src/Tests/Common/MergeAttachmentsTest.php
index 0aa9971..7eebe32 100644
--- a/core/modules/system/src/Tests/Common/MergeAttachmentsTest.php
+++ b/core/modules/system/src/Tests/Common/MergeAttachmentsTest.php
@@ -11,17 +11,11 @@
 
 /**
  * Tests the merging of attachments.
+ *
+ * @group Common
  */
 class MergeAttachmentsTest extends DrupalUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Attachment merging',
-      'description' => 'Tests the merging of attachments.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests justs library asset merging.
    */
diff --git a/core/modules/system/src/Tests/Common/NoJavaScriptAnonymousTest.php b/core/modules/system/src/Tests/Common/NoJavaScriptAnonymousTest.php
index a13e38a..a143f36 100644
--- a/core/modules/system/src/Tests/Common/NoJavaScriptAnonymousTest.php
+++ b/core/modules/system/src/Tests/Common/NoJavaScriptAnonymousTest.php
@@ -10,20 +10,15 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests that anonymous users are not served any JavaScript.
+ * Tests that anonymous users are not served any JavaScript in the Standard
+ * installation profile.
+ *
+ * @group Common
  */
 class NoJavaScriptAnonymousTest extends WebTestBase {
 
   protected $profile = 'standard';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'No JavaScript for anonymous users in Standard profile',
-      'description' => 'Tests that anonymous users are not served any JavaScript in the Standard installation profile.',
-      'group' => 'Common',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Common/RegionContentTest.php b/core/modules/system/src/Tests/Common/RegionContentTest.php
index e8b8201..6b2d3a4 100644
--- a/core/modules/system/src/Tests/Common/RegionContentTest.php
+++ b/core/modules/system/src/Tests/Common/RegionContentTest.php
@@ -10,17 +10,11 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests drupal_add_region_content() and drupal_get_region_content().
+ * Tests setting and retrieving content from theme regions.
+ *
+ * @group Common
  */
 class RegionContentTest extends WebTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Region content',
-      'description' => 'Tests setting and retrieving content from theme regions.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests setting and retrieving content for theme regions.
    */
diff --git a/core/modules/system/src/Tests/Common/RenderElementTypesTest.php b/core/modules/system/src/Tests/Common/RenderElementTypesTest.php
index 15a1904..83a9cdf 100644
--- a/core/modules/system/src/Tests/Common/RenderElementTypesTest.php
+++ b/core/modules/system/src/Tests/Common/RenderElementTypesTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the markup of core render element types passed to drupal_render().
+ *
+ * @group Common
  */
 class RenderElementTypesTest extends DrupalUnitTestBase {
 
@@ -22,14 +24,6 @@ class RenderElementTypesTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Render element types',
-      'description' => 'Tests the markup of core render element types passed to drupal_render().',
-      'group' => 'Common',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->installConfig(array('system'));
diff --git a/core/modules/system/src/Tests/Common/RenderTest.php b/core/modules/system/src/Tests/Common/RenderTest.php
index 7aadd03..e673208 100644
--- a/core/modules/system/src/Tests/Common/RenderTest.php
+++ b/core/modules/system/src/Tests/Common/RenderTest.php
@@ -13,7 +13,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests drupal_render().
+ * Performs functional tests on drupal_render().
+ *
+ * @group Common
  */
 class RenderTest extends DrupalUnitTestBase {
 
@@ -24,14 +26,6 @@ class RenderTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'common_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'drupal_render()',
-      'description' => 'Performs functional tests on drupal_render().',
-      'group' => 'Common',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // There are dependencies in drupal_get_js() on the theme layer so we need
diff --git a/core/modules/system/src/Tests/Common/RenderWebTest.php b/core/modules/system/src/Tests/Common/RenderWebTest.php
index 4eaba07..13ed788 100644
--- a/core/modules/system/src/Tests/Common/RenderWebTest.php
+++ b/core/modules/system/src/Tests/Common/RenderWebTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests drupal_render() in a full environment.
+ * Performs integration tests on drupal_render().
+ *
+ * @group Common
  */
 class RenderWebTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class RenderWebTest extends WebTestBase {
    */
   public static $modules = array('common_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'drupal_render() in a full environment',
-      'description' => 'Performs integration tests on drupal_render().',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests rendering form elements without passing through form_builder().
    */
diff --git a/core/modules/system/src/Tests/Common/SimpleTestErrorCollectorTest.php b/core/modules/system/src/Tests/Common/SimpleTestErrorCollectorTest.php
index b32c6fc..ae419ff 100644
--- a/core/modules/system/src/Tests/Common/SimpleTestErrorCollectorTest.php
+++ b/core/modules/system/src/Tests/Common/SimpleTestErrorCollectorTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests SimpleTest error and exception collector.
+ *
+ * @group Common
  */
 class SimpleTestErrorCollectorTest extends WebTestBase {
 
@@ -31,14 +33,6 @@ class SimpleTestErrorCollectorTest extends WebTestBase {
    */
   protected $collectedErrors = array();
 
-  public static function getInfo() {
-    return array(
-      'name' => 'SimpleTest error collector',
-      'description' => 'Performs tests on the Simpletest error and exception collector.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests that simpletest collects errors from the tested site.
    */
diff --git a/core/modules/system/src/Tests/Common/SizeUnitTest.php b/core/modules/system/src/Tests/Common/SizeUnitTest.php
index c170fc4..72e4d3b 100644
--- a/core/modules/system/src/Tests/Common/SizeUnitTest.php
+++ b/core/modules/system/src/Tests/Common/SizeUnitTest.php
@@ -11,20 +11,15 @@
 use Drupal\simpletest\UnitTestBase;
 
 /**
- * Tests file size parsing and formatting functions.
+ * Parse a predefined amount of bytes and compare the output with the expected
+ * value.
+ *
+ * @group Common
  */
 class SizeUnitTest extends UnitTestBase {
   protected $exact_test_cases;
   protected $rounded_test_cases;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Size parsing test',
-      'description' => 'Parse a predefined amount of bytes and compare the output with the expected value.',
-      'group' => 'Common',
-    );
-  }
-
   function setUp() {
     $kb = Bytes::KILOBYTE;
     $this->exact_test_cases = array(
diff --git a/core/modules/system/src/Tests/Common/SystemListingTest.php b/core/modules/system/src/Tests/Common/SystemListingTest.php
index 4aac4ce..fc1cebf 100644
--- a/core/modules/system/src/Tests/Common/SystemListingTest.php
+++ b/core/modules/system/src/Tests/Common/SystemListingTest.php
@@ -12,16 +12,10 @@
 
 /**
  * Tests scanning system directories in drupal_system_listing().
+ *
+ * @group Common
  */
 class SystemListingTest extends DrupalUnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Drupal system listing',
-      'description' => 'Tests scanning system directories in drupal_system_listing().',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests that files in different directories take precedence as expected.
    */
diff --git a/core/modules/system/src/Tests/Common/TableSortExtenderUnitTest.php b/core/modules/system/src/Tests/Common/TableSortExtenderUnitTest.php
index 28091bd..5ad5725 100644
--- a/core/modules/system/src/Tests/Common/TableSortExtenderUnitTest.php
+++ b/core/modules/system/src/Tests/Common/TableSortExtenderUnitTest.php
@@ -12,18 +12,12 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests table sorting features implemented in tablesort.inc.
+ * Tests table sorting.
+ *
+ * @group Common
  */
 class TableSortExtenderUnitTest extends UnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Tablesort',
-      'description' => 'Tests table sorting.',
-      'group' => 'System',
-    );
-  }
-
   /**
    * Tests tablesort_init().
    */
diff --git a/core/modules/system/src/Tests/Common/UrlTest.php b/core/modules/system/src/Tests/Common/UrlTest.php
index 7cda6a3..0457146 100644
--- a/core/modules/system/src/Tests/Common/UrlTest.php
+++ b/core/modules/system/src/Tests/Common/UrlTest.php
@@ -12,24 +12,21 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for URL generation functions.
+ * Confirm that url(),
+ * \Drupal\Component\Utility\UrlHelper::filterQueryParameters(),
+ * \Drupal\Component\Utility\UrlHelper::buildQuery(), and l() work correctly
+ * with various input.
  *
  * url() calls \Drupal::moduleHandler()->getImplementations(),
  * which may issue a db query, which requires
  * inheriting from a web test case rather than a unit test case.
+ *
+ * @group Common
  */
 class UrlTest extends WebTestBase {
 
   public static $modules = array('common_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'URL generation tests',
-      'description' => 'Confirm that url(), \Drupal\Component\Utility\UrlHelper::filterQueryParameters(), \Drupal\Component\Utility\UrlHelper::buildQuery(), and l() work correctly with various input.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Confirms that invalid URLs are filtered in link generating functions.
    */
diff --git a/core/modules/system/src/Tests/Common/WriteRecordTest.php b/core/modules/system/src/Tests/Common/WriteRecordTest.php
index f4ac5ff..59d37da 100644
--- a/core/modules/system/src/Tests/Common/WriteRecordTest.php
+++ b/core/modules/system/src/Tests/Common/WriteRecordTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests writing of data records with drupal_write_record().
+ *
+ * @group Common
  */
 class WriteRecordTest extends DrupalUnitTestBase {
 
@@ -21,14 +23,6 @@ class WriteRecordTest extends DrupalUnitTestBase {
    */
   public static $modules = array('database_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Data record write functionality',
-      'description' => 'Tests writing of data records with drupal_write_record().',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests the drupal_write_record() API function.
    */
diff --git a/core/modules/system/src/Tests/Common/XssUnitTest.php b/core/modules/system/src/Tests/Common/XssUnitTest.php
index d54cc74..6f22713 100644
--- a/core/modules/system/src/Tests/Common/XssUnitTest.php
+++ b/core/modules/system/src/Tests/Common/XssUnitTest.php
@@ -11,7 +11,10 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests for \Drupal\Component\Utility\Xss::filter() and check_url().
+ * Confirm that \Drupal\Component\Utility\Xss::filter() and check_url() work
+ * correctly, including invalid multi-byte sequences.
+ *
+ * @group Common
  */
 class XssUnitTest extends DrupalUnitTestBase {
 
@@ -22,14 +25,6 @@ class XssUnitTest extends DrupalUnitTestBase {
    */
   public static $modules = array('filter', 'system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'String filtering tests',
-      'description' => 'Confirm that \Drupal\Component\Utility\Xss::filter() and check_url() work correctly, including invalid multi-byte sequences.',
-      'group' => 'Common',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->installConfig(array('system'));
diff --git a/core/modules/system/src/Tests/Condition/ConditionFormTest.php b/core/modules/system/src/Tests/Condition/ConditionFormTest.php
index 2ad0d06..3bc69f4 100644
--- a/core/modules/system/src/Tests/Condition/ConditionFormTest.php
+++ b/core/modules/system/src/Tests/Condition/ConditionFormTest.php
@@ -10,24 +10,18 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests condition forms, configuration and execution.
+ * Tests that condtion plugins basic form handling is working.
  *
  * Checks condition forms and submission and gives a very cursory check to make
  * sure the configuration that was submitted actually causes the condition to
  * validate correctly.
+ *
+ * @group Condition
  */
 class ConditionFormTest extends WebTestBase {
 
   public static $modules = array('node', 'condition_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Condition Form Tests',
-      'description' => 'Tests that condtion plugins basic form handling is working.',
-      'group' => 'Condition API',
-    );
-  }
-
   /**
    * Submit the condition_node_type_test_form to test condition forms.
    */
diff --git a/core/modules/system/src/Tests/Database/AlterTest.php b/core/modules/system/src/Tests/Database/AlterTest.php
index 4e45885..6371b73 100644
--- a/core/modules/system/src/Tests/Database/AlterTest.php
+++ b/core/modules/system/src/Tests/Database/AlterTest.php
@@ -8,20 +8,13 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests alter queries.
+ * Tests the hook_query_alter capabilities of the Select builder.
  *
+ * @group Database
  * @see database_test_query_alter()
  */
 class AlterTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Query altering tests',
-      'description' => 'Test the hook_query_alter capabilities of the Select builder.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests that we can do basic alters.
    */
diff --git a/core/modules/system/src/Tests/Database/BasicSyntaxTest.php b/core/modules/system/src/Tests/Database/BasicSyntaxTest.php
index 67286c5..ca6275c 100644
--- a/core/modules/system/src/Tests/Database/BasicSyntaxTest.php
+++ b/core/modules/system/src/Tests/Database/BasicSyntaxTest.php
@@ -8,21 +8,15 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests how the current database driver interprets the SQL syntax.
+ * Tests SQL syntax interpretation.
  *
  * In order to ensure consistent SQL handling throughout Drupal
  * across multiple kinds of database systems, we test that the
  * database system interprets SQL syntax in an expected fashion.
+ *
+ * @group Database
  */
 class BasicSyntaxTest extends DatabaseTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Basic SQL syntax tests',
-      'description' => 'Test SQL syntax interpretation.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests string concatenation.
    */
diff --git a/core/modules/system/src/Tests/Database/CaseSensitivityTest.php b/core/modules/system/src/Tests/Database/CaseSensitivityTest.php
index 1fe31c2..6997073 100644
--- a/core/modules/system/src/Tests/Database/CaseSensitivityTest.php
+++ b/core/modules/system/src/Tests/Database/CaseSensitivityTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests case sensitivity handling.
+ * Tests handling case sensitive collation.
+ *
+ * @group Database
  */
 class CaseSensitivityTest extends DatabaseTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Case sensitivity',
-      'description' => 'Test handling case sensitive collation.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests BINARY collation in MySQL.
    */
diff --git a/core/modules/system/src/Tests/Database/ConnectionTest.php b/core/modules/system/src/Tests/Database/ConnectionTest.php
index 03d6a4d..4c93094 100644
--- a/core/modules/system/src/Tests/Database/ConnectionTest.php
+++ b/core/modules/system/src/Tests/Database/ConnectionTest.php
@@ -10,18 +10,12 @@
 use Drupal\Core\Database\Database;
 
 /**
- * Tests connection management.
+ * Tests of the core database system.
+ *
+ * @group Database
  */
 class ConnectionTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Connection tests',
-      'description' => 'Tests of the core database system.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests that connections return appropriate connection objects.
    */
diff --git a/core/modules/system/src/Tests/Database/ConnectionUnitTest.php b/core/modules/system/src/Tests/Database/ConnectionUnitTest.php
index cb8b01f..a7a053d 100644
--- a/core/modules/system/src/Tests/Database/ConnectionUnitTest.php
+++ b/core/modules/system/src/Tests/Database/ConnectionUnitTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests management of database connections.
+ *
+ * @group Database
  */
 class ConnectionUnitTest extends UnitTestBase {
 
@@ -21,14 +23,6 @@ class ConnectionUnitTest extends UnitTestBase {
   protected $monitor;
   protected $originalCount;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Connection unit tests',
-      'description' => 'Tests management of database connections.',
-      'group' => 'Database',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Database/DatabaseExceptionWrapperTest.php b/core/modules/system/src/Tests/Database/DatabaseExceptionWrapperTest.php
index 9d34e9a..34364bb 100644
--- a/core/modules/system/src/Tests/Database/DatabaseExceptionWrapperTest.php
+++ b/core/modules/system/src/Tests/Database/DatabaseExceptionWrapperTest.php
@@ -12,17 +12,11 @@
 use Drupal\simpletest\UnitTestBase;
 
 /**
- * Tests DatabaseExceptionWrapper thrown.
+ * Tests exceptions thrown by queries.
+ *
+ * @group Database
  */
 class DatabaseExceptionWrapperTest extends UnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Database exceptiontests',
-      'description' => 'Tests exceptions thrown by queries.',
-      'group' => 'Database',
-    );
-  }
-
   function testDatabaseExceptionWrapper() {
     $connection = Database::getConnection();
     $query = $connection->prepare('bananas');
diff --git a/core/modules/system/src/Tests/Database/DeleteTruncateTest.php b/core/modules/system/src/Tests/Database/DeleteTruncateTest.php
index 6f98e7c..5c7b977 100755
--- a/core/modules/system/src/Tests/Database/DeleteTruncateTest.php
+++ b/core/modules/system/src/Tests/Database/DeleteTruncateTest.php
@@ -17,17 +17,11 @@
  * The TRUNCATE tests are not extensive either, because the behavior of
  * TRUNCATE queries is not consistent across database engines. We only test
  * that a TRUNCATE query actually deletes all rows from the target table.
+ *
+ * @group Database
  */
 class DeleteTruncateTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Delete/Truncate tests',
-      'description' => 'Test the Delete and Truncate query builders.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Confirms that we can use a subselect in a delete successfully.
    */
diff --git a/core/modules/system/src/Tests/Database/FetchTest.php b/core/modules/system/src/Tests/Database/FetchTest.php
index e96cfbe..30ae0ac 100644
--- a/core/modules/system/src/Tests/Database/FetchTest.php
+++ b/core/modules/system/src/Tests/Database/FetchTest.php
@@ -11,20 +11,14 @@
 use Drupal\Core\Database\StatementInterface;
 
 /**
- * Tests fetch actions.
+ * Tests the Database system's various fetch capabilities.
  *
  * We get timeout errors if we try to run too many tests at once.
+ *
+ * @group Database
  */
 class FetchTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Fetch tests',
-      'description' => 'Test the Database system\'s various fetch capabilities.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Confirms that we can fetch a record properly in default object mode.
    */
diff --git a/core/modules/system/src/Tests/Database/InsertDefaultsTest.php b/core/modules/system/src/Tests/Database/InsertDefaultsTest.php
index c664235..d5f60dd 100644
--- a/core/modules/system/src/Tests/Database/InsertDefaultsTest.php
+++ b/core/modules/system/src/Tests/Database/InsertDefaultsTest.php
@@ -10,18 +10,12 @@
 use Drupal\Core\Database\Query\NoFieldsException;
 
 /**
- * Tests insertion for database default values.
+ * Tests the Insert query builder with default values.
+ *
+ * @group Database
  */
 class InsertDefaultsTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Insert tests, default fields',
-      'description' => 'Test the Insert query builder with default values.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests that we can run a query that uses default values for everything.
    */
diff --git a/core/modules/system/src/Tests/Database/InsertLobTest.php b/core/modules/system/src/Tests/Database/InsertLobTest.php
index 63ffd29..2fcf182 100644
--- a/core/modules/system/src/Tests/Database/InsertLobTest.php
+++ b/core/modules/system/src/Tests/Database/InsertLobTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests inserts using LOB fields, which are weird on some databases.
+ * Tests the Insert query builder with LOB fields.
+ *
+ * @group Database
  */
 class InsertLobTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Insert tests, LOB fields',
-      'description' => 'Test the Insert query builder with LOB fields.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests that we can insert a single blob field successfully.
    */
diff --git a/core/modules/system/src/Tests/Database/InsertTest.php b/core/modules/system/src/Tests/Database/InsertTest.php
index 46f66fb..75b24db 100644
--- a/core/modules/system/src/Tests/Database/InsertTest.php
+++ b/core/modules/system/src/Tests/Database/InsertTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests the insert builder.
+ *
+ * @group Database
  */
 class InsertTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Insert tests',
-      'description' => 'Test the Insert query builder.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests very basic insert functionality.
    */
diff --git a/core/modules/system/src/Tests/Database/InvalidDataTest.php b/core/modules/system/src/Tests/Database/InvalidDataTest.php
index 00bf68f..cbc7226 100644
--- a/core/modules/system/src/Tests/Database/InvalidDataTest.php
+++ b/core/modules/system/src/Tests/Database/InvalidDataTest.php
@@ -10,17 +10,11 @@
 use Drupal\Core\Database\IntegrityConstraintViolationException;
 
 /**
- * Tests invalid data handling.
+ * Tests handling of some invalid data.
+ *
+ * @group Database
  */
 class InvalidDataTest extends DatabaseTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Invalid data',
-      'description' => 'Test handling of some invalid data.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests aborting of traditional SQL database systems with invalid data.
    */
diff --git a/core/modules/system/src/Tests/Database/LoggingTest.php b/core/modules/system/src/Tests/Database/LoggingTest.php
index 225d77d..c6034ec 100644
--- a/core/modules/system/src/Tests/Database/LoggingTest.php
+++ b/core/modules/system/src/Tests/Database/LoggingTest.php
@@ -10,18 +10,12 @@
 use Drupal\Core\Database\Database;
 
 /**
- * Tests query logging.
+ * Tests the query logging facility.
+ *
+ * @group Database
  */
 class LoggingTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Query logging',
-      'description' => 'Test the query logging facility.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests that we can log the existence of a query.
    */
diff --git a/core/modules/system/src/Tests/Database/MergeTest.php b/core/modules/system/src/Tests/Database/MergeTest.php
index a5b1ae8..b13c886 100644
--- a/core/modules/system/src/Tests/Database/MergeTest.php
+++ b/core/modules/system/src/Tests/Database/MergeTest.php
@@ -12,17 +12,11 @@
 
 /**
  * Tests the MERGE query builder.
+ *
+ * @group Database
  */
 class MergeTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Merge tests',
-      'description' => 'Test the Merge query builder.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Confirms that we can merge-insert a record successfully.
    */
diff --git a/core/modules/system/src/Tests/Database/NextIdTest.php b/core/modules/system/src/Tests/Database/NextIdTest.php
index 23205fb..7a5e83f 100644
--- a/core/modules/system/src/Tests/Database/NextIdTest.php
+++ b/core/modules/system/src/Tests/Database/NextIdTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Checks the sequences API.
+ * Tests the sequences API.
+ *
+ * @group Database
  */
 class NextIdTest extends DrupalUnitTestBase {
 
@@ -20,14 +22,6 @@ class NextIdTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Sequences API',
-      'description' => 'Test the secondary sequences API.',
-      'group' => 'Database',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installSchema('system', 'sequences');
diff --git a/core/modules/system/src/Tests/Database/QueryTest.php b/core/modules/system/src/Tests/Database/QueryTest.php
index 157267e..ddfd1a5 100644
--- a/core/modules/system/src/Tests/Database/QueryTest.php
+++ b/core/modules/system/src/Tests/Database/QueryTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests Drupal-specific SQL syntax tests.
+ * Tests Drupal's extended prepared statement syntax..
+ *
+ * @group Database
  */
 class QueryTest extends DatabaseTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom query syntax tests',
-      'description' => 'Test Drupal\'s extended prepared statement syntax..',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests that we can pass an array of values directly in the query.
    */
diff --git a/core/modules/system/src/Tests/Database/RangeQueryTest.php b/core/modules/system/src/Tests/Database/RangeQueryTest.php
index 7821dbc..c3f9d1d 100644
--- a/core/modules/system/src/Tests/Database/RangeQueryTest.php
+++ b/core/modules/system/src/Tests/Database/RangeQueryTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests range queries.
+ * Tests the Range query functionality.
+ *
+ * @group Database
  */
 class RangeQueryTest extends DatabaseTestBase {
 
@@ -19,14 +21,6 @@ class RangeQueryTest extends DatabaseTestBase {
    */
   public static $modules = array('database_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Range query test',
-      'description' => 'Test the Range query functionality.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Confirms that range queries work and return the correct result.
    */
diff --git a/core/modules/system/src/Tests/Database/RegressionTest.php b/core/modules/system/src/Tests/Database/RegressionTest.php
index f38b49f..0836572 100644
--- a/core/modules/system/src/Tests/Database/RegressionTest.php
+++ b/core/modules/system/src/Tests/Database/RegressionTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests for database regressions.
+ * Regression tests cases for the database layer.
+ *
+ * @group Database
  */
 class RegressionTest extends DatabaseTestBase {
 
@@ -19,14 +21,6 @@ class RegressionTest extends DatabaseTestBase {
    */
   public static $modules = array('node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Regression tests',
-      'description' => 'Regression tests cases for the database layer.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Ensures that non-ASCII UTF-8 data is stored in the database properly.
    */
diff --git a/core/modules/system/src/Tests/Database/SchemaTest.php b/core/modules/system/src/Tests/Database/SchemaTest.php
index 27826ad..7673323 100644
--- a/core/modules/system/src/Tests/Database/SchemaTest.php
+++ b/core/modules/system/src/Tests/Database/SchemaTest.php
@@ -13,7 +13,9 @@
 use Drupal\simpletest\UnitTestBase;
 
 /**
- * Tests the Schema API.
+ * Tests table creation and modification via the schema API.
+ *
+ * @group Database
  */
 class SchemaTest extends UnitTestBase {
 
@@ -22,14 +24,6 @@ class SchemaTest extends UnitTestBase {
    */
   var $counter;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Schema API',
-      'description' => 'Tests table creation and modification via the schema API.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests database interactions.
    */
diff --git a/core/modules/system/src/Tests/Database/SelectCloneTest.php b/core/modules/system/src/Tests/Database/SelectCloneTest.php
index 63e825a..ad13685 100644
--- a/core/modules/system/src/Tests/Database/SelectCloneTest.php
+++ b/core/modules/system/src/Tests/Database/SelectCloneTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Test cloning Select queries.
+ * Tests cloning Select queries.
+ *
+ * @group Database
  */
 class SelectCloneTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Select tests, cloning',
-      'description' => 'Test cloning Select queries.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Test that subqueries as value within conditions are cloned properly.
    */
diff --git a/core/modules/system/src/Tests/Database/SelectComplexTest.php b/core/modules/system/src/Tests/Database/SelectComplexTest.php
index 02fa607..13f6589 100644
--- a/core/modules/system/src/Tests/Database/SelectComplexTest.php
+++ b/core/modules/system/src/Tests/Database/SelectComplexTest.php
@@ -10,7 +10,9 @@
 use \Drupal\Core\Database\RowCountException;
 
 /**
- * Tests more complex select statements.
+ * Tests the Select query builder with more complex queries.
+ *
+ * @group Database
  */
 class SelectComplexTest extends DatabaseTestBase {
 
@@ -21,14 +23,6 @@ class SelectComplexTest extends DatabaseTestBase {
    */
   public static $modules = array('node_access_test', 'field');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Select tests, complex',
-      'description' => 'Test the Select query builder with more complex queries.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests simple JOIN statements.
    */
diff --git a/core/modules/system/src/Tests/Database/SelectOrderedTest.php b/core/modules/system/src/Tests/Database/SelectOrderedTest.php
index 9e20c8a..4436ce4 100644
--- a/core/modules/system/src/Tests/Database/SelectOrderedTest.php
+++ b/core/modules/system/src/Tests/Database/SelectOrderedTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests SELECT with ORDER BY clauses.
+ * Tests the Select query builder.
+ *
+ * @group Database
  */
 class SelectOrderedTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Select tests, ordered',
-      'description' => 'Test the Select query builder.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests basic ORDER BY.
    */
diff --git a/core/modules/system/src/Tests/Database/SelectPagerDefaultTest.php b/core/modules/system/src/Tests/Database/SelectPagerDefaultTest.php
index 79c93d2..306f1d4 100644
--- a/core/modules/system/src/Tests/Database/SelectPagerDefaultTest.php
+++ b/core/modules/system/src/Tests/Database/SelectPagerDefaultTest.php
@@ -10,17 +10,11 @@
 
 /**
  * Tests the pager query select extender.
+ *
+ * @group Database
  */
 class SelectPagerDefaultTest extends DatabaseWebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Pager query tests',
-      'description' => 'Test the pager query extender.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Confirms that a pager query returns the correct results.
    *
diff --git a/core/modules/system/src/Tests/Database/SelectSubqueryTest.php b/core/modules/system/src/Tests/Database/SelectSubqueryTest.php
index 544c7b1..caa44a7 100644
--- a/core/modules/system/src/Tests/Database/SelectSubqueryTest.php
+++ b/core/modules/system/src/Tests/Database/SelectSubqueryTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests for subselects in a dynamic SELECT query.
+ * Tests the Select query builder.
+ *
+ * @group Database
  */
 class SelectSubqueryTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Select tests, subqueries',
-      'description' => 'Test the Select query builder.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests that we can use a subquery in a FROM clause.
    */
diff --git a/core/modules/system/src/Tests/Database/SelectTableSortDefaultTest.php b/core/modules/system/src/Tests/Database/SelectTableSortDefaultTest.php
index 200a82a..2102667 100644
--- a/core/modules/system/src/Tests/Database/SelectTableSortDefaultTest.php
+++ b/core/modules/system/src/Tests/Database/SelectTableSortDefaultTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests the tablesort query extender.
+ *
+ * @group Database
  */
 class SelectTableSortDefaultTest extends DatabaseWebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Tablesort query tests',
-      'description' => 'Test the tablesort query extender.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Confirms that a tablesort query returns the correct results.
    *
diff --git a/core/modules/system/src/Tests/Database/SelectTest.php b/core/modules/system/src/Tests/Database/SelectTest.php
index 7b90e07..996d269 100644
--- a/core/modules/system/src/Tests/Database/SelectTest.php
+++ b/core/modules/system/src/Tests/Database/SelectTest.php
@@ -9,18 +9,12 @@
 use Drupal\Core\Database\InvalidQueryException;
 
 /**
- * Tests the SELECT builder.
+ * Tests the Select query builder.
+ *
+ * @group Database
  */
 class SelectTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Select tests',
-      'description' => 'Test the Select query builder.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests rudimentary SELECT statements.
    */
diff --git a/core/modules/system/src/Tests/Database/SerializeQueryTest.php b/core/modules/system/src/Tests/Database/SerializeQueryTest.php
index 4d0727f..91e533e 100644
--- a/core/modules/system/src/Tests/Database/SerializeQueryTest.php
+++ b/core/modules/system/src/Tests/Database/SerializeQueryTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests query serialization.
+ * Tests serializing and unserializing a query.
+ *
+ * @group Database
  */
 class SerializeQueryTest extends DatabaseTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Serialize query',
-      'description' => 'Test serializing and unserializing a query.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Confirms that a query can be serialized and unserialized.
    */
diff --git a/core/modules/system/src/Tests/Database/TaggingTest.php b/core/modules/system/src/Tests/Database/TaggingTest.php
index fe11cac..37566fe 100644
--- a/core/modules/system/src/Tests/Database/TaggingTest.php
+++ b/core/modules/system/src/Tests/Database/TaggingTest.php
@@ -8,21 +8,15 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests SELECT query tagging.
+ * Tests the tagging capabilities of the Select builder.
  *
  * Tags are a way to flag queries for alter hooks so they know
  * what type of query it is, such as "node_access".
+ *
+ * @group Database
  */
 class TaggingTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Query tagging tests',
-      'description' => 'Test the tagging capabilities of the Select builder.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Confirms that a query has a tag added to it.
    */
diff --git a/core/modules/system/src/Tests/Database/TemporaryQueryTest.php b/core/modules/system/src/Tests/Database/TemporaryQueryTest.php
index c57d587..a3ac731 100644
--- a/core/modules/system/src/Tests/Database/TemporaryQueryTest.php
+++ b/core/modules/system/src/Tests/Database/TemporaryQueryTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests temporary queries.
+ * Tests the temporary query functionality.
+ *
+ * @group Database
  */
 class TemporaryQueryTest extends DatabaseWebTestBase {
 
@@ -19,14 +21,6 @@ class TemporaryQueryTest extends DatabaseWebTestBase {
    */
   public static $modules = array('database_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Temporary query test',
-      'description' => 'Test the temporary query functionality.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Returns the number of rows of a table.
    */
diff --git a/core/modules/system/src/Tests/Database/TransactionTest.php b/core/modules/system/src/Tests/Database/TransactionTest.php
index f2257eb..00ec458 100644
--- a/core/modules/system/src/Tests/Database/TransactionTest.php
+++ b/core/modules/system/src/Tests/Database/TransactionTest.php
@@ -12,7 +12,7 @@
 use Drupal\Core\Database\TransactionNoActiveException;
 
 /**
- * Tests transaction support, particularly nesting.
+ * Tests the transaction abstraction system.
  *
  * We test nesting by having two transaction layers, an outer and inner. The
  * outer layer encapsulates the inner layer. Our transaction nesting abstraction
@@ -30,17 +30,10 @@
  *     Do more stuff
  *     Should still be in transaction A
  *
+ * @group Database
  */
 class TransactionTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Transaction tests',
-      'description' => 'Test the transaction abstraction system.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Encapsulates a transaction's "inner layer" with an "outer layer".
    *
diff --git a/core/modules/system/src/Tests/Database/UpdateComplexTest.php b/core/modules/system/src/Tests/Database/UpdateComplexTest.php
index 99bd178..19eff49 100644
--- a/core/modules/system/src/Tests/Database/UpdateComplexTest.php
+++ b/core/modules/system/src/Tests/Database/UpdateComplexTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests for more complex update statements.
+ * Tests the Update query builder, complex queries.
+ *
+ * @group Database
  */
 class UpdateComplexTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update tests, Complex',
-      'description' => 'Test the Update query builder, complex queries.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests updates with OR conditionals.
    */
diff --git a/core/modules/system/src/Tests/Database/UpdateLobTest.php b/core/modules/system/src/Tests/Database/UpdateLobTest.php
index 88a98d0..7b26fdf 100644
--- a/core/modules/system/src/Tests/Database/UpdateLobTest.php
+++ b/core/modules/system/src/Tests/Database/UpdateLobTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\system\Tests\Database;
 
 /**
- * Tests UPDATE queries involving LOB values.
+ * Tests the Update query builder with LOB fields.
+ *
+ * @group Database
  */
 class UpdateLobTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update tests, LOB',
-      'description' => 'Test the Update query builder with LOB fields.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Confirms that we can update a blob column.
    */
diff --git a/core/modules/system/src/Tests/Database/UpdateTest.php b/core/modules/system/src/Tests/Database/UpdateTest.php
index 8038f63..d48b706 100644
--- a/core/modules/system/src/Tests/Database/UpdateTest.php
+++ b/core/modules/system/src/Tests/Database/UpdateTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests the update query builder.
+ *
+ * @group Database
  */
 class UpdateTest extends DatabaseTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update tests',
-      'description' => 'Test the Update query builder.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Confirms that we can update a single record successfully.
    */
diff --git a/core/modules/system/src/Tests/Datetime/DrupalDateTimeTest.php b/core/modules/system/src/Tests/Datetime/DrupalDateTimeTest.php
index 781d6b0..36a38e2 100644
--- a/core/modules/system/src/Tests/Datetime/DrupalDateTimeTest.php
+++ b/core/modules/system/src/Tests/Datetime/DrupalDateTimeTest.php
@@ -12,21 +12,12 @@
 
 /**
  * Tests DrupalDateTime functionality.
+ *
+ * @group Datetime
  */
 class DrupalDateTimeTest extends WebTestBase {
 
   /**
-   * Test information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'DrupalDateTime',
-      'description' => 'Test DrupalDateTime functionality.',
-      'group' => 'Datetime',
-    );
-  }
-
-  /**
    * Set up required modules.
    */
   public static $modules = array();
diff --git a/core/modules/system/src/Tests/DrupalKernel/ContentNegotiationTest.php b/core/modules/system/src/Tests/DrupalKernel/ContentNegotiationTest.php
index 13a8450..f45f574 100644
--- a/core/modules/system/src/Tests/DrupalKernel/ContentNegotiationTest.php
+++ b/core/modules/system/src/Tests/DrupalKernel/ContentNegotiationTest.php
@@ -11,17 +11,11 @@
 
 /**
  * Tests content negotiation.
+ *
+ * @group DrupalKernel
  */
 class ContentNegotiationTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Content negotiation',
-      'description' => 'Tests content negotiation.',
-      'group' => 'DrupalKernel',
-    );
-  }
-
   /**
    * Verifies HTML responses for bogus Accept headers.
    *
diff --git a/core/modules/system/src/Tests/DrupalKernel/DrupalKernelSiteTest.php b/core/modules/system/src/Tests/DrupalKernel/DrupalKernelSiteTest.php
index d6f9fe8..c3f7891 100644
--- a/core/modules/system/src/Tests/DrupalKernel/DrupalKernelSiteTest.php
+++ b/core/modules/system/src/Tests/DrupalKernel/DrupalKernelSiteTest.php
@@ -11,21 +11,12 @@
 
 /**
  * Tests site-specific service overrides.
+ *
+ * @group DrupalKernel
  */
 class DrupalKernelSiteTest extends DrupalUnitTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'DrupalKernel site service overrides',
-      'description' => 'Tests site-specific service overrides.',
-      'group' => 'DrupalKernel',
-    );
-  }
-
-  /**
    * Tests services.yml in site directory.
    */
   public function testServicesYml() {
diff --git a/core/modules/system/src/Tests/DrupalKernel/DrupalKernelTest.php b/core/modules/system/src/Tests/DrupalKernel/DrupalKernelTest.php
index 17e4b4b..7c0d61e 100644
--- a/core/modules/system/src/Tests/DrupalKernel/DrupalKernelTest.php
+++ b/core/modules/system/src/Tests/DrupalKernel/DrupalKernelTest.php
@@ -12,18 +12,12 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests compilation of the DIC.
+ * Tests DIC compilation to disk.
+ *
+ * @group DrupalKernel
  */
 class DrupalKernelTest extends DrupalUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'DrupalKernel tests',
-      'description' => 'Tests DIC compilation to disk.',
-      'group' => 'DrupalKernel',
-    );
-  }
-
   function setUp() {
     // DrupalKernel relies on global $config_directories and requires those
     // directories to exist. Therefore, create the directories, but do not
diff --git a/core/modules/system/src/Tests/DrupalKernel/ServiceDestructionTest.php b/core/modules/system/src/Tests/DrupalKernel/ServiceDestructionTest.php
index a48e883..5748447 100644
--- a/core/modules/system/src/Tests/DrupalKernel/ServiceDestructionTest.php
+++ b/core/modules/system/src/Tests/DrupalKernel/ServiceDestructionTest.php
@@ -12,18 +12,12 @@
 use Symfony\Component\HttpKernel\Event\PostResponseEvent;
 
 /**
- * Tests the service destruction functionality.
+ * Tests that services are correctly destructed.
+ *
+ * @group DrupalKernel
  */
 class ServiceDestructionTest extends DrupalUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Service destruction',
-      'description' => 'Tests that services are correctly destructed.',
-      'group' => 'DrupalKernel',
-    );
-  }
-
   /**
    * Verifies that services are destructed when used.
    */
diff --git a/core/modules/system/src/Tests/Entity/BundleConstraintValidatorTest.php b/core/modules/system/src/Tests/Entity/BundleConstraintValidatorTest.php
index 79906f0..a8003c4 100644
--- a/core/modules/system/src/Tests/Entity/BundleConstraintValidatorTest.php
+++ b/core/modules/system/src/Tests/Entity/BundleConstraintValidatorTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests validation constraints for BundleConstraintValidator.
+ *
+ * @group Entity
  */
 class BundleConstraintValidatorTest extends DrupalUnitTestBase {
 
@@ -25,14 +27,6 @@ class BundleConstraintValidatorTest extends DrupalUnitTestBase {
 
   public static $modules = array('entity', 'node', 'field', 'text', 'user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity bundle constraint',
-      'description' => 'Tests validation constraints for BundleConstraintValidator.',
-      'group' => 'Validation',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->typedData = $this->container->get('typed_data_manager');
diff --git a/core/modules/system/src/Tests/Entity/ConfigEntityImportTest.php b/core/modules/system/src/Tests/Entity/ConfigEntityImportTest.php
index 5fb79fb..85cf0d2 100644
--- a/core/modules/system/src/Tests/Entity/ConfigEntityImportTest.php
+++ b/core/modules/system/src/Tests/Entity/ConfigEntityImportTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests importing config entities.
+ * Tests ConfigEntity importing.
+ *
+ * @group Entity
  */
 class ConfigEntityImportTest extends WebTestBase {
 
@@ -25,17 +27,6 @@ class ConfigEntityImportTest extends WebTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Configuration entity import',
-      'description' => 'Tests ConfigEntity importing.',
-      'group' => 'Configuration',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/ConfigEntityQueryTest.php b/core/modules/system/src/Tests/Entity/ConfigEntityQueryTest.php
index d0d8b36..d29ed00 100644
--- a/core/modules/system/src/Tests/Entity/ConfigEntityQueryTest.php
+++ b/core/modules/system/src/Tests/Entity/ConfigEntityQueryTest.php
@@ -10,8 +10,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests the config entity query.
+ * Tests Config Entity Query functionality.
  *
+ * @group Entity
  * @see \Drupal\Core\Config\Entity\Query
  */
 class ConfigEntityQueryTest extends DrupalUnitTestBase {
@@ -44,14 +45,6 @@ class ConfigEntityQueryTest extends DrupalUnitTestBase {
    */
   protected $entities;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Config Entity Query',
-      'description' => 'Tests Config Entity Query functionality.',
-      'group' => 'Configuration',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/EntityAccessTest.php b/core/modules/system/src/Tests/Entity/EntityAccessTest.php
index 296b32f..70f402b 100644
--- a/core/modules/system/src/Tests/Entity/EntityAccessTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityAccessTest.php
@@ -13,18 +13,12 @@
 use Drupal\Core\Entity\EntityAccessController;
 
 /**
- * Tests the entity access controller.
+ * Tests entity access.
+ *
+ * @group Entity
  */
 class EntityAccessTest extends EntityLanguageTestBase  {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity access',
-      'description' => 'Tests entity access.',
-      'group' => 'Entity API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->installSchema('system', 'url_alias');
diff --git a/core/modules/system/src/Tests/Entity/EntityApiInfoTest.php b/core/modules/system/src/Tests/Entity/EntityApiInfoTest.php
index 252fb09..17f5cbe 100644
--- a/core/modules/system/src/Tests/Entity/EntityApiInfoTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityApiInfoTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests Entity API base functionality.
+ * Makes sure entity info is accurately cached.
+ *
+ * @group Entity
  */
 class EntityApiInfoTest extends WebTestBase  {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity info',
-      'description' => 'Makes sure entity info is accurately cached.',
-      'group' => 'Entity API',
-    );
-  }
-
   /**
    * Ensures entity info cache is updated after changes.
    */
diff --git a/core/modules/system/src/Tests/Entity/EntityApiTest.php b/core/modules/system/src/Tests/Entity/EntityApiTest.php
index caa7bb8..1f2dfde 100644
--- a/core/modules/system/src/Tests/Entity/EntityApiTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityApiTest.php
@@ -11,18 +11,12 @@
 use Drupal\user\UserInterface;
 
 /**
- * Tests the basic Entity API.
+ * Tests basic CRUD functionality.
+ *
+ * @group Entity
  */
 class EntityApiTest extends EntityUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity CRUD',
-      'description' => 'Tests basic CRUD functionality.',
-      'group' => 'Entity API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/EntityCrudHookTest.php b/core/modules/system/src/Tests/Entity/EntityCrudHookTest.php
index c643432..dfc2c4b 100644
--- a/core/modules/system/src/Tests/Entity/EntityCrudHookTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityCrudHookTest.php
@@ -12,7 +12,8 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Tests invocation of hooks when performing an action.
+ * Tests the invocation of hooks when creating, inserting, loading, updating or
+ * deleting an entity.
  *
  * Tested hooks are:
  * - hook_entity_insert()
@@ -22,6 +23,8 @@
  * - hook_entity_delete()
  * As well as all type-specific hooks, like hook_node_insert(),
  * hook_comment_update(), etc.
+ *
+ * @group Entity
  */
 class EntityCrudHookTest extends EntityUnitTestBase {
 
@@ -34,14 +37,6 @@ class EntityCrudHookTest extends EntityUnitTestBase {
 
   protected $ids = array();
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity CRUD hooks',
-      'description' => 'Tests the invocation of hooks when creating, inserting, loading, updating or deleting an entity.',
-      'group' => 'Entity API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/EntityFieldDefaultValueTest.php b/core/modules/system/src/Tests/Entity/EntityFieldDefaultValueTest.php
index 61b9aae..1a0f79f 100644
--- a/core/modules/system/src/Tests/Entity/EntityFieldDefaultValueTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityFieldDefaultValueTest.php
@@ -12,7 +12,9 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Tests Entity API default field value functionality.
+ * Tests default values for entity fields.
+ *
+ * @group Entity
  */
 class EntityFieldDefaultValueTest extends EntityUnitTestBase  {
 
@@ -23,14 +25,6 @@ class EntityFieldDefaultValueTest extends EntityUnitTestBase  {
    */
   protected $uuid;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Field Default Value',
-      'description' => 'Tests default values for entity fields.',
-      'group' => 'Entity API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     // Initiate the generator object.
diff --git a/core/modules/system/src/Tests/Entity/EntityFieldTest.php b/core/modules/system/src/Tests/Entity/EntityFieldTest.php
index b6859dc..5d5b9e4 100644
--- a/core/modules/system/src/Tests/Entity/EntityFieldTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityFieldTest.php
@@ -21,7 +21,9 @@
 use Drupal\node\Entity\NodeType;
 
 /**
- * Tests Entity API base functionality.
+ * Tests the Entity Field API.
+ *
+ * @group Entity
  */
 class EntityFieldTest extends EntityUnitTestBase  {
 
@@ -32,14 +34,6 @@ class EntityFieldTest extends EntityUnitTestBase  {
    */
   public static $modules = array('filter', 'text', 'node', 'user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Field API',
-      'description' => 'Tests the Entity Field API',
-      'group' => 'Entity API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/EntityFormTest.php b/core/modules/system/src/Tests/Entity/EntityFormTest.php
index dabfab4..fca9c00 100644
--- a/core/modules/system/src/Tests/Entity/EntityFormTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityFormTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the Entity Form Controller.
+ * Tests the entity form.
+ *
+ * @group Entity
  */
 class EntityFormTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class EntityFormTest extends WebTestBase {
    */
   public static $modules = array('entity_test', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity form',
-      'description' => 'Tests the entity form.',
-      'group' => 'Entity API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $web_user = $this->drupalCreateUser(array('administer entity_test content'));
diff --git a/core/modules/system/src/Tests/Entity/EntityOperationsTest.php b/core/modules/system/src/Tests/Entity/EntityOperationsTest.php
index fa75e9f..112f80a 100644
--- a/core/modules/system/src/Tests/Entity/EntityOperationsTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityOperationsTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for entity operations, that they can be altered.
+ * Tests that operations can be injected from the hook.
+ *
+ * @group Entity
  */
 class EntityOperationsTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class EntityOperationsTest extends WebTestBase {
    */
   public static $modules = array('entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Operations',
-      'description' => 'Check that operations can be injected from the hook.',
-      'group' => 'Entity API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/EntityQueryAggregateTest.php b/core/modules/system/src/Tests/Entity/EntityQueryAggregateTest.php
index 6ea5549..6875faf 100644
--- a/core/modules/system/src/Tests/Entity/EntityQueryAggregateTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityQueryAggregateTest.php
@@ -7,8 +7,9 @@
 namespace Drupal\system\Tests\Entity;
 
 /**
- * Defines a test for testing aggregation support for entity query.
+ * Tests the Entity Query Aggregation API.
  *
+ * @group Entity
  * @see \Drupal\entity_test\Entity\EntityTest
  */
 class EntityQueryAggregateTest extends EntityUnitTestBase {
@@ -41,14 +42,6 @@ class EntityQueryAggregateTest extends EntityUnitTestBase {
    */
   public $factory;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Query aggregation',
-      'description' => 'Tests the Entity Query Aggregation API',
-      'group' => 'Entity API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/EntityQueryRelationshipTest.php b/core/modules/system/src/Tests/Entity/EntityQueryRelationshipTest.php
index 8d67666..a945b0d 100644
--- a/core/modules/system/src/Tests/Entity/EntityQueryRelationshipTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityQueryRelationshipTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\Entity;
 
 /**
- * Tests Entity Query API relationship functionality.
+ * Tests the Entity Query relationship API.
+ *
+ * @group Entity
  */
 class EntityQueryRelationshipTest extends EntityUnitTestBase  {
 
@@ -59,14 +61,6 @@ class EntityQueryRelationshipTest extends EntityUnitTestBase  {
    */
   protected $queryResults;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Query relationship',
-      'description' => 'Tests the Entity Query relationship API',
-      'group' => 'Entity API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/EntityQueryTest.php b/core/modules/system/src/Tests/Entity/EntityQueryTest.php
index a3be1e8..fbf093a 100644
--- a/core/modules/system/src/Tests/Entity/EntityQueryTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityQueryTest.php
@@ -12,7 +12,9 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the basic Entity API.
+ * Tests Entity Query functionality.
+ *
+ * @group Entity
  */
 class EntityQueryTest extends EntityUnitTestBase {
 
@@ -47,14 +49,6 @@ class EntityQueryTest extends EntityUnitTestBase {
    */
   public $figures;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Query',
-      'description' => 'Tests Entity Query functionality.',
-      'group' => 'Entity API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/EntityRevisionsTest.php b/core/modules/system/src/Tests/Entity/EntityRevisionsTest.php
index b64ec89..c7f7c5f 100644
--- a/core/modules/system/src/Tests/Entity/EntityRevisionsTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityRevisionsTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for the basic revisioning functionality of entities.
+ * Create a entity with revisions and test viewing, saving, reverting, and
+ * deleting revisions.
+ *
+ * @group Entity
  */
 class EntityRevisionsTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class EntityRevisionsTest extends WebTestBase {
    */
   public static $modules = array('entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity revisions',
-      'description' => 'Create a entity with revisions and test viewing, saving, reverting, and deleting revisions.',
-      'group' => 'Entity API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/EntityTranslationFormTest.php b/core/modules/system/src/Tests/Entity/EntityTranslationFormTest.php
index 41806e3..c2211e3 100644
--- a/core/modules/system/src/Tests/Entity/EntityTranslationFormTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityTranslationFormTest.php
@@ -14,6 +14,8 @@
 
 /**
  * Tests entity translation form.
+ *
+ * @group Entity
  */
 class EntityTranslationFormTest extends WebTestBase {
 
@@ -26,14 +28,6 @@ class EntityTranslationFormTest extends WebTestBase {
 
   protected $langcodes;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity translation form',
-      'description' => 'Tests entity translation form functionality.',
-      'group' => 'Entity API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Enable translations for the test entity type.
diff --git a/core/modules/system/src/Tests/Entity/EntityTranslationTest.php b/core/modules/system/src/Tests/Entity/EntityTranslationTest.php
index 8c2a440..51117b4 100644
--- a/core/modules/system/src/Tests/Entity/EntityTranslationTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityTranslationTest.php
@@ -11,18 +11,12 @@
 use Drupal\entity_test\Entity\EntityTestMulRev;
 
 /**
- * Tests entity translation.
+ * Tests entity translation functionality.
+ *
+ * @group Entity
  */
 class EntityTranslationTest extends EntityLanguageTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Translation',
-      'description' => 'Tests entity translation functionality.',
-      'group' => 'Entity API',
-    );
-  }
-
   /**
    * Tests language related methods of the Entity class.
    */
diff --git a/core/modules/system/src/Tests/Entity/EntityTypeConstraintValidatorTest.php b/core/modules/system/src/Tests/Entity/EntityTypeConstraintValidatorTest.php
index 93b60cf..1794ead 100644
--- a/core/modules/system/src/Tests/Entity/EntityTypeConstraintValidatorTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityTypeConstraintValidatorTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests validation constraints for EntityTypeConstraintValidator.
+ *
+ * @group Entity
  */
 class EntityTypeConstraintValidatorTest extends EntityUnitTestBase {
 
@@ -25,14 +27,6 @@ class EntityTypeConstraintValidatorTest extends EntityUnitTestBase {
 
   public static $modules = array('node', 'field', 'user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity type constraint',
-      'description' => 'Tests validation constraints for EntityTypeConstraintValidator.',
-      'group' => 'Validation',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->typedData = $this->container->get('typed_data_manager');
diff --git a/core/modules/system/src/Tests/Entity/EntityTypedDataDefinitionTest.php b/core/modules/system/src/Tests/Entity/EntityTypedDataDefinitionTest.php
index 30eb212..04aaa66 100644
--- a/core/modules/system/src/Tests/Entity/EntityTypedDataDefinitionTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityTypedDataDefinitionTest.php
@@ -19,6 +19,8 @@
 
 /**
  * Tests deriving metadata of entity and field data types.
+ *
+ * @group Entity
  */
 class EntityTypedDataDefinitionTest extends DrupalUnitTestBase {
 
@@ -36,14 +38,6 @@ class EntityTypedDataDefinitionTest extends DrupalUnitTestBase {
    */
   public static $modules = array('filter', 'text', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity typed data definitions',
-      'description' => 'Tests reading and deriving metadata of entity and field data types.',
-      'group' => 'Typed Data API',
-    );
-  }
-
   public function setUp() {
     parent::setup();
     $this->typedDataManager = $this->container->get('typed_data_manager');
diff --git a/core/modules/system/src/Tests/Entity/EntityUUIDTest.php b/core/modules/system/src/Tests/Entity/EntityUUIDTest.php
index a0ec726..a5de69a 100644
--- a/core/modules/system/src/Tests/Entity/EntityUUIDTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityUUIDTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests creation, saving, and loading of entity UUIDs.
+ *
+ * @group Entity
  */
 class EntityUUIDTest extends EntityUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity UUIDs',
-      'description' => 'Tests creation, saving, and loading of entity UUIDs.',
-      'group' => 'Entity API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/EntityValidationTest.php b/core/modules/system/src/Tests/Entity/EntityValidationTest.php
index dceab23..eaa3dae 100644
--- a/core/modules/system/src/Tests/Entity/EntityValidationTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityValidationTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\Entity;
 
 /**
- * Tests Entity API base functionality.
+ * Tests the Entity Validation API.
+ *
+ * @group Entity
  */
 class EntityValidationTest extends EntityUnitTestBase {
 
@@ -19,14 +21,6 @@ class EntityValidationTest extends EntityUnitTestBase {
    */
   public static $modules = array('filter', 'text');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Validation API',
-      'description' => 'Tests the Entity Validation API',
-      'group' => 'Entity API',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/system/src/Tests/Entity/EntityViewBuilderTest.php b/core/modules/system/src/Tests/Entity/EntityViewBuilderTest.php
index 6ac4a62..355edc0 100644
--- a/core/modules/system/src/Tests/Entity/EntityViewBuilderTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityViewBuilderTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests the entity view builder.
+ *
+ * @group Entity
  */
 class EntityViewBuilderTest extends EntityUnitTestBase {
 
@@ -19,14 +21,6 @@ class EntityViewBuilderTest extends EntityUnitTestBase {
    */
   public static $modules = array('entity_reference');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity rendering',
-      'description' => 'Tests the entity view builder.',
-      'group' => 'Entity API',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/system/src/Tests/Entity/EntityViewControllerTest.php b/core/modules/system/src/Tests/Entity/EntityViewControllerTest.php
index 4faec44..d798be7 100644
--- a/core/modules/system/src/Tests/Entity/EntityViewControllerTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityViewControllerTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests \Drupal\Core\Entity\Controller\EntityViewController.
+ * Tests EntityViewController functionality.
+ *
+ * @group Entity
  */
 class EntityViewControllerTest extends WebTestBase {
 
@@ -28,14 +30,6 @@ class EntityViewControllerTest extends WebTestBase {
    */
   protected $entities = array();
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity View Controller',
-      'description' => 'Tests EntityViewController functionality.',
-      'group' => 'Entity API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Create some dummy entity_test entities.
diff --git a/core/modules/system/src/Tests/Entity/FieldAccessTest.php b/core/modules/system/src/Tests/Entity/FieldAccessTest.php
index d72b297..cfbb6c9 100644
--- a/core/modules/system/src/Tests/Entity/FieldAccessTest.php
+++ b/core/modules/system/src/Tests/Entity/FieldAccessTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests the functionality of field access.
+ * Tests Field level access hooks.
+ *
+ * @group Entity
  */
 class FieldAccessTest extends DrupalUnitTestBase {
 
@@ -31,14 +33,6 @@ class FieldAccessTest extends DrupalUnitTestBase {
    */
   protected $activeUid;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field access tests',
-      'description' => 'Test Field level access hooks.',
-      'group' => 'Entity API',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     // Install field configuration.
diff --git a/core/modules/system/src/Tests/Entity/FieldSqlStorageTest.php b/core/modules/system/src/Tests/Entity/FieldSqlStorageTest.php
index e82129e..770902f 100644
--- a/core/modules/system/src/Tests/Entity/FieldSqlStorageTest.php
+++ b/core/modules/system/src/Tests/Entity/FieldSqlStorageTest.php
@@ -14,10 +14,12 @@
 use Drupal\system\Tests\Entity\EntityUnitTestBase;
 
 /**
- * Tests field storage.
+ * Tests Field SQL Storage .
  *
  * Field_sql_storage.module implements the default back-end storage plugin
  * for the Field Storage API.
+ *
+ * @group Entity
  */
 class FieldSqlStorageTest extends EntityUnitTestBase {
 
@@ -56,14 +58,6 @@ class FieldSqlStorageTest extends EntityUnitTestBase {
    */
   protected $revision_table;
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Field SQL storage tests',
-      'description'  => "Test Field SQL Storage .",
-      'group' => 'Entity API'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Entity/FieldTranslationSqlStorageTest.php b/core/modules/system/src/Tests/Entity/FieldTranslationSqlStorageTest.php
index 5ea3ef9..f506ced 100644
--- a/core/modules/system/src/Tests/Entity/FieldTranslationSqlStorageTest.php
+++ b/core/modules/system/src/Tests/Entity/FieldTranslationSqlStorageTest.php
@@ -13,18 +13,12 @@
 use Drupal\field\Entity\FieldConfig;
 
 /**
- * Tests entity translation.
+ * Tests Field translation SQL Storage.
+ *
+ * @group Entity
  */
 class FieldTranslationSqlStorageTest extends EntityLanguageTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Field translation SQL storage tests',
-      'description'  => "Test Field translation SQL Storage.",
-      'group' => 'Entity API'
-    );
-  }
-
   /**
    * Tests field SQL storage.
    */
diff --git a/core/modules/system/src/Tests/Extension/InfoParserUnitTest.php b/core/modules/system/src/Tests/Extension/InfoParserUnitTest.php
index 8be4af9..17c441f 100644
--- a/core/modules/system/src/Tests/Extension/InfoParserUnitTest.php
+++ b/core/modules/system/src/Tests/Extension/InfoParserUnitTest.php
@@ -12,11 +12,13 @@
 use Drupal\Core\Extension\InfoParserException;
 
 /**
- * Tests InfoParser class.
+ * Tests InfoParser class and exception.
  *
  * Files for this test are stored in core/modules/system/tests/fixtures and end
  * with .info.txt instead of info.yml in order not not be considered as real
  * extensions.
+ *
+ * @group Extension
  */
 class InfoParserUnitTest extends DrupalUnitTestBase {
 
@@ -30,17 +32,6 @@ class InfoParserUnitTest extends DrupalUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'InfoParser',
-      'description' => 'Tests InfoParser class and exception.',
-      'group' => 'Extension',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Extension/ModuleHandlerTest.php b/core/modules/system/src/Tests/Extension/ModuleHandlerTest.php
index 7ea1b8f..8d93c7a 100644
--- a/core/modules/system/src/Tests/Extension/ModuleHandlerTest.php
+++ b/core/modules/system/src/Tests/Extension/ModuleHandlerTest.php
@@ -13,17 +13,11 @@
 
 /**
  * Tests ModuleHandler functionality.
+ *
+ * @group Extension
  */
 class ModuleHandlerTest extends KernelTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Module handler',
-      'description' => 'Tests ModuleHandler functionality.',
-      'group' => 'Extension',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/system/src/Tests/Extension/ThemeHandlerTest.php b/core/modules/system/src/Tests/Extension/ThemeHandlerTest.php
index 45d22ca..03a94cf 100644
--- a/core/modules/system/src/Tests/Extension/ThemeHandlerTest.php
+++ b/core/modules/system/src/Tests/Extension/ThemeHandlerTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests installing/enabling, disabling, and uninstalling of themes.
+ *
+ * @group Extension
  */
 class ThemeHandlerTest extends DrupalUnitTestBase {
 
@@ -23,14 +25,6 @@ class ThemeHandlerTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'menu_link');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme handler',
-      'description' => 'Tests installing/enabling, disabling, and uninstalling of themes.',
-      'group' => 'Extension',
-    );
-  }
-
   public function containerBuild(ContainerBuilder $container) {
     parent::containerBuild($container);
     // Some test methods involve ModuleHandler operations, which attempt to
diff --git a/core/modules/system/src/Tests/File/ConfigTest.php b/core/modules/system/src/Tests/File/ConfigTest.php
index a38322b..6649718 100644
--- a/core/modules/system/src/Tests/File/ConfigTest.php
+++ b/core/modules/system/src/Tests/File/ConfigTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * File system configuration related tests.
+ * Tests file system configuration operations.
+ *
+ * @group File
  */
 class ConfigTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File system configuration test',
-      'description' => 'Tests file system configuration operations',
-      'group' => 'File API',
-    );
-  }
-
   function setUp(){
     parent::setUp();
     $this->web_user = $this->drupalCreateUser(array('administer site configuration'));
diff --git a/core/modules/system/src/Tests/File/DirectoryTest.php b/core/modules/system/src/Tests/File/DirectoryTest.php
index d17db20..c4ca643 100644
--- a/core/modules/system/src/Tests/File/DirectoryTest.php
+++ b/core/modules/system/src/Tests/File/DirectoryTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Directory related tests.
+ * Tests operations dealing with directories.
+ *
+ * @group File
  */
 class DirectoryTest extends FileTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File paths and directories',
-      'description' => 'Tests operations dealing with directories.',
-      'group' => 'File API',
-    );
-  }
-
   /**
    * Test local directory handling functions.
    */
diff --git a/core/modules/system/src/Tests/File/HtaccessUnitTest.php b/core/modules/system/src/Tests/File/HtaccessUnitTest.php
index 66438b7..4fb7fed 100644
--- a/core/modules/system/src/Tests/File/HtaccessUnitTest.php
+++ b/core/modules/system/src/Tests/File/HtaccessUnitTest.php
@@ -11,18 +11,12 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * .htaccess file saving tests.
+ * Tests .htaccess file saving.
+ *
+ * @group File
  */
 class HtaccessUnitTest extends DrupalUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => '.htaccess file saving',
-      'description' => 'Tests .htaccess file saving.',
-      'group' => 'File API',
-    );
-  }
-
   /**
    * Tests file_save_htaccess().
    */
diff --git a/core/modules/system/src/Tests/File/MimeTypeTest.php b/core/modules/system/src/Tests/File/MimeTypeTest.php
index 85d7e7f..f09b60d 100644
--- a/core/modules/system/src/Tests/File/MimeTypeTest.php
+++ b/core/modules/system/src/Tests/File/MimeTypeTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Tests for file_get_mimetype().
+ * Tests filename mimetype detection.
+ *
+ * @group File
  */
 class MimeTypeTest extends FileTestBase {
 
@@ -19,14 +21,6 @@ class MimeTypeTest extends FileTestBase {
    */
   public static $modules = array('file_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File mimetypes',
-      'description' => 'Test filename mimetype detection.',
-      'group' => 'File API',
-    );
-  }
-
   /**
    * Test mapping of mimetypes from filenames.
    */
diff --git a/core/modules/system/src/Tests/File/NameMungingTest.php b/core/modules/system/src/Tests/File/NameMungingTest.php
index 9c0d3d9..7dfa878 100644
--- a/core/modules/system/src/Tests/File/NameMungingTest.php
+++ b/core/modules/system/src/Tests/File/NameMungingTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Tests for file_munge_filename() and file_unmunge_filename().
+ * Tests filename munging and unmunging.
+ *
+ * @group File
  */
 class NameMungingTest extends FileTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'File naming',
-      'description' => 'Test filename munging and unmunging.',
-      'group' => 'File API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->bad_extension = 'php';
diff --git a/core/modules/system/src/Tests/File/ReadOnlyStreamWrapperTest.php b/core/modules/system/src/Tests/File/ReadOnlyStreamWrapperTest.php
index e02cd07..96747b0 100644
--- a/core/modules/system/src/Tests/File/ReadOnlyStreamWrapperTest.php
+++ b/core/modules/system/src/Tests/File/ReadOnlyStreamWrapperTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Tests that files can not be written using ReadOnlyStreamWrapper functions.
+ * Tests the read-only stream wrapper write functions.
+ *
+ * @group File
  */
 class ReadOnlyStreamWrapperTest extends FileTestBase {
 
@@ -26,14 +28,6 @@ class ReadOnlyStreamWrapperTest extends FileTestBase {
    */
   protected $classname = 'Drupal\file_test\DummyReadOnlyStreamWrapper';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Read only stream wrapper',
-      'description' => 'Tests the read-only stream wrapper write functions.',
-      'group' => 'File API',
-    );
-  }
-
   /**
    * Test write functionality of the read-only stream wrapper.
    */
diff --git a/core/modules/system/src/Tests/File/RemoteFileDirectoryTest.php b/core/modules/system/src/Tests/File/RemoteFileDirectoryTest.php
index 55946b8..8ebe597 100644
--- a/core/modules/system/src/Tests/File/RemoteFileDirectoryTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileDirectoryTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Directory related tests.
+ * Tests operations dealing with directories.
+ *
+ * @group File
  */
 class RemoteFileDirectoryTest extends DirectoryTest {
 
@@ -33,12 +35,6 @@ class RemoteFileDirectoryTest extends DirectoryTest {
    */
   protected $classname = 'Drupal\file_test\DummyRemoteStreamWrapper';
 
-  public static function getInfo() {
-    $info = parent::getInfo();
-    $info['group'] = 'File API (remote)';
-    return $info;
-  }
-
   function setUp() {
     parent::setUp();
     \Drupal::config('system.file')->set('default_scheme', 'dummy-remote')->save();
diff --git a/core/modules/system/src/Tests/File/RemoteFileScanDirectoryTest.php b/core/modules/system/src/Tests/File/RemoteFileScanDirectoryTest.php
index ded05b4..f09e299 100644
--- a/core/modules/system/src/Tests/File/RemoteFileScanDirectoryTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileScanDirectoryTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Tests the file_scan_directory() function on remote filesystems.
+ * Tests the file_scan_directory() function.
+ *
+ * @group File
  */
 class RemoteFileScanDirectoryTest extends ScanDirectoryTest {
 
@@ -33,12 +35,6 @@ class RemoteFileScanDirectoryTest extends ScanDirectoryTest {
    */
   protected $classname = 'Drupal\file_test\DummyRemoteStreamWrapper';
 
-  public static function getInfo() {
-    $info = parent::getInfo();
-    $info['group'] = 'File API (remote)';
-    return $info;
-  }
-
   function setUp() {
     parent::setUp();
     \Drupal::config('system.file')->set('default_scheme', 'dummy-remote')->save();
diff --git a/core/modules/system/src/Tests/File/RemoteFileUnmanagedCopyTest.php b/core/modules/system/src/Tests/File/RemoteFileUnmanagedCopyTest.php
index 4bf8864..18828a1 100644
--- a/core/modules/system/src/Tests/File/RemoteFileUnmanagedCopyTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileUnmanagedCopyTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Unmanaged copy related tests on remote filesystems.
+ * Tests the unmanaged file copy function.
+ *
+ * @group File
  */
 class RemoteFileUnmanagedCopyTest extends UnmanagedCopyTest {
 
@@ -33,12 +35,6 @@ class RemoteFileUnmanagedCopyTest extends UnmanagedCopyTest {
    */
   protected $classname = 'Drupal\file_test\DummyRemoteStreamWrapper';
 
-  public static function getInfo() {
-    $info = parent::getInfo();
-    $info['group'] = 'File API (remote)';
-    return $info;
-  }
-
   function setUp() {
     parent::setUp();
     \Drupal::config('system.file')->set('default_scheme', 'dummy-remote')->save();
diff --git a/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteRecursiveTest.php b/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteRecursiveTest.php
index 8cdc8d5..cb81a60 100644
--- a/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteRecursiveTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteRecursiveTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Deletion related tests on remote filesystems.
+ * Tests the unmanaged file delete recursive function.
+ *
+ * @group File
  */
 class RemoteFileUnmanagedDeleteRecursiveTest extends UnmanagedDeleteRecursiveTest {
 
@@ -33,12 +35,6 @@ class RemoteFileUnmanagedDeleteRecursiveTest extends UnmanagedDeleteRecursiveTes
    */
   protected $classname = 'Drupal\file_test\DummyRemoteStreamWrapper';
 
-  public static function getInfo() {
-    $info = parent::getInfo();
-    $info['group'] = 'File API (remote)';
-    return $info;
-  }
-
   function setUp() {
     parent::setUp();
     \Drupal::config('system.file')->set('default_scheme', 'dummy-remote')->save();
diff --git a/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteTest.php b/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteTest.php
index f1105df..4247cd4 100644
--- a/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Deletion related tests on remote filesystems.
+ * Tests the unmanaged file delete function.
+ *
+ * @group File
  */
 class RemoteFileUnmanagedDeleteTest extends UnmanagedDeleteTest {
 
@@ -33,12 +35,6 @@ class RemoteFileUnmanagedDeleteTest extends UnmanagedDeleteTest {
    */
   protected $classname = 'Drupal\file_test\DummyRemoteStreamWrapper';
 
-  public static function getInfo() {
-    $info = parent::getInfo();
-    $info['group'] = 'File API (remote)';
-    return $info;
-  }
-
   function setUp() {
     parent::setUp();
     \Drupal::config('system.file')->set('default_scheme', 'dummy-remote')->save();
diff --git a/core/modules/system/src/Tests/File/RemoteFileUnmanagedMoveTest.php b/core/modules/system/src/Tests/File/RemoteFileUnmanagedMoveTest.php
index 32d35ad..9714778 100644
--- a/core/modules/system/src/Tests/File/RemoteFileUnmanagedMoveTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileUnmanagedMoveTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Unmanaged move related tests on remote filesystems.
+ * Tests the unmanaged file move function.
+ *
+ * @group File
  */
 class RemoteFileUnmanagedMoveTest extends UnmanagedMoveTest {
 
@@ -33,12 +35,6 @@ class RemoteFileUnmanagedMoveTest extends UnmanagedMoveTest {
    */
   protected $classname = 'Drupal\file_test\DummyRemoteStreamWrapper';
 
-  public static function getInfo() {
-    $info = parent::getInfo();
-    $info['group'] = 'File API (remote)';
-    return $info;
-  }
-
   function setUp() {
     parent::setUp();
     \Drupal::config('system.file')->set('default_scheme', 'dummy-remote')->save();
diff --git a/core/modules/system/src/Tests/File/RemoteFileUnmanagedSaveDataTest.php b/core/modules/system/src/Tests/File/RemoteFileUnmanagedSaveDataTest.php
index 1e0b9ea..47686ac 100644
--- a/core/modules/system/src/Tests/File/RemoteFileUnmanagedSaveDataTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileUnmanagedSaveDataTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Tests the file_unmanaged_save_data() function on remote filesystems.
+ * Tests the unmanaged file save data function.
+ *
+ * @group File
  */
 class RemoteFileUnmanagedSaveDataTest extends UnmanagedSaveDataTest {
 
@@ -33,12 +35,6 @@ class RemoteFileUnmanagedSaveDataTest extends UnmanagedSaveDataTest {
    */
   protected $classname = 'Drupal\file_test\DummyRemoteStreamWrapper';
 
-  public static function getInfo() {
-    $info = parent::getInfo();
-    $info['group'] = 'File API (remote)';
-    return $info;
-  }
-
   function setUp() {
     parent::setUp();
     \Drupal::config('system.file')->set('default_scheme', 'dummy-remote')->save();
diff --git a/core/modules/system/src/Tests/File/ScanDirectoryTest.php b/core/modules/system/src/Tests/File/ScanDirectoryTest.php
index 7caae46..cda57de 100644
--- a/core/modules/system/src/Tests/File/ScanDirectoryTest.php
+++ b/core/modules/system/src/Tests/File/ScanDirectoryTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests the file_scan_directory() function.
+ *
+ * @group File
  */
 class ScanDirectoryTest extends FileTestBase {
 
@@ -19,14 +21,6 @@ class ScanDirectoryTest extends FileTestBase {
    */
   public static $modules = array('file_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File scan directory',
-      'description' => 'Tests the file_scan_directory() function.',
-      'group' => 'File API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->path = drupal_get_path('module', 'simpletest') . '/files';
diff --git a/core/modules/system/src/Tests/File/StreamWrapperTest.php b/core/modules/system/src/Tests/File/StreamWrapperTest.php
index 35f85ab..755e988 100644
--- a/core/modules/system/src/Tests/File/StreamWrapperTest.php
+++ b/core/modules/system/src/Tests/File/StreamWrapperTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests stream wrapper functions.
+ *
+ * @group File
  */
 class StreamWrapperTest extends FileTestBase {
 
@@ -35,14 +37,6 @@ class StreamWrapperTest extends FileTestBase {
    */
   protected $classname = 'Drupal\file_test\DummyStreamWrapper';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Stream wrappers',
-      'description' => 'Tests stream wrapper functions.',
-      'group' => 'File API',
-    );
-  }
-
   /**
    * Test the getClassName() function.
    */
diff --git a/core/modules/system/src/Tests/File/UnmanagedCopyTest.php b/core/modules/system/src/Tests/File/UnmanagedCopyTest.php
index ecd1310..5a3a4de 100644
--- a/core/modules/system/src/Tests/File/UnmanagedCopyTest.php
+++ b/core/modules/system/src/Tests/File/UnmanagedCopyTest.php
@@ -10,17 +10,11 @@
 use Drupal\Core\Site\Settings;
 
 /**
- * Unmanaged copy related tests.
+ * Tests the unmanaged file copy function.
+ *
+ * @group File
  */
 class UnmanagedCopyTest extends FileTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Unmanaged file copying',
-      'description' => 'Tests the unmanaged file copy function.',
-      'group' => 'File API',
-    );
-  }
-
   /**
    * Copy a normal file.
    */
diff --git a/core/modules/system/src/Tests/File/UnmanagedDeleteRecursiveTest.php b/core/modules/system/src/Tests/File/UnmanagedDeleteRecursiveTest.php
index 2a93ac6..892f317 100644
--- a/core/modules/system/src/Tests/File/UnmanagedDeleteRecursiveTest.php
+++ b/core/modules/system/src/Tests/File/UnmanagedDeleteRecursiveTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Deletion related tests.
+ * Tests the unmanaged file delete recursive function.
+ *
+ * @group File
  */
 class UnmanagedDeleteRecursiveTest extends FileTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Unmanaged recursive file delete',
-      'description' => 'Tests the unmanaged file delete recursive function.',
-      'group' => 'File API',
-    );
-  }
-
   /**
    * Delete a normal file.
    */
diff --git a/core/modules/system/src/Tests/File/UnmanagedDeleteTest.php b/core/modules/system/src/Tests/File/UnmanagedDeleteTest.php
index 005cba0..a3638aa 100644
--- a/core/modules/system/src/Tests/File/UnmanagedDeleteTest.php
+++ b/core/modules/system/src/Tests/File/UnmanagedDeleteTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\File;
 
 /**
- * Deletion related tests.
+ * Tests the unmanaged file delete function.
+ *
+ * @group File
  */
 class UnmanagedDeleteTest extends FileTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Unmanaged file delete',
-      'description' => 'Tests the unmanaged file delete function.',
-      'group' => 'File API',
-    );
-  }
-
   /**
    * Delete a normal file.
    */
diff --git a/core/modules/system/src/Tests/File/UnmanagedMoveTest.php b/core/modules/system/src/Tests/File/UnmanagedMoveTest.php
index 86a9330..6e79062 100644
--- a/core/modules/system/src/Tests/File/UnmanagedMoveTest.php
+++ b/core/modules/system/src/Tests/File/UnmanagedMoveTest.php
@@ -10,17 +10,11 @@
 use Drupal\Core\Site\Settings;
 
 /**
- * Unmanaged move related tests.
+ * Tests the unmanaged file move function.
+ *
+ * @group File
  */
 class UnmanagedMoveTest extends FileTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Unmanaged file moving',
-      'description' => 'Tests the unmanaged file move function.',
-      'group' => 'File API',
-    );
-  }
-
   /**
    * Move a normal file.
    */
diff --git a/core/modules/system/src/Tests/File/UnmanagedSaveDataTest.php b/core/modules/system/src/Tests/File/UnmanagedSaveDataTest.php
index 8590e52..f3548f2 100644
--- a/core/modules/system/src/Tests/File/UnmanagedSaveDataTest.php
+++ b/core/modules/system/src/Tests/File/UnmanagedSaveDataTest.php
@@ -9,16 +9,10 @@
 
 /**
  * Tests the file_unmanaged_save_data() function.
+ *
+ * @group File
  */
 class UnmanagedSaveDataTest extends FileTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Unmanaged file save data',
-      'description' => 'Tests the unmanaged file save data function.',
-      'group' => 'File API',
-    );
-  }
-
   /**
    * Test the file_unmanaged_save_data() function.
    */
diff --git a/core/modules/system/src/Tests/File/UrlRewritingTest.php b/core/modules/system/src/Tests/File/UrlRewritingTest.php
index 11f9d16..0d8c33f 100644
--- a/core/modules/system/src/Tests/File/UrlRewritingTest.php
+++ b/core/modules/system/src/Tests/File/UrlRewritingTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests for file URL rewriting.
+ *
+ * @group File
  */
 class UrlRewritingTest extends FileTestBase {
 
@@ -21,14 +23,6 @@ class UrlRewritingTest extends FileTestBase {
    */
   public static $modules = array('file_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'File URL rewriting',
-      'description' => 'Tests for file URL rewriting.',
-      'group' => 'File API',
-    );
-  }
-
   /**
    * Tests the rewriting of shipped file URLs by hook_file_url_alter().
    */
diff --git a/core/modules/system/src/Tests/FileTransfer/FileTransferTest.php b/core/modules/system/src/Tests/FileTransfer/FileTransferTest.php
index a08a42e..529219d 100644
--- a/core/modules/system/src/Tests/FileTransfer/FileTransferTest.php
+++ b/core/modules/system/src/Tests/FileTransfer/FileTransferTest.php
@@ -12,7 +12,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * File transfer tests.
+ * Tests that the jail is respected and that protocols using recursive file move
+ * operations work.
+ *
+ * @group FileTransfer
  */
 class FileTransferTest extends WebTestBase {
   protected $hostname = 'localhost';
@@ -20,14 +23,6 @@ class FileTransferTest extends WebTestBase {
   protected $password = 'password';
   protected $port = '42';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'FileTransfer unit tests',
-      'description' => 'Test that the jail is respected and that protocols using recursive file move operations work.',
-      'group' => 'System'
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->testConnection = TestFileTransfer::factory(DRUPAL_ROOT, array('hostname' => $this->hostname, 'username' => $this->username, 'password' => $this->password, 'port' => $this->port));
diff --git a/core/modules/system/src/Tests/Form/AlterTest.php b/core/modules/system/src/Tests/Form/AlterTest.php
index 4c7f520..eb9411d 100644
--- a/core/modules/system/src/Tests/Form/AlterTest.php
+++ b/core/modules/system/src/Tests/Form/AlterTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test form alter hooks.
+ * Tests hook_form_alter() and hook_form_FORM_ID_alter().
+ *
+ * @group Form
  */
 class AlterTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class AlterTest extends WebTestBase {
    */
   public static $modules = array('block', 'form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form alter hooks',
-      'description' => 'Tests hook_form_alter() and hook_form_FORM_ID_alter().',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Tests execution order of hook_form_alter() and hook_form_FORM_ID_alter().
    */
diff --git a/core/modules/system/src/Tests/Form/ArbitraryRebuildTest.php b/core/modules/system/src/Tests/Form/ArbitraryRebuildTest.php
index 030a2e1..3da65ff 100644
--- a/core/modules/system/src/Tests/Form/ArbitraryRebuildTest.php
+++ b/core/modules/system/src/Tests/Form/ArbitraryRebuildTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests rebuilding of arbitrary forms by altering them.
+ * Tests altering forms to be rebuilt so there are multiple steps.
+ *
+ * @group Form
  */
 class ArbitraryRebuildTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ArbitraryRebuildTest extends WebTestBase {
    */
   public static $modules = array('text', 'form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Rebuild arbitrary forms',
-      'description' => 'Tests altering forms to be rebuilt so there are multiple steps.',
-      'group' => 'Form API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Form/CheckboxTest.php b/core/modules/system/src/Tests/Form/CheckboxTest.php
index f15b3d1..3e0240c 100644
--- a/core/modules/system/src/Tests/Form/CheckboxTest.php
+++ b/core/modules/system/src/Tests/Form/CheckboxTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests checkbox element.
+ * Tests form API checkbox handling of various combinations of #default_value
+ * and #return_value.
+ *
+ * @group Form
  */
 class CheckboxTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class CheckboxTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form API checkbox',
-      'description' => 'Tests form API checkbox handling of various combinations of #default_value and #return_value.',
-      'group' => 'Form API',
-    );
-  }
-
   function testFormCheckbox() {
     // Ensure that the checked state is determined and rendered correctly for
     // tricky combinations of default and return values.
diff --git a/core/modules/system/src/Tests/Form/ConfirmFormTest.php b/core/modules/system/src/Tests/Form/ConfirmFormTest.php
index fcaf881..3ea2820 100644
--- a/core/modules/system/src/Tests/Form/ConfirmFormTest.php
+++ b/core/modules/system/src/Tests/Form/ConfirmFormTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests confirmation forms.
+ *
+ * @group Form
  */
 class ConfirmFormTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ConfirmFormTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Confirmation forms',
-      'description' => 'Tests confirmation forms.',
-      'group' => 'Form API',
-    );
-  }
-
   function testConfirmForm() {
     // Test the building of the form.
     $this->drupalGet('form-test/confirm-form');
diff --git a/core/modules/system/src/Tests/Form/ElementTest.php b/core/modules/system/src/Tests/Form/ElementTest.php
index 32120b2..f24eb4a 100644
--- a/core/modules/system/src/Tests/Form/ElementTest.php
+++ b/core/modules/system/src/Tests/Form/ElementTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests building and processing of core form elements.
+ *
+ * @group Form
  */
 class ElementTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ElementTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Element processing',
-      'description' => 'Tests building and processing of core form elements.',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Tests placeholder text for elements that support placeholders.
    */
diff --git a/core/modules/system/src/Tests/Form/ElementsLabelsTest.php b/core/modules/system/src/Tests/Form/ElementsLabelsTest.php
index b002635..4dc0dc8 100644
--- a/core/modules/system/src/Tests/Form/ElementsLabelsTest.php
+++ b/core/modules/system/src/Tests/Form/ElementsLabelsTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test form element labels, required markers and associated output.
+ * Tests form element labels, required markers and associated output.
+ *
+ * @group Form
  */
 class ElementsLabelsTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ElementsLabelsTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form element and label output test',
-      'description' => 'Test form element labels, required markers and associated output.',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Test form elements, labels, title attibutes and required marks output
    * correctly and have the correct label option class if needed.
diff --git a/core/modules/system/src/Tests/Form/ElementsTableSelectTest.php b/core/modules/system/src/Tests/Form/ElementsTableSelectTest.php
index 5bc8314..e6bfdda 100644
--- a/core/modules/system/src/Tests/Form/ElementsTableSelectTest.php
+++ b/core/modules/system/src/Tests/Form/ElementsTableSelectTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test the tableselect form element for expected behavior.
+ * Tests the tableselect form element for expected behavior.
+ *
+ * @group Form
  */
 class ElementsTableSelectTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ElementsTableSelectTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Tableselect form element type test',
-      'description' => 'Test the tableselect element for expected behavior',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Test the display of checkboxes when #multiple is TRUE.
    */
diff --git a/core/modules/system/src/Tests/Form/ElementsVerticalTabsTest.php b/core/modules/system/src/Tests/Form/ElementsVerticalTabsTest.php
index 303b5a9..fdd4edd 100644
--- a/core/modules/system/src/Tests/Form/ElementsVerticalTabsTest.php
+++ b/core/modules/system/src/Tests/Form/ElementsVerticalTabsTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test the vertical_tabs form element for expected behavior.
+ * Tests the vertical_tabs form element for expected behavior.
+ *
+ * @group Form
  */
 class ElementsVerticalTabsTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ElementsVerticalTabsTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Vertical tabs form element type test',
-      'description' => 'Test the vertical_tabs element for expected behavior',
-      'group' => 'Form API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Form/EmailTest.php b/core/modules/system/src/Tests/Form/EmailTest.php
index 2efd00b..8e88f50 100644
--- a/core/modules/system/src/Tests/Form/EmailTest.php
+++ b/core/modules/system/src/Tests/Form/EmailTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests email element.
+ * Tests the form API email element.
+ *
+ * @group Form
  */
 class EmailTest extends WebTestBase {
 
@@ -24,14 +26,6 @@ class EmailTest extends WebTestBase {
 
   protected $profile = 'testing';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form API email',
-      'description' => 'Tests the form API email element.',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Tests that #type 'email' fields are properly validated.
    */
diff --git a/core/modules/system/src/Tests/Form/FormCacheTest.php b/core/modules/system/src/Tests/Form/FormCacheTest.php
index db904e3..301e5fc 100644
--- a/core/modules/system/src/Tests/Form/FormCacheTest.php
+++ b/core/modules/system/src/Tests/Form/FormCacheTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests form caching.
+ * Tests form_set_cache() and form_get_cache().
+ *
+ * @group Form
  */
 class FormCacheTest extends DrupalUnitTestBase {
 
@@ -22,14 +24,6 @@ class FormCacheTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form cache tests',
-      'description' => 'Tests form_set_cache() and form_get_cache()',
-      'group' => 'Form API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installSchema('system', array('key_value_expire'));
diff --git a/core/modules/system/src/Tests/Form/FormObjectTest.php b/core/modules/system/src/Tests/Form/FormObjectTest.php
index 993552d..237d9e7 100644
--- a/core/modules/system/src/Tests/Form/FormObjectTest.php
+++ b/core/modules/system/src/Tests/Form/FormObjectTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests building a form from an object.
+ *
+ * @group Form
  */
 class FormObjectTest extends SystemConfigFormTestBase {
 
@@ -22,14 +24,6 @@ class FormObjectTest extends SystemConfigFormTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form object tests',
-      'description' => 'Tests building a form from an object.',
-      'group' => 'Form API',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Form/FormTest.php b/core/modules/system/src/Tests/Form/FormTest.php
index 098751a..a380bd7 100644
--- a/core/modules/system/src/Tests/Form/FormTest.php
+++ b/core/modules/system/src/Tests/Form/FormTest.php
@@ -13,7 +13,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests form element validation.
+ * Tests various form element validation mechanisms.
+ *
+ * @group Form
  */
 class FormTest extends WebTestBase {
 
@@ -24,14 +26,6 @@ class FormTest extends WebTestBase {
    */
   public static $modules = array('filter', 'form_test', 'file', 'datetime');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form element validation',
-      'description' => 'Tests various form element validation mechanisms.',
-      'group' => 'Form API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Form/LanguageSelectElementTest.php b/core/modules/system/src/Tests/Form/LanguageSelectElementTest.php
index f4171f0..ca7c9af 100644
--- a/core/modules/system/src/Tests/Form/LanguageSelectElementTest.php
+++ b/core/modules/system/src/Tests/Form/LanguageSelectElementTest.php
@@ -13,7 +13,10 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Functional tests for the language select form element.
+ * Tests that the language select form element prints and submits the right
+ * options.
+ *
+ * @group Form
  */
 class LanguageSelectElementTest extends WebTestBase {
 
@@ -24,14 +27,6 @@ class LanguageSelectElementTest extends WebTestBase {
    */
   public static $modules = array('form_test', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Language select form element',
-      'description' => 'Checks that the language select form element prints and submits the right options.',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Tests that the options printed by the language select element are correct.
    */
diff --git a/core/modules/system/src/Tests/Form/ModulesListFormWebTest.php b/core/modules/system/src/Tests/Form/ModulesListFormWebTest.php
index 934a416..56f1d5c 100644
--- a/core/modules/system/src/Tests/Form/ModulesListFormWebTest.php
+++ b/core/modules/system/src/Tests/Form/ModulesListFormWebTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests \Drupal\system\Form\ModulesListForm.
+ *
+ * @group Form
  */
 class ModulesListFormWebTest extends WebTestBase {
 
@@ -22,17 +24,6 @@ class ModulesListFormWebTest extends WebTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => 'Tests \Drupal\system\Form\ModulesListForm.',
-      'name' => '\Drupal\system\Form\ModulesListForm web test',
-      'group' => 'Module',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     \Drupal::state()->set('system_test.module_hidden', FALSE);
diff --git a/core/modules/system/src/Tests/Form/ProgrammaticTest.php b/core/modules/system/src/Tests/Form/ProgrammaticTest.php
index a73f843..902fe2e 100644
--- a/core/modules/system/src/Tests/Form/ProgrammaticTest.php
+++ b/core/modules/system/src/Tests/Form/ProgrammaticTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test the programmatic form submission behavior.
+ * Tests the programmatic form submission behavior.
+ *
+ * @group Form
  */
 class ProgrammaticTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ProgrammaticTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Programmatic form submissions',
-      'description' => 'Test the programmatic form submission behavior.',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Test the programmatic form submission workflow.
    */
diff --git a/core/modules/system/src/Tests/Form/RebuildTest.php b/core/modules/system/src/Tests/Form/RebuildTest.php
index f8cd8b0..7cba668 100644
--- a/core/modules/system/src/Tests/Form/RebuildTest.php
+++ b/core/modules/system/src/Tests/Form/RebuildTest.php
@@ -11,8 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests form rebuilding.
+ * Tests functionality of drupal_rebuild_form().
  *
+ * @group Form
  * @todo Add tests for other aspects of form rebuilding.
  */
 class RebuildTest extends WebTestBase {
@@ -24,14 +25,6 @@ class RebuildTest extends WebTestBase {
    */
   public static $modules = array('node', 'form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form rebuilding',
-      'description' => 'Tests functionality of drupal_rebuild_form().',
-      'group' => 'Form API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Form/RedirectTest.php b/core/modules/system/src/Tests/Form/RedirectTest.php
index faa7c7c..51be0d8 100644
--- a/core/modules/system/src/Tests/Form/RedirectTest.php
+++ b/core/modules/system/src/Tests/Form/RedirectTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests form redirection.
+ * Tests form redirection functionality.
+ *
+ * @group Form
  */
 class RedirectTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class RedirectTest extends WebTestBase {
    */
   public static $modules = array('form_test', 'block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form redirecting',
-      'description' => 'Tests form redirection functionality.',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Tests form redirection.
    */
diff --git a/core/modules/system/src/Tests/Form/StateValuesCleanAdvancedTest.php b/core/modules/system/src/Tests/Form/StateValuesCleanAdvancedTest.php
index 0157e7a..09df7f6 100644
--- a/core/modules/system/src/Tests/Form/StateValuesCleanAdvancedTest.php
+++ b/core/modules/system/src/Tests/Form/StateValuesCleanAdvancedTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests $form_state clearance with form elements having buttons.
+ * Tests proper removal of submitted form values using form_state_values_clean()
+ * when having forms with elements containing buttons like "managed_file".
+ *
+ * @group Form
  */
 class StateValuesCleanAdvancedTest extends WebTestBase {
 
@@ -26,14 +29,6 @@ class StateValuesCleanAdvancedTest extends WebTestBase {
    */
   protected $image;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form state values clearance (advanced)',
-      'description' => 'Test proper removal of submitted form values using form_state_values_clean() when having forms with elements containing buttons like "managed_file".',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Tests form_state_values_clean().
    */
diff --git a/core/modules/system/src/Tests/Form/StateValuesCleanTest.php b/core/modules/system/src/Tests/Form/StateValuesCleanTest.php
index da5cdeb..804ffa1 100644
--- a/core/modules/system/src/Tests/Form/StateValuesCleanTest.php
+++ b/core/modules/system/src/Tests/Form/StateValuesCleanTest.php
@@ -11,7 +11,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test $form_state clearance.
+ * Tests proper removal of submitted form values using
+ * form_state_values_clean().
+ *
+ * @group Form
  */
 class StateValuesCleanTest extends WebTestBase {
 
@@ -22,14 +25,6 @@ class StateValuesCleanTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form state values clearance',
-      'description' => 'Test proper removal of submitted form values using form_state_values_clean().',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Tests form_state_values_clean().
    */
diff --git a/core/modules/system/src/Tests/Form/StorageTest.php b/core/modules/system/src/Tests/Form/StorageTest.php
index a723143..509cf53 100644
--- a/core/modules/system/src/Tests/Form/StorageTest.php
+++ b/core/modules/system/src/Tests/Form/StorageTest.php
@@ -10,13 +10,16 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test the form storage on a multistep form.
+ * Tests a multistep form using form storage and makes sure validation and
+ * caching works right.
  *
  * The tested form puts data into the storage during the initial form
  * construction. These tests verify that there are no duplicate form
  * constructions, with and without manual form caching activiated. Furthermore
  * when a validation error occurs, it makes sure that changed form element
  * values aren't lost due to a wrong form rebuild.
+ *
+ * @group Form
  */
 class StorageTest extends WebTestBase {
 
@@ -27,14 +30,6 @@ class StorageTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Multistep form using form storage',
-      'description'  => 'Tests a multistep form using form storage and makes sure validation and caching works right.',
-      'group' => 'Form API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Form/SystemConfigFormTest.php b/core/modules/system/src/Tests/Form/SystemConfigFormTest.php
index 1b6d99d..863bb15 100644
--- a/core/modules/system/src/Tests/Form/SystemConfigFormTest.php
+++ b/core/modules/system/src/Tests/Form/SystemConfigFormTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the SystemConfigFormTestBase class.
+ *
+ * @group Form
  */
 class SystemConfigFormTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class SystemConfigFormTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'SystemConfigmForm tests',
-      'description' => 'Tests the SystemConfigFormTestBase class.',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Tests the SystemConfigFormTestBase class.
    */
diff --git a/core/modules/system/src/Tests/Form/TriggeringElementProgrammedUnitTest.php b/core/modules/system/src/Tests/Form/TriggeringElementProgrammedUnitTest.php
index 72e57ec..3e6f413 100644
--- a/core/modules/system/src/Tests/Form/TriggeringElementProgrammedUnitTest.php
+++ b/core/modules/system/src/Tests/Form/TriggeringElementProgrammedUnitTest.php
@@ -13,19 +13,13 @@
 
 /**
  * Tests detection of triggering_element for programmed form submissions.
+ *
+ * @group Form
  */
 class TriggeringElementProgrammedUnitTest extends DrupalUnitTestBase implements FormInterface {
 
   public static $modules = array('system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form triggering element programmed determination',
-      'description' => 'Tests detection of triggering_element for programmed form submissions.',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/system/src/Tests/Form/TriggeringElementTest.php b/core/modules/system/src/Tests/Form/TriggeringElementTest.php
index 1c4f1df..21a2195 100644
--- a/core/modules/system/src/Tests/Form/TriggeringElementTest.php
+++ b/core/modules/system/src/Tests/Form/TriggeringElementTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test that FAPI correctly determines $form_state['triggering_element'].
+ * Tests that FAPI correctly determines $form_state['triggering_element'].
+ *
+ * @group Form
  */
 class TriggeringElementTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class TriggeringElementTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form triggering element determination',
-      'description' => 'Test the determination of $form_state[\'triggering_element\'].',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Test the determination of $form_state['triggering_element'] when no button
    * information is included in the POST data, as is sometimes the case when
diff --git a/core/modules/system/src/Tests/Form/UrlTest.php b/core/modules/system/src/Tests/Form/UrlTest.php
index 81d76d1..45f6f94 100644
--- a/core/modules/system/src/Tests/Form/UrlTest.php
+++ b/core/modules/system/src/Tests/Form/UrlTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests URL element.
+ * Tests the form API URL element.
+ *
+ * @group Form
  */
 class UrlTest extends WebTestBase {
 
@@ -24,14 +26,6 @@ class UrlTest extends WebTestBase {
 
   protected $profile = 'testing';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form API URL',
-      'description' => 'Tests the form API URL element.',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Tests that #type 'url' fields are properly validated and trimmed.
    */
diff --git a/core/modules/system/src/Tests/Form/ValidationTest.php b/core/modules/system/src/Tests/Form/ValidationTest.php
index 8bfb15f..7fef3c9 100644
--- a/core/modules/system/src/Tests/Form/ValidationTest.php
+++ b/core/modules/system/src/Tests/Form/ValidationTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test form validation handlers.
+ * Tests form processing and alteration via form validation handlers.
+ *
+ * @group Form
  */
 class ValidationTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class ValidationTest extends WebTestBase {
    */
   public static $modules = array('form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Form validation handlers',
-      'description' => 'Tests form processing and alteration via form validation handlers.',
-      'group' => 'Form API',
-    );
-  }
-
   /**
    * Tests form alterations by #element_validate, #validate, and form_set_value().
    */
diff --git a/core/modules/system/src/Tests/Image/ToolkitGdTest.php b/core/modules/system/src/Tests/Image/ToolkitGdTest.php
index 1e0f192..6927ec0 100644
--- a/core/modules/system/src/Tests/Image/ToolkitGdTest.php
+++ b/core/modules/system/src/Tests/Image/ToolkitGdTest.php
@@ -12,7 +12,10 @@
 use Drupal\Component\Utility\String;
 
 /**
- * Test the core GD image manipulation functions.
+ * Tests that core image manipulations work properly: scale, resize, rotate,
+ * crop, scale and crop, and desaturate.
+ *
+ * @group Image
  */
 class ToolkitGdTest extends DrupalUnitTestBase {
 
@@ -43,14 +46,6 @@ class ToolkitGdTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'simpletest');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image GD manipulation tests',
-      'description' => 'Check that core image manipulations work properly: scale, resize, rotate, crop, scale and crop, and desaturate.',
-      'group' => 'Image',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/system/src/Tests/Image/ToolkitSetupFormTest.php b/core/modules/system/src/Tests/Image/ToolkitSetupFormTest.php
index 8489147..22b976d 100644
--- a/core/modules/system/src/Tests/Image/ToolkitSetupFormTest.php
+++ b/core/modules/system/src/Tests/Image/ToolkitSetupFormTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for the Image toolkit setup form.
+ * Tests image toolkit setup form.
+ *
+ * @group Image
  */
 class ToolkitSetupFormTest extends WebTestBase {
 
@@ -31,17 +33,6 @@ class ToolkitSetupFormTest extends WebTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Image toolkit setup form tests',
-      'description' => 'Check image toolkit setup form.',
-      'group' => 'Image',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $this->admin_user = $this->drupalCreateUser(array(
diff --git a/core/modules/system/src/Tests/Image/ToolkitTest.php b/core/modules/system/src/Tests/Image/ToolkitTest.php
index dc60eca..d8d99f9 100644
--- a/core/modules/system/src/Tests/Image/ToolkitTest.php
+++ b/core/modules/system/src/Tests/Image/ToolkitTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\Image;
 
 /**
- * Tests that the methods in Image correctly pass data to the toolkit.
+ * Tests image toolkit functions.
+ *
+ * @group Image
  */
 class ToolkitTest extends ToolkitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Image toolkit tests',
-      'description' => 'Check image toolkit functions.',
-      'group' => 'Image',
-    );
-  }
-
   /**
    * Check that ImageToolkitManager::getAvailableToolkits() only returns
    * available toolkits.
diff --git a/core/modules/system/src/Tests/Installer/DistributionProfileTest.php b/core/modules/system/src/Tests/Installer/DistributionProfileTest.php
index b82e7ec..cdae9ec 100644
--- a/core/modules/system/src/Tests/Installer/DistributionProfileTest.php
+++ b/core/modules/system/src/Tests/Installer/DistributionProfileTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\InstallerTestBase;
 
 /**
- * Tests the installer translation detection.
+ * Tests distribution profile support.
+ *
+ * @group Installer
  */
 class DistributionProfileTest extends InstallerTestBase {
 
@@ -22,14 +24,6 @@ class DistributionProfileTest extends InstallerTestBase {
    */
   protected $info;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Distribution installation profile test',
-      'description' => 'Tests distribution profile support.',
-      'group' => 'Installer',
-    );
-  }
-
   protected function setUp() {
     $this->info = array(
       'type' => 'profile',
diff --git a/core/modules/system/src/Tests/Installer/InstallerEmptySettingsTest.php b/core/modules/system/src/Tests/Installer/InstallerEmptySettingsTest.php
index 6f3302e..63bb9a8 100644
--- a/core/modules/system/src/Tests/Installer/InstallerEmptySettingsTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerEmptySettingsTest.php
@@ -11,23 +11,14 @@
 
 /**
  * Tests the installer with empty settings file.
+ *
+ * @group Installer
  */
 class InstallerEmptySettingsTest extends InstallerTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Installer Empty Settings Test',
-      'description' => 'Tests the installer with empty settings file.',
-      'group' => 'Installer',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     // Create an empty settings.php file.
     touch($this->siteDirectory . '/settings.php');
diff --git a/core/modules/system/src/Tests/Installer/InstallerExistingDatabaseSettingsTest.php b/core/modules/system/src/Tests/Installer/InstallerExistingDatabaseSettingsTest.php
index b1c3e4d..c97899c 100644
--- a/core/modules/system/src/Tests/Installer/InstallerExistingDatabaseSettingsTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerExistingDatabaseSettingsTest.php
@@ -11,24 +11,16 @@
 use Drupal\Core\Database\Database;
 
 /**
- * Tests the installer to make sure existing values in settings.php appear.
+ * Tests the installer with an existing settings file with database connection
+ * info.
+ *
+ * @group Installer
  */
 class InstallerExistingDatabaseSettingsTest extends InstallerTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Installer existing database settings',
-      'description' => 'Tests the installer with an existing settings file with database connection info.',
-      'group' => 'Installer',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     // Pre-configure database credentials in settings.php.
     $connection_info = Database::getConnectionInfo();
diff --git a/core/modules/system/src/Tests/Installer/InstallerExistingSettingsTest.php b/core/modules/system/src/Tests/Installer/InstallerExistingSettingsTest.php
index 2b765a5..4645668 100644
--- a/core/modules/system/src/Tests/Installer/InstallerExistingSettingsTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerExistingSettingsTest.php
@@ -11,23 +11,14 @@
 use Drupal\Core\Database\Database;
 
 /**
- * Tests the installer to make sure existing values in settings.php appear.
+ * Tests the installer with an existing settings file.
+ *
+ * @group Installer
  */
 class InstallerExistingSettingsTest extends InstallerTestBase {
 
   /**
    * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Installer existing settings',
-      'description' => 'Tests the installer with an existing settings file.',
-      'group' => 'Installer',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
    *
    * Fully configures a preexisting settings.php file before invoking the
    * interactive installer.
diff --git a/core/modules/system/src/Tests/Installer/InstallerLanguageDirectionTest.php b/core/modules/system/src/Tests/Installer/InstallerLanguageDirectionTest.php
index 7dfa719..74b8be2 100644
--- a/core/modules/system/src/Tests/Installer/InstallerLanguageDirectionTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerLanguageDirectionTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\InstallerTestBase;
 
 /**
- * Tests the installer switches to RTL when installing in a RTL language.
+ * Verifies that the early installer uses the correct language direction.
+ *
+ * @group Installer
  */
 class InstallerLanguageDirectionTest extends InstallerTestBase {
 
@@ -24,17 +26,6 @@ class InstallerLanguageDirectionTest extends InstallerTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Installer language direction test',
-      'description' => 'Verifies that the early installer uses the correct language direction.',
-      'group' => 'Installer',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUpLanguage() {
     parent::setUpLanguage();
     // After selecting a different language than English, all following screens
diff --git a/core/modules/system/src/Tests/Installer/InstallerLanguageTest.php b/core/modules/system/src/Tests/Installer/InstallerLanguageTest.php
index 93a610b..b32ef40 100644
--- a/core/modules/system/src/Tests/Installer/InstallerLanguageTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerLanguageTest.php
@@ -11,18 +11,12 @@
 use Drupal\Core\StringTranslation\Translator\FileTranslation;
 
 /**
- * Tests installer language detection.
+ * Tests for installer language support.
+ *
+ * @group Installer
  */
 class InstallerLanguageTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Installer language tests',
-      'description' => 'Tests for installer language support.',
-      'group' => 'Installer',
-    );
-  }
-
   /**
    * Tests that the installer can find translation files.
    */
diff --git a/core/modules/system/src/Tests/Installer/InstallerTest.php b/core/modules/system/src/Tests/Installer/InstallerTest.php
index c243a36..760a942 100644
--- a/core/modules/system/src/Tests/Installer/InstallerTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\InstallerTestBase;
 
 /**
- * Allows testing of the interactive installer.
+ * Tests the interactive installer.
+ *
+ * @group Installer
  */
 class InstallerTest extends InstallerTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Installer test',
-      'description' => 'Tests the interactive installer.',
-      'group' => 'Installer',
-    );
-  }
-
   /**
    * Ensures that the user page is available after installation.
    */
diff --git a/core/modules/system/src/Tests/Installer/InstallerTranslationTest.php b/core/modules/system/src/Tests/Installer/InstallerTranslationTest.php
index bb9202f..8ebf010 100644
--- a/core/modules/system/src/Tests/Installer/InstallerTranslationTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerTranslationTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\InstallerTestBase;
 
 /**
- * Tests the installer translation detection.
+ * Selects German as the installation language and verifies the following page
+ * is not in English.
+ *
+ * @group Installer
  */
 class InstallerTranslationTest extends InstallerTestBase {
 
@@ -21,14 +24,6 @@ class InstallerTranslationTest extends InstallerTestBase {
    */
   protected $langcode = 'de';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Installer translation test',
-      'description' => 'Selects German as the installation language and verifies the following page is not in English.',
-      'group' => 'Installer',
-    );
-  }
-
   /**
    * Overrides InstallerTest::setUpLanguage().
    */
diff --git a/core/modules/system/src/Tests/Installer/InstallerTranslationVersionUnitTest.php b/core/modules/system/src/Tests/Installer/InstallerTranslationVersionUnitTest.php
index 92d45f5..031a79d 100644
--- a/core/modules/system/src/Tests/Installer/InstallerTranslationVersionUnitTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerTranslationVersionUnitTest.php
@@ -10,18 +10,13 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests translation release version fallback.
+ * Tests the translation version fallback used during site installation to
+ * determine available translation files.
+ *
+ * @group Installer
  */
 class InstallerTranslationVersionUnitTest extends DrupalUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Installer translation version fallback',
-      'description' => 'Tests the translation version fallback used during site installation to determine available translation files.',
-      'group' => 'Installer',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     require_once DRUPAL_ROOT . '/core/includes/install.core.inc';
diff --git a/core/modules/system/src/Tests/Installer/SiteNameTest.php b/core/modules/system/src/Tests/Installer/SiteNameTest.php
index 6b71e73..983b208 100644
--- a/core/modules/system/src/Tests/Installer/SiteNameTest.php
+++ b/core/modules/system/src/Tests/Installer/SiteNameTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests that the site name can be set during a non-interactive installation.
+ *
+ * @group Installer
  */
 class SiteNameTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class SiteNameTest extends WebTestBase {
    */
   protected $siteName;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Site name (non-interactive)',
-      'description' => 'Tests that the site name can be set during a non-interactive installation.',
-      'group' => 'Installer',
-    );
-  }
-
   /**
    * Overrides \Drupal\simpletest\WebTestBase::installParameters().
    */
diff --git a/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageExpirableTest.php b/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageExpirableTest.php
index ed4236b..115ad3b 100644
--- a/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageExpirableTest.php
+++ b/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageExpirableTest.php
@@ -11,17 +11,11 @@
 
 /**
  * Tests the key-value database storage.
+ *
+ * @group KeyValueStore
  */
 class DatabaseStorageExpirableTest extends StorageTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Expirable database storage',
-      'description' => 'Tests the expirable key-value database storage.',
-      'group' => 'Key-value store',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->factory = 'keyvalue.expirable';
diff --git a/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageTest.php b/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageTest.php
index 2254501..f3f61be 100644
--- a/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageTest.php
+++ b/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageTest.php
@@ -11,17 +11,11 @@
 
 /**
  * Tests the key-value database storage.
+ *
+ * @group KeyValueStore
  */
 class DatabaseStorageTest extends StorageTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Database storage',
-      'description' => 'Tests the key-value database storage.',
-      'group' => 'Key-value store',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     module_load_install('system');
diff --git a/core/modules/system/src/Tests/KeyValueStore/GarbageCollectionTest.php b/core/modules/system/src/Tests/KeyValueStore/GarbageCollectionTest.php
index e583e75..6341f51 100644
--- a/core/modules/system/src/Tests/KeyValueStore/GarbageCollectionTest.php
+++ b/core/modules/system/src/Tests/KeyValueStore/GarbageCollectionTest.php
@@ -13,18 +13,12 @@
 use Drupal\simpletest\UnitTestBase;
 
 /**
- * Tests garbage collection for DatabaseStorageExpirable.
+ * Tests garbage collection for the the expirable key-value database storage.
+ *
+ * @group KeyValueStore
  */
 class GarbageCollectionTest extends UnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Garbage collection',
-      'description' => 'Tests garbage collection for the the expirable key-value database storage.',
-      'group' => 'Key-value store',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     module_load_install('system');
diff --git a/core/modules/system/src/Tests/KeyValueStore/KeyValueConfigEntityStorageTest.php b/core/modules/system/src/Tests/KeyValueStore/KeyValueConfigEntityStorageTest.php
index 3ead7fc..1fe1ab6 100644
--- a/core/modules/system/src/Tests/KeyValueStore/KeyValueConfigEntityStorageTest.php
+++ b/core/modules/system/src/Tests/KeyValueStore/KeyValueConfigEntityStorageTest.php
@@ -11,7 +11,9 @@
 use Drupal\Core\Entity\KeyValueStore\KeyValueEntityStorage;
 
 /**
- * Tests config entity CRUD with key value entity storage.
+ * Tests KeyValueEntityStorage for config entities.
+ *
+ * @group KeyValueStore
  */
 class KeyValueConfigEntityStorageTest extends ConfigEntityTest {
 
@@ -27,15 +29,4 @@ class KeyValueConfigEntityStorageTest extends ConfigEntityTest {
    */
   public static $modules = array('keyvalue_test');
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'KeyValueEntityStorage config entity test',
-      'description' => 'Tests KeyValueEntityStorage for config entities.',
-      'group' => 'Entity API',
-    );
-  }
-
 }
diff --git a/core/modules/system/src/Tests/KeyValueStore/KeyValueContentEntityStorageTest.php b/core/modules/system/src/Tests/KeyValueStore/KeyValueContentEntityStorageTest.php
index 10aec9b..9dd9b22 100644
--- a/core/modules/system/src/Tests/KeyValueStore/KeyValueContentEntityStorageTest.php
+++ b/core/modules/system/src/Tests/KeyValueStore/KeyValueContentEntityStorageTest.php
@@ -12,7 +12,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests content entity CRUD with key value entity storage.
+ * Tests KeyValueEntityStorage for content entities.
+ *
+ * @group KeyValueStore
  */
 class KeyValueContentEntityStorageTest extends DrupalUnitTestBase {
 
@@ -24,17 +26,6 @@ class KeyValueContentEntityStorageTest extends DrupalUnitTestBase {
   public static $modules = array('entity', 'user', 'entity_test', 'keyvalue_test');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'KeyValueEntityStorage content entity test',
-      'description' => 'Tests KeyValueEntityStorage for content entities.',
-      'group' => 'Entity API',
-    );
-  }
-
-  /**
    * Tests CRUD operations.
    */
   function testCRUD() {
diff --git a/core/modules/system/src/Tests/KeyValueStore/MemoryStorageTest.php b/core/modules/system/src/Tests/KeyValueStore/MemoryStorageTest.php
index ca065fa..10b2a15 100644
--- a/core/modules/system/src/Tests/KeyValueStore/MemoryStorageTest.php
+++ b/core/modules/system/src/Tests/KeyValueStore/MemoryStorageTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests the key-value memory storage.
+ *
+ * @group KeyValueStore
  */
 class MemoryStorageTest extends StorageTestBase {
 
@@ -19,14 +21,6 @@ class MemoryStorageTest extends StorageTestBase {
    */
   protected $originalKeyValue = NULL;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Memory storage',
-      'description' => 'Tests the key-value memory storage.',
-      'group' => 'Key-value store',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->container
diff --git a/core/modules/system/src/Tests/Lock/LockFunctionalTest.php b/core/modules/system/src/Tests/Lock/LockFunctionalTest.php
index 6b68385..6b1518c 100644
--- a/core/modules/system/src/Tests/Lock/LockFunctionalTest.php
+++ b/core/modules/system/src/Tests/Lock/LockFunctionalTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the lock system.
+ * Confirm locking works between two separate requests.
+ *
+ * @group Lock
  */
 class LockFunctionalTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class LockFunctionalTest extends WebTestBase {
    */
   public static $modules = array('system_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Locking framework tests',
-      'description' => 'Confirm locking works between two separate requests.',
-      'group' => 'Lock',
-    );
-  }
-
   /**
    * Confirms that we can acquire and release locks in two parallel requests.
    */
diff --git a/core/modules/system/src/Tests/Lock/LockUnitTest.php b/core/modules/system/src/Tests/Lock/LockUnitTest.php
index db5f908..9d489a6 100644
--- a/core/modules/system/src/Tests/Lock/LockUnitTest.php
+++ b/core/modules/system/src/Tests/Lock/LockUnitTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests the lock system.
+ * Tests the Database lock backend.
+ *
+ * @group Lock
  */
 class LockUnitTest extends DrupalUnitTestBase {
 
@@ -29,14 +31,6 @@ class LockUnitTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Locking framework unit tests',
-      'description' => 'Test the Database lock backend.',
-      'group' => 'Lock',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->lock = new DatabaseLockBackend($this->container->get('database'));
diff --git a/core/modules/system/src/Tests/Mail/HtmlToTextTest.php b/core/modules/system/src/Tests/Mail/HtmlToTextTest.php
index 0f17ede..e48ba42 100644
--- a/core/modules/system/src/Tests/Mail/HtmlToTextTest.php
+++ b/core/modules/system/src/Tests/Mail/HtmlToTextTest.php
@@ -13,16 +13,10 @@
 
 /**
  * Tests for drupal_html_to_text().
+ *
+ * @group Mail
  */
 class HtmlToTextTest extends WebTestBase {
-  public static function getInfo() {
-    return array(
-      'name'  => 'HTML to text conversion',
-      'description' => 'Tests drupal_html_to_text().',
-      'group' => 'Mail',
-    );
-  }
-
   /**
    * Converts a string to its PHP source equivalent for display in test messages.
    *
diff --git a/core/modules/system/src/Tests/Mail/MailTest.php b/core/modules/system/src/Tests/Mail/MailTest.php
index 95ac32f..a4dcf5f 100644
--- a/core/modules/system/src/Tests/Mail/MailTest.php
+++ b/core/modules/system/src/Tests/Mail/MailTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests related to the mail system.
+ * Performs tests on the pluggable mailing framework.
+ *
+ * @group Mail
  */
 class MailTest extends WebTestBase {
 
@@ -29,14 +31,6 @@ class MailTest extends WebTestBase {
    */
   private static $sent_message;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Mail system',
-      'description' => 'Performs tests on the pluggable mailing framework.',
-      'group' => 'Mail',
-    );
-  }
-
   /**
    * Assert that the pluggable mail system is functional.
    */
diff --git a/core/modules/system/src/Tests/Mail/WrapMailUnitTest.php b/core/modules/system/src/Tests/Mail/WrapMailUnitTest.php
index 3dd0269..e9a6619 100644
--- a/core/modules/system/src/Tests/Mail/WrapMailUnitTest.php
+++ b/core/modules/system/src/Tests/Mail/WrapMailUnitTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\UnitTestBase;
 
 /**
- * Tests the functionality of drupal_wrap_mail().
+ * Tests drupal_wrap_mail().
+ *
+ * @group Mail
  */
 class WrapMailUnitTest extends UnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Mail wrapping',
-      'description' => 'Tests drupal_wrap_mail().',
-      'group' => 'Mail',
-    );
-  }
-
   /**
    * Makes sure that drupal_wrap_mail() wraps the correct types of lines.
    */
diff --git a/core/modules/system/src/Tests/Menu/BreadcrumbTest.php b/core/modules/system/src/Tests/Menu/BreadcrumbTest.php
index b3378e2..f1bf640 100644
--- a/core/modules/system/src/Tests/Menu/BreadcrumbTest.php
+++ b/core/modules/system/src/Tests/Menu/BreadcrumbTest.php
@@ -11,7 +11,9 @@
 use Drupal\Component\Utility\Unicode;
 
 /**
- * Menu breadcrumbs related tests.
+ * Tests breadcrumbs functionality.
+ *
+ * @group Menu
  */
 class BreadcrumbTest extends MenuTestBase {
 
@@ -27,14 +29,6 @@ class BreadcrumbTest extends MenuTestBase {
    */
   protected $profile = 'standard';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Breadcrumbs',
-      'description' => 'Tests breadcrumbs functionality.',
-      'group' => 'Menu',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Menu/LinksTest.php b/core/modules/system/src/Tests/Menu/LinksTest.php
index d0db0de..eecfb8c 100644
--- a/core/modules/system/src/Tests/Menu/LinksTest.php
+++ b/core/modules/system/src/Tests/Menu/LinksTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for menu links.
+ * Tests handling of menu links hierarchies.
+ *
+ * @group Menu
  */
 class LinksTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class LinksTest extends WebTestBase {
    */
   public static $modules = array('router_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Menu links',
-      'description' => 'Test handling of menu links hierarchies.',
-      'group' => 'Menu',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/system/src/Tests/Menu/LocalActionTest.php b/core/modules/system/src/Tests/Menu/LocalActionTest.php
index d8804dd..bcc443b 100644
--- a/core/modules/system/src/Tests/Menu/LocalActionTest.php
+++ b/core/modules/system/src/Tests/Menu/LocalActionTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests local actions.
+ * Tests local actions derived from router and added/altered via hooks.
+ *
+ * @group Menu
  */
 class LocalActionTest extends WebTestBase {
 
@@ -20,17 +22,6 @@ class LocalActionTest extends WebTestBase {
   public static $modules = array('menu_test');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Local actions',
-      'description' => 'Tests local actions derived from router and added/altered via hooks.',
-      'group' => 'Menu',
-    );
-  }
-
-  /**
    * Tests appearance of local actions.
    */
   public function testLocalAction() {
diff --git a/core/modules/system/src/Tests/Menu/LocalTasksTest.php b/core/modules/system/src/Tests/Menu/LocalTasksTest.php
index 5de7b58..957e2eb 100644
--- a/core/modules/system/src/Tests/Menu/LocalTasksTest.php
+++ b/core/modules/system/src/Tests/Menu/LocalTasksTest.php
@@ -11,19 +11,13 @@
 
 /**
  * Tests local tasks derived from router and added/altered via hooks.
+ *
+ * @group Menu
  */
 class LocalTasksTest extends WebTestBase {
 
   public static $modules = array('menu_test', 'entity_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Local tasks',
-      'description' => 'Tests local tasks derived from router and added/altered via hooks.',
-      'group' => 'Menu',
-    );
-  }
-
   /**
    * Asserts local tasks in the page output.
    *
diff --git a/core/modules/system/src/Tests/Menu/MenuRouterRebuildTest.php b/core/modules/system/src/Tests/Menu/MenuRouterRebuildTest.php
index 59d0f50..e56796f 100644
--- a/core/modules/system/src/Tests/Menu/MenuRouterRebuildTest.php
+++ b/core/modules/system/src/Tests/Menu/MenuRouterRebuildTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests menu_router_rebuild().
+ *
+ * @group Menu
  */
 class MenuRouterRebuildTest extends WebTestBase {
 
@@ -25,17 +27,6 @@ class MenuRouterRebuildTest extends WebTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Menu router rebuild',
-      'description' => 'Tests menu_router_rebuild().',
-      'group' => 'Menu',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Menu/MenuRouterTest.php b/core/modules/system/src/Tests/Menu/MenuRouterTest.php
index 4383658..03403b8 100644
--- a/core/modules/system/src/Tests/Menu/MenuRouterTest.php
+++ b/core/modules/system/src/Tests/Menu/MenuRouterTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests menu router and default menu link functionality.
+ *
+ * @group Menu
  */
 class MenuRouterTest extends WebTestBase {
 
@@ -35,14 +37,6 @@ class MenuRouterTest extends WebTestBase {
    */
   protected $default_theme;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Menu router',
-      'description' => 'Tests menu router and default menu links functionality.',
-      'group' => 'Menu',
-    );
-  }
-
   function setUp() {
     // Enable dummy module that implements hook_menu.
     parent::setUp();
diff --git a/core/modules/system/src/Tests/Menu/MenuTranslateTest.php b/core/modules/system/src/Tests/Menu/MenuTranslateTest.php
index 8c27287..99e1401 100644
--- a/core/modules/system/src/Tests/Menu/MenuTranslateTest.php
+++ b/core/modules/system/src/Tests/Menu/MenuTranslateTest.php
@@ -10,8 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Defines a test class which tests the _menu_translate method.
+ * Tests the _menu_translate() method.
  *
+ * @group Menu
  * @see _menu_translate().
  */
 class MenuTranslateTest extends WebTestBase {
@@ -23,14 +24,6 @@ class MenuTranslateTest extends WebTestBase {
    */
   public static $modules = array('menu_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'menu_translate',
-      'description' => 'Tests the _menu_translate() method.',
-      'group' => 'Menu',
-    );
-  }
-
   /**
    * Tests _menu_translate().
    */
diff --git a/core/modules/system/src/Tests/Module/ClassLoaderTest.php b/core/modules/system/src/Tests/Module/ClassLoaderTest.php
index 71f29d4..fcfb205 100644
--- a/core/modules/system/src/Tests/Module/ClassLoaderTest.php
+++ b/core/modules/system/src/Tests/Module/ClassLoaderTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests class loading.
+ * Tests class loading for modules.
+ *
+ * @group Module
  */
 class ClassLoaderTest extends WebTestBase {
 
@@ -19,14 +21,6 @@ class ClassLoaderTest extends WebTestBase {
    */
   protected $expected = 'Drupal\\module_autoload_test\\SomeClass::testMethod() was invoked.';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Module class loader',
-      'description' => 'Tests class loading for modules.',
-      'group' => 'Module',
-    );
-  }
-
   /**
    * Tests that module-provided classes can be loaded when a module is enabled.
    *
diff --git a/core/modules/system/src/Tests/Module/DependencyTest.php b/core/modules/system/src/Tests/Module/DependencyTest.php
index a79fb8a..6ef1fb9 100644
--- a/core/modules/system/src/Tests/Module/DependencyTest.php
+++ b/core/modules/system/src/Tests/Module/DependencyTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\Module;
 
 /**
- * Tests module dependency functionality.
+ * Enable module without dependency enabled.
+ *
+ * @group Module
  */
 class DependencyTest extends ModuleTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Module dependencies',
-      'description' => 'Enable module without dependency enabled.',
-      'group' => 'Module',
-    );
-  }
-
   /**
    * Attempts to enable the Content Translation module without Language enabled.
    */
diff --git a/core/modules/system/src/Tests/Module/HookRequirementsTest.php b/core/modules/system/src/Tests/Module/HookRequirementsTest.php
index c43cdfe..dd286e9 100644
--- a/core/modules/system/src/Tests/Module/HookRequirementsTest.php
+++ b/core/modules/system/src/Tests/Module/HookRequirementsTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\Module;
 
 /**
- * Tests failure of hook_requirements('install').
+ * Attempts enabling a module that fails hook_requirements('install').
+ *
+ * @group Module
  */
 class HookRequirementsTest extends ModuleTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Requirements hook failure',
-      'description' => "Attempts enabling a module that fails hook_requirements('install').",
-      'group' => 'Module',
-    );
-  }
-
   /**
    * Assert that a module cannot be installed if it fails hook_requirements().
    */
diff --git a/core/modules/system/src/Tests/Module/InstallTest.php b/core/modules/system/src/Tests/Module/InstallTest.php
index bcaced0..476f25d 100644
--- a/core/modules/system/src/Tests/Module/InstallTest.php
+++ b/core/modules/system/src/Tests/Module/InstallTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Unit tests for module installation.
+ * Tests the installation of modules.
+ *
+ * @group Module
  */
 class InstallTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class InstallTest extends WebTestBase {
    */
   public static $modules = array('module_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Module installation',
-      'description' => 'Tests the installation of modules.',
-      'group' => 'Module',
-    );
-  }
-
   /**
    * Verify that drupal_get_schema() can be used during module installation.
    */
diff --git a/core/modules/system/src/Tests/Module/InstallUninstallTest.php b/core/modules/system/src/Tests/Module/InstallUninstallTest.php
index 1f47cc9..cce63db 100644
--- a/core/modules/system/src/Tests/Module/InstallUninstallTest.php
+++ b/core/modules/system/src/Tests/Module/InstallUninstallTest.php
@@ -8,20 +8,14 @@
 namespace Drupal\system\Tests\Module;
 
 /**
- * Tests functionality for installing and uninstalling modules.
+ * Install/uninstall core module and confirm table creation/deletion.
+ *
+ * @group Module
  */
 class InstallUninstallTest extends ModuleTestBase {
 
   public static $modules = array('system_test', 'dblog');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Install/uninstall modules',
-      'description' => 'Install/uninstall core module and confirm table creation/deletion.',
-      'group' => 'Module',
-    );
-  }
-
   /**
    * Tests that a fixed set of modules can be installed and uninstalled.
    */
diff --git a/core/modules/system/src/Tests/Module/RequiredTest.php b/core/modules/system/src/Tests/Module/RequiredTest.php
index 1de4535..c14d293 100644
--- a/core/modules/system/src/Tests/Module/RequiredTest.php
+++ b/core/modules/system/src/Tests/Module/RequiredTest.php
@@ -8,17 +8,11 @@
 namespace Drupal\system\Tests\Module;
 
 /**
- * Test required modules functionality.
+ * Attempt disabling of required modules.
+ *
+ * @group Module
  */
 class RequiredTest extends ModuleTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Required modules',
-      'description' => 'Attempt disabling of required modules.',
-      'group' => 'Module',
-    );
-  }
-
   /**
    * Assert that core required modules cannot be disabled.
    */
diff --git a/core/modules/system/src/Tests/Module/UninstallTest.php b/core/modules/system/src/Tests/Module/UninstallTest.php
index bbb4399..39bfa79 100644
--- a/core/modules/system/src/Tests/Module/UninstallTest.php
+++ b/core/modules/system/src/Tests/Module/UninstallTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Unit tests for module uninstallation and related hooks.
+ * Tests the uninstallation of modules.
+ *
+ * @group Module
  */
 class UninstallTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class UninstallTest extends WebTestBase {
    */
   public static $modules = array('module_test', 'user', 'views', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Module uninstallation',
-      'description' => 'Tests the uninstallation of modules.',
-      'group' => 'Module',
-    );
-  }
-
   /**
    * Tests the hook_modules_uninstalled() of the user module.
    */
diff --git a/core/modules/system/src/Tests/Module/VersionTest.php b/core/modules/system/src/Tests/Module/VersionTest.php
index c48e8a2..2d6705a 100644
--- a/core/modules/system/src/Tests/Module/VersionTest.php
+++ b/core/modules/system/src/Tests/Module/VersionTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\system\Tests\Module;
 
 /**
- * Test module dependency on specific versions.
+ * Tests module version dependencies.
+ *
+ * @group Module
  */
 class VersionTest extends ModuleTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Module versions',
-      'description' => 'Check module version dependencies.',
-      'group' => 'Module',
-    );
-  }
-
   /**
    * Test version dependencies.
    */
diff --git a/core/modules/system/src/Tests/Page/DefaultMetatagsTest.php b/core/modules/system/src/Tests/Page/DefaultMetatagsTest.php
index 3b2afdf..00e09e3 100644
--- a/core/modules/system/src/Tests/Page/DefaultMetatagsTest.php
+++ b/core/modules/system/src/Tests/Page/DefaultMetatagsTest.php
@@ -11,21 +11,12 @@
 
 /**
  * Tests default HTML metatags on a page.
+ *
+ * @group Page
  */
 class DefaultMetatagsTest extends WebTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Default HTML metatags',
-      'description' => 'Tests the default HTML metatags on the page.',
-      'group' => 'Page',
-    );
-  }
-
-  /**
    * Tests meta tags.
    */
   public function testMetaTag() {
diff --git a/core/modules/system/src/Tests/Pager/PagerTest.php b/core/modules/system/src/Tests/Pager/PagerTest.php
index 845aa28..1f3fe4d 100644
--- a/core/modules/system/src/Tests/Pager/PagerTest.php
+++ b/core/modules/system/src/Tests/Pager/PagerTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests pager functionality.
+ *
+ * @group Pager
  */
 class PagerTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class PagerTest extends WebTestBase {
 
   protected $profile = 'testing';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Pager functionality',
-      'description' => 'Tests pager functionality.',
-      'group' => 'Pager',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/ParamConverter/UpcastingTest.php b/core/modules/system/src/Tests/ParamConverter/UpcastingTest.php
index 75152e0..a9f8335 100644
--- a/core/modules/system/src/Tests/ParamConverter/UpcastingTest.php
+++ b/core/modules/system/src/Tests/ParamConverter/UpcastingTest.php
@@ -10,21 +10,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Web tests for the upcasting.
+ * Tests upcasting of url arguments to entities.
+ *
+ * @group ParamConverter
  */
 class UpcastingTest extends WebTestBase {
 
-  /**
-   * Implement getInfo().
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Upcasting tests',
-      'description' => 'Tests upcasting of url arguments to entities.',
-      'group' => 'ParamConverter',
-    );
-  }
-
   public static $modules = array('paramconverter_test', 'node');
 
   /**
diff --git a/core/modules/system/src/Tests/Path/AliasTest.php b/core/modules/system/src/Tests/Path/AliasTest.php
index 3617c00..5727d52 100644
--- a/core/modules/system/src/Tests/Path/AliasTest.php
+++ b/core/modules/system/src/Tests/Path/AliasTest.php
@@ -15,17 +15,11 @@
 
 /**
  * Tests path alias CRUD and lookup functionality.
+ *
+ * @group Path
  */
 class AliasTest extends PathUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Path Alias Unit Tests',
-      'description' => 'Tests path alias CRUD and lookup functionality.',
-      'group' => 'Path API',
-    );
-  }
-
   function testCRUD() {
     //Prepare database table.
     $connection = Database::getConnection();
diff --git a/core/modules/system/src/Tests/Path/UrlAlterFunctionalTest.php b/core/modules/system/src/Tests/Path/UrlAlterFunctionalTest.php
index 480297b..92ab50f 100644
--- a/core/modules/system/src/Tests/Path/UrlAlterFunctionalTest.php
+++ b/core/modules/system/src/Tests/Path/UrlAlterFunctionalTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests hook_url_alter functions.
+ * Tests altering the inbound path and the outbound path.
+ *
+ * @group Path
  */
 class UrlAlterFunctionalTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class UrlAlterFunctionalTest extends WebTestBase {
    */
   public static $modules = array('path', 'forum', 'url_alter_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'URL altering',
-      'description' => 'Tests altering the inbound path and the outbound path.',
-      'group' => 'Path API',
-    );
-  }
-
   /**
    * Test that URL altering works and that it occurs in the correct order.
    */
diff --git a/core/modules/system/src/Tests/PhpStorage/PhpStorageFactoryTest.php b/core/modules/system/src/Tests/PhpStorage/PhpStorageFactoryTest.php
index d7e4f34..166f3ff 100644
--- a/core/modules/system/src/Tests/PhpStorage/PhpStorageFactoryTest.php
+++ b/core/modules/system/src/Tests/PhpStorage/PhpStorageFactoryTest.php
@@ -17,22 +17,12 @@
 /**
  * Tests the PHP storage factory.
  *
+ * @group PhpStorage
  * @see \Drupal\Core\PhpStorage\PhpStorageFactory
  */
 class PhpStorageFactoryTest extends DrupalUnitTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'PHP storage factory tests',
-      'description' => 'Tests the PHP storage factory..',
-      'group' => 'PhpStorage',
-    );
-  }
-
-  /**
    * Tests the get() method with no settings.
    */
   public function testGetNoSettings() {
diff --git a/core/modules/system/src/Tests/Plugin/AlterDecoratorTest.php b/core/modules/system/src/Tests/Plugin/AlterDecoratorTest.php
index 552934e..b6946f3 100644
--- a/core/modules/system/src/Tests/Plugin/AlterDecoratorTest.php
+++ b/core/modules/system/src/Tests/Plugin/AlterDecoratorTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests that the AlterDecorator fires and respects the alter hook.
+ *
+ * @group Plugin
  */
 class AlterDecoratorTest extends WebTestBase {
 
@@ -29,14 +31,6 @@ class AlterDecoratorTest extends WebTestBase {
    */
   protected $alterTestPluginManager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'AlterDecorator',
-      'description' => 'Tests that the AlterDecorator fires and respects the alter hook.',
-      'group' => 'Plugin API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Plugin/CacheDecoratorLanguageTest.php b/core/modules/system/src/Tests/Plugin/CacheDecoratorLanguageTest.php
index 43d8532..6be2b6f 100644
--- a/core/modules/system/src/Tests/Plugin/CacheDecoratorLanguageTest.php
+++ b/core/modules/system/src/Tests/Plugin/CacheDecoratorLanguageTest.php
@@ -12,7 +12,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests that the AlterDecorator fires and respects the alter hook.
+ * Tests that the CacheDecorator stores definitions by language appropriately.
+ *
+ * @group Plugin
  */
 class CacheDecoratorLanguageTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class CacheDecoratorLanguageTest extends WebTestBase {
    */
   public static $modules = array('plugin_test', 'locale', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CacheDecoratorLanguage',
-      'description' => 'Tests that the CacheDecorator stores definitions by language appropriately.',
-      'group' => 'Plugin API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Plugin/CacheDecoratorTest.php b/core/modules/system/src/Tests/Plugin/CacheDecoratorTest.php
index 94ffb96..99f2d81 100644
--- a/core/modules/system/src/Tests/Plugin/CacheDecoratorTest.php
+++ b/core/modules/system/src/Tests/Plugin/CacheDecoratorTest.php
@@ -13,7 +13,9 @@
 use Drupal\Core\Plugin\Discovery\CacheDecorator;
 
 /**
- * Tests \Drupal\Core\Plugin\Discovery\CacheDecorator behavior.
+ * Tests the CacheDecorator.
+ *
+ * @group Plugin
  */
 class CacheDecoratorTest extends DiscoveryTestBase {
 
@@ -31,14 +33,6 @@ class CacheDecoratorTest extends DiscoveryTestBase {
    */
   protected $cacheKey = 'test_cacheDecorator';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CacheDecorator',
-      'description' => 'Tests the CacheDecorator.',
-      'group' => 'Plugin API',
-    );
-  }
-
   public function setUp() {
 
     parent::setUp();
diff --git a/core/modules/system/src/Tests/Plugin/Condition/RequestPathTest.php b/core/modules/system/src/Tests/Plugin/Condition/RequestPathTest.php
index 122a8a8..c1d4b2a 100644
--- a/core/modules/system/src/Tests/Plugin/Condition/RequestPathTest.php
+++ b/core/modules/system/src/Tests/Plugin/Condition/RequestPathTest.php
@@ -13,7 +13,10 @@
 use Symfony\Component\HttpFoundation\RequestStack;
 
 /**
- * Tests the Request Path condition plugin.
+ * Tests that the Request Path Condition, provided by the system module, is
+ * working properly.
+ *
+ * @group Plugin
  */
 class RequestPathTest extends KernelTestBase {
 
@@ -48,17 +51,6 @@ class RequestPathTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Request Path Condition Plugin',
-      'description' => 'Tests that the Request Path Condition, provided by the system module, is working properly.',
-      'group' => 'Condition API',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Plugin/ContextPluginTest.php b/core/modules/system/src/Tests/Plugin/ContextPluginTest.php
index cd7dbfe..af7d23a 100644
--- a/core/modules/system/src/Tests/Plugin/ContextPluginTest.php
+++ b/core/modules/system/src/Tests/Plugin/ContextPluginTest.php
@@ -12,20 +12,14 @@
 use Drupal\Component\Plugin\Exception\PluginException;
 
 /**
- * Tests that context aware plugins function correctly.
+ * Tests that contexts are properly set and working within plugins.
+ *
+ * @group Plugin
  */
 class ContextPluginTest extends DrupalUnitTestBase {
 
   public static $modules = array('system', 'user', 'node', 'field', 'filter', 'text');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Contextual Plugins',
-      'description' => 'Tests that contexts are properly set and working within plugins.',
-      'group' => 'Plugin API',
-    );
-  }
-
   /**
    * Tests basic context definition and value getters and setters.
    */
diff --git a/core/modules/system/src/Tests/Plugin/DerivativeTest.php b/core/modules/system/src/Tests/Plugin/DerivativeTest.php
index 8feeff6..3f7c7e1 100644
--- a/core/modules/system/src/Tests/Plugin/DerivativeTest.php
+++ b/core/modules/system/src/Tests/Plugin/DerivativeTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests that derivative plugins are correctly discovered.
+ *
+ * @group Plugin
  */
 class DerivativeTest extends PluginTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Derivative Discovery',
-      'description' => 'Tests that derivative plugins are correctly discovered.',
-      'group' => 'Plugin API',
-    );
-  }
-
   /**
    * Tests getDefinitions() and getDefinition() with a derivativeDecorator.
    */
diff --git a/core/modules/system/src/Tests/Plugin/Discovery/AnnotatedClassDiscoveryTest.php b/core/modules/system/src/Tests/Plugin/Discovery/AnnotatedClassDiscoveryTest.php
index 4e8620a..7d0d981 100644
--- a/core/modules/system/src/Tests/Plugin/Discovery/AnnotatedClassDiscoveryTest.php
+++ b/core/modules/system/src/Tests/Plugin/Discovery/AnnotatedClassDiscoveryTest.php
@@ -10,18 +10,12 @@
 use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery;
 
 /**
- * Tests that plugins with annotated classes are correctly discovered.
+ * Tests that plugins are correctly discovered using annotated classes.
+ *
+ * @group Plugin
  */
 class AnnotatedClassDiscoveryTest extends DiscoveryTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Annotated class discovery',
-      'description' => 'Tests that plugins are correctly discovered using annotated classes.',
-      'group' => 'Plugin API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->expectedDefinitions = array(
diff --git a/core/modules/system/src/Tests/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php b/core/modules/system/src/Tests/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php
index 76b0b95..eb5285e 100644
--- a/core/modules/system/src/Tests/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php
+++ b/core/modules/system/src/Tests/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php
@@ -12,18 +12,11 @@
 /**
  * Tests that a custom annotation class is used.
  *
+ * @group Plugin
  * @see \Drupal\plugin_test\Plugin\Annotation\PluginExample
  */
 class CustomAnnotationClassDiscoveryTest extends DiscoveryTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom annotation class discovery',
-      'description' => 'Tests that a custom annotation class is used.',
-      'group' => 'Plugin API',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Plugin/Discovery/CustomDirectoryAnnotatedClassDiscoveryTest.php b/core/modules/system/src/Tests/Plugin/Discovery/CustomDirectoryAnnotatedClassDiscoveryTest.php
index f830fc0..aa29a09 100644
--- a/core/modules/system/src/Tests/Plugin/Discovery/CustomDirectoryAnnotatedClassDiscoveryTest.php
+++ b/core/modules/system/src/Tests/Plugin/Discovery/CustomDirectoryAnnotatedClassDiscoveryTest.php
@@ -10,18 +10,13 @@
 use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery;
 
 /**
- * Tests that plugins with annotated classes in a custom directory are correctly discovered.
+ * Tests that plugins in a custom directory are correctly discovered using
+ * annotated classes.
+ *
+ * @group Plugin
  */
 class CustomDirectoryAnnotatedClassDiscoveryTest extends DiscoveryTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom directory annotation class discovery',
-      'description' => 'Tests that plugins in a custom directory are correctly discovered using annotated classes.',
-      'group' => 'Plugin API',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Plugin/Discovery/StaticDiscoveryTest.php b/core/modules/system/src/Tests/Plugin/Discovery/StaticDiscoveryTest.php
index 581c1c3..905c584 100644
--- a/core/modules/system/src/Tests/Plugin/Discovery/StaticDiscoveryTest.php
+++ b/core/modules/system/src/Tests/Plugin/Discovery/StaticDiscoveryTest.php
@@ -10,18 +10,12 @@
 use Drupal\Component\Plugin\Discovery\StaticDiscovery;
 
 /**
- * Tests that plugins are correctly discovered.
+ * Tests that plugins using static discovery are correctly discovered.
+ *
+ * @group Plugin
  */
 class StaticDiscoveryTest extends DiscoveryTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Static discovery',
-      'description' => 'Tests that plugins using static discovery are correctly discovered.',
-      'group' => 'Plugin API',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->expectedDefinitions = array(
diff --git a/core/modules/system/src/Tests/Plugin/FactoryTest.php b/core/modules/system/src/Tests/Plugin/FactoryTest.php
index 53c5430..44cf55f 100644
--- a/core/modules/system/src/Tests/Plugin/FactoryTest.php
+++ b/core/modules/system/src/Tests/Plugin/FactoryTest.php
@@ -11,17 +11,11 @@
 
 /**
  * Tests that plugins are correctly instantiated.
+ *
+ * @group Plugin
  */
 class FactoryTest extends PluginTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Factory',
-      'description' => 'Tests that plugins are correctly instantiated.',
-      'group' => 'Plugin API',
-    );
-  }
-
   /**
    * Test that DefaultFactory can create a plugin instance.
    */
diff --git a/core/modules/system/src/Tests/Plugin/InspectionTest.php b/core/modules/system/src/Tests/Plugin/InspectionTest.php
index d60feb0..e16f4bf 100644
--- a/core/modules/system/src/Tests/Plugin/InspectionTest.php
+++ b/core/modules/system/src/Tests/Plugin/InspectionTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests that plugins implementing PluginInspectionInterface are inspectable.
+ *
+ * @group Plugin
  */
 class InspectionTest extends PluginTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Inspection',
-      'description' => 'Tests that plugins implementing PluginInspectionInterface are inspectable.',
-      'group' => 'Plugin API',
-    );
-  }
-
   /**
    * Ensure the test plugins correctly implement getPluginId() and getPluginDefinition().
    */
diff --git a/core/modules/system/src/Tests/Queue/QueueTest.php b/core/modules/system/src/Tests/Queue/QueueTest.php
index 5161f56..20dd70f 100644
--- a/core/modules/system/src/Tests/Queue/QueueTest.php
+++ b/core/modules/system/src/Tests/Queue/QueueTest.php
@@ -13,7 +13,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests the basic queue functionality.
+ * Queues and dequeues a set of items to check the basic queue functionality.
+ *
+ * @group Queue
  */
 class QueueTest extends DrupalUnitTestBase {
 
@@ -24,14 +26,6 @@ class QueueTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Queue functionality',
-      'description' => 'Queues and dequeues a set of items to check the basic queue functionality.',
-      'group' => 'Queue',
-    );
-  }
-
   /**
    * Tests the System queue.
    */
diff --git a/core/modules/system/src/Tests/Routing/MatcherDumperTest.php b/core/modules/system/src/Tests/Routing/MatcherDumperTest.php
index 8831ec4..3080411 100644
--- a/core/modules/system/src/Tests/Routing/MatcherDumperTest.php
+++ b/core/modules/system/src/Tests/Routing/MatcherDumperTest.php
@@ -18,7 +18,9 @@
 use Drupal\Tests\Core\Routing\RoutingFixtures;
 
 /**
- * Basic tests for the UrlMatcherDumper.
+ * Confirm that the matcher dumper is functioning properly.
+ *
+ * @group Routing
  */
 class MatcherDumperTest extends UnitTestBase {
 
@@ -36,14 +38,6 @@ class MatcherDumperTest extends UnitTestBase {
    */
   protected $state;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Dumper tests',
-      'description' => 'Confirm that the matcher dumper is functioning properly.',
-      'group' => 'Routing',
-    );
-  }
-
   function __construct($test_id = NULL) {
     parent::__construct($test_id);
 
diff --git a/core/modules/system/src/Tests/Routing/RouteProviderTest.php b/core/modules/system/src/Tests/Routing/RouteProviderTest.php
index 2ae9d61..1600f8e 100644
--- a/core/modules/system/src/Tests/Routing/RouteProviderTest.php
+++ b/core/modules/system/src/Tests/Routing/RouteProviderTest.php
@@ -23,7 +23,9 @@
 use Drupal\Tests\Core\Routing\NullRouteBuilder;
 
 /**
- * Basic tests for the RouteProvider.
+ * Confirm that the default route provider is working correctly.
+ *
+ * @group Routing
  */
 class RouteProviderTest extends UnitTestBase {
 
@@ -48,14 +50,6 @@ class RouteProviderTest extends UnitTestBase {
    */
   protected $state;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Route Provider tests',
-      'description' => 'Confirm that the default route provider is working correctly.',
-      'group' => 'Routing',
-    );
-  }
-
   public function setUp() {
     $this->fixtures = new RoutingFixtures();
     $this->routeBuilder = new NullRouteBuilder();
diff --git a/core/modules/system/src/Tests/Routing/RouterPermissionTest.php b/core/modules/system/src/Tests/Routing/RouterPermissionTest.php
index e33156d..948017f 100644
--- a/core/modules/system/src/Tests/Routing/RouterPermissionTest.php
+++ b/core/modules/system/src/Tests/Routing/RouterPermissionTest.php
@@ -12,7 +12,9 @@
 use Symfony\Component\Routing\Exception\ResourceNotFoundException;
 
 /**
- * Basic tests for access permissions in routes.
+ * Function Tests for the routing permission system.
+ *
+ * @group Routing
  */
 class RouterPermissionTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class RouterPermissionTest extends WebTestBase {
    */
   public static $modules = array('router_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Router Permission tests',
-      'description' => 'Function Tests for the routing permission system.',
-      'group' => 'Routing',
-    );
-  }
-
   /**
    * Tests permission requirements on routes.
    */
diff --git a/core/modules/system/src/Tests/Routing/RouterTest.php b/core/modules/system/src/Tests/Routing/RouterTest.php
index 51c4063..a7bb8b2 100644
--- a/core/modules/system/src/Tests/Routing/RouterTest.php
+++ b/core/modules/system/src/Tests/Routing/RouterTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Functional class for the full integrated routing system.
+ *
+ * @group Routing
  */
 class RouterTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class RouterTest extends WebTestBase {
    */
   public static $modules = array('block', 'router_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Integrated Router tests',
-      'description' => 'Function Tests for the fully integrated routing system.',
-      'group' => 'Routing',
-    );
-  }
-
   /**
    * Confirms that the router can get to a controller.
    */
diff --git a/core/modules/system/src/Tests/ServiceProvider/ServiceProviderTest.php b/core/modules/system/src/Tests/ServiceProvider/ServiceProviderTest.php
index 32111ba..11dc736 100644
--- a/core/modules/system/src/Tests/ServiceProvider/ServiceProviderTest.php
+++ b/core/modules/system/src/Tests/ServiceProvider/ServiceProviderTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests service provider registration to the DIC.
+ *
+ * @group ServiceProvider
  */
 class ServiceProviderTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ServiceProviderTest extends WebTestBase {
    */
   public static $modules = array('file', 'service_provider_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Service Provider Registration',
-      'description' => 'Tests service provider registration to the DIC.',
-      'group' => 'Service Provider',
-    );
-  }
-
   /**
    * Tests that services provided by module service providers get registered to the DIC.
    */
diff --git a/core/modules/system/src/Tests/Session/SessionHttpsTest.php b/core/modules/system/src/Tests/Session/SessionHttpsTest.php
index a9c709c..8ff66bc 100644
--- a/core/modules/system/src/Tests/Session/SessionHttpsTest.php
+++ b/core/modules/system/src/Tests/Session/SessionHttpsTest.php
@@ -14,6 +14,8 @@
 
 /**
  * Ensure that when running under HTTPS two session cookies are generated.
+ *
+ * @group Session
  */
 class SessionHttpsTest extends WebTestBase {
 
@@ -24,14 +26,6 @@ class SessionHttpsTest extends WebTestBase {
    */
   public static $modules = array('session_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Session HTTPS handling',
-      'description' => 'Ensure that when running under HTTPS two session cookies are generated.',
-      'group' => 'Session'
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->request = Request::createFromGlobals();
diff --git a/core/modules/system/src/Tests/Session/SessionTest.php b/core/modules/system/src/Tests/Session/SessionTest.php
index 720f16f..0636336 100644
--- a/core/modules/system/src/Tests/Session/SessionTest.php
+++ b/core/modules/system/src/Tests/Session/SessionTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests session handling.
+ * Drupal session handling tests.
+ *
+ * @group Session
  */
 class SessionTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class SessionTest extends WebTestBase {
 
   protected $dumpHeaders = TRUE;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Session tests',
-      'description' => 'Drupal session handling tests.',
-      'group' => 'Session'
-    );
-  }
-
   /**
    * Tests for \Drupal\Core\Session\SessionManager::isEnabled() and ::regenerate().
    */
diff --git a/core/modules/system/src/Tests/System/AccessDeniedTest.php b/core/modules/system/src/Tests/System/AccessDeniedTest.php
index 383ace1..6ac6675 100644
--- a/core/modules/system/src/Tests/System/AccessDeniedTest.php
+++ b/core/modules/system/src/Tests/System/AccessDeniedTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests custom access denied functionality.
+ * Tests page access denied functionality, including custom 403 pages.
+ *
+ * @group system
  */
 class AccessDeniedTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class AccessDeniedTest extends WebTestBase {
 
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => '403 functionality',
-      'description' => 'Tests page access denied functionality, including custom 403 pages.',
-      'group' => 'System'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/System/AdminMetaTagTest.php b/core/modules/system/src/Tests/System/AdminMetaTagTest.php
index 928b1f6..e97d591 100644
--- a/core/modules/system/src/Tests/System/AdminMetaTagTest.php
+++ b/core/modules/system/src/Tests/System/AdminMetaTagTest.php
@@ -10,21 +10,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the fingerprinting "Generator" HTML meta tag.
+ * Confirm that the fingerprinting meta tag appears as expected.
+ *
+ * @group system
  */
 class AdminMetaTagTest extends WebTestBase {
   /**
-   * Implement getInfo().
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Fingerprinting meta tag',
-      'description' => 'Confirm that the fingerprinting meta tag appears as expected.',
-      'group' => 'System'
-    );
-  }
-
-  /**
    * Verify that the meta tag HTML is generated correctly.
    */
   public function testMetaTag() {
diff --git a/core/modules/system/src/Tests/System/AdminTest.php b/core/modules/system/src/Tests/System/AdminTest.php
index 839f3e0..950194f 100644
--- a/core/modules/system/src/Tests/System/AdminTest.php
+++ b/core/modules/system/src/Tests/System/AdminTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests administrative overview pages.
+ * Tests output on administrative pages and compact mode functionality.
+ *
+ * @group system
  */
 class AdminTest extends WebTestBase {
 
@@ -35,14 +37,6 @@ class AdminTest extends WebTestBase {
    */
   public static $modules = array('locale');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Administrative pages',
-      'description' => 'Tests output on administrative pages and compact mode functionality.',
-      'group' => 'System',
-    );
-  }
-
   function setUp() {
     // testAdminPages() requires Locale module.
     parent::setUp();
diff --git a/core/modules/system/src/Tests/System/CronQueueTest.php b/core/modules/system/src/Tests/System/CronQueueTest.php
index 389e880..a74838b 100644
--- a/core/modules/system/src/Tests/System/CronQueueTest.php
+++ b/core/modules/system/src/Tests/System/CronQueueTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the handling of exceptions thrown by queue workers.
+ * Tests the Cron Queue runner.
+ *
+ * @group system
  */
 class CronQueueTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class CronQueueTest extends WebTestBase {
    */
   public static $modules = array('cron_queue_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Cron Queue functionality',
-      'description' => 'Tests the Cron Queue runner.',
-      'group' => 'Queue',
-    );
-  }
-
   /**
    * Tests that exceptions thrown by workers are handled properly.
    */
diff --git a/core/modules/system/src/Tests/System/CronRunTest.php b/core/modules/system/src/Tests/System/CronRunTest.php
index 8aa4069..39fe2b6 100644
--- a/core/modules/system/src/Tests/System/CronRunTest.php
+++ b/core/modules/system/src/Tests/System/CronRunTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests cron runs.
+ *
+ * @group system
  */
 class CronRunTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class CronRunTest extends WebTestBase {
    */
   public static $modules = array('common_test', 'common_test_cron_helper');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Cron run',
-      'description' => 'Test cron run.',
-      'group' => 'System',
-    );
-  }
-
   /**
    * Test cron runs.
    */
diff --git a/core/modules/system/src/Tests/System/DateFormatsLockedTest.php b/core/modules/system/src/Tests/System/DateFormatsLockedTest.php
index a7415e1..7f9d6c0 100644
--- a/core/modules/system/src/Tests/System/DateFormatsLockedTest.php
+++ b/core/modules/system/src/Tests/System/DateFormatsLockedTest.php
@@ -11,21 +11,12 @@
 
 /**
  * Tests the locked functionality of date formats.
+ *
+ * @group system
  */
 class DateFormatsLockedTest extends WebTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Locked date formats',
-      'description' => 'Tests the locked functionality of date formats.',
-      'group' => 'System',
-    );
-  }
-
-  /**
    * Tests attempts at listing, editing, and deleting locked date formats.
    */
   public function testDateLocking() {
diff --git a/core/modules/system/src/Tests/System/DateFormatsMachineNameTest.php b/core/modules/system/src/Tests/System/DateFormatsMachineNameTest.php
index 495ab87..218ce12 100644
--- a/core/modules/system/src/Tests/System/DateFormatsMachineNameTest.php
+++ b/core/modules/system/src/Tests/System/DateFormatsMachineNameTest.php
@@ -11,24 +11,15 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for date format machine names.
+ * Tests validity of date format machine names.
+ *
+ * @group system
  */
 class DateFormatsMachineNameTest extends WebTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Date format ids',
-      'description' => 'Tests validity of date format machine names.',
-      'group' => 'System',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     // Create a new administrator user for the test.
diff --git a/core/modules/system/src/Tests/System/DateTimeTest.php b/core/modules/system/src/Tests/System/DateTimeTest.php
index b7188a9..2300b86 100644
--- a/core/modules/system/src/Tests/System/DateTimeTest.php
+++ b/core/modules/system/src/Tests/System/DateTimeTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests generic date and time handling capabilities of Drupal.
+ * Configure date and time settings. Test date formatting and time zone
+ * handling, including daylight saving time.
+ *
+ * @group system
  */
 class DateTimeTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class DateTimeTest extends WebTestBase {
    */
   public static $modules = array('node', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Date and time',
-      'description' => 'Configure date and time settings. Test date formatting and time zone handling, including daylight saving time.',
-      'group' => 'System',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/System/DefaultMobileMetaTagsTest.php b/core/modules/system/src/Tests/System/DefaultMobileMetaTagsTest.php
index b235aed..f31ba9c 100644
--- a/core/modules/system/src/Tests/System/DefaultMobileMetaTagsTest.php
+++ b/core/modules/system/src/Tests/System/DefaultMobileMetaTagsTest.php
@@ -11,17 +11,11 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests default mobile meta tags on HTML pages.
+ * Confirm that the default mobile meta tags appear as expected.
+ *
+ * @group system
  */
 class DefaultMobileMetaTagsTest extends WebTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Default mobile meta tags',
-      'description' => 'Confirm that the default mobile meta tags appear as expected.',
-      'group' => 'System'
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->default_metatags = array(
diff --git a/core/modules/system/src/Tests/System/ErrorHandlerTest.php b/core/modules/system/src/Tests/System/ErrorHandlerTest.php
index 2356a84..69f1760 100644
--- a/core/modules/system/src/Tests/System/ErrorHandlerTest.php
+++ b/core/modules/system/src/Tests/System/ErrorHandlerTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests error and exception handlers.
+ * Performs tests on the Drupal error and exception handler.
+ *
+ * @group system
  */
 class ErrorHandlerTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ErrorHandlerTest extends WebTestBase {
    */
   public static $modules = array('error_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Error handlers',
-      'description' => 'Performs tests on the Drupal error and exception handler.',
-      'group' => 'System',
-    );
-  }
-
   /**
    * Test the error handler.
    */
diff --git a/core/modules/system/src/Tests/System/FloodTest.php b/core/modules/system/src/Tests/System/FloodTest.php
index 71de877..d1aa546 100644
--- a/core/modules/system/src/Tests/System/FloodTest.php
+++ b/core/modules/system/src/Tests/System/FloodTest.php
@@ -12,23 +12,14 @@
 
 /**
  * Functional tests for the flood control mechanism.
+ *
+ * @group system
  */
 class FloodTest extends WebTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Flood control mechanism',
-      'description' => 'Functional tests for the flood control mechanism.',
-      'group' => 'System',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/System/FrontPageTest.php b/core/modules/system/src/Tests/System/FrontPageTest.php
index f017faf..fd72bc2 100644
--- a/core/modules/system/src/Tests/System/FrontPageTest.php
+++ b/core/modules/system/src/Tests/System/FrontPageTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test front page functionality and administration.
+ * Tests front page functionality and administration.
+ *
+ * @group system
  */
 class FrontPageTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class FrontPageTest extends WebTestBase {
    */
   public static $modules = array('node', 'system_test', 'views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Front page',
-      'description' => 'Tests front page functionality and administration.',
-      'group' => 'System',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/System/IgnoreReplicaSubscriberTest.php b/core/modules/system/src/Tests/System/IgnoreReplicaSubscriberTest.php
index c23fe5d..49d11ec 100644
--- a/core/modules/system/src/Tests/System/IgnoreReplicaSubscriberTest.php
+++ b/core/modules/system/src/Tests/System/IgnoreReplicaSubscriberTest.php
@@ -15,18 +15,12 @@
 use Symfony\Component\HttpKernel\Event\GetResponseEvent;
 
 /**
- * Tests the event subscriber that disables the replica database.
+ * Tests that ReplicaDatabaseIgnoreSubscriber functions correctly.
+ *
+ * @group system
  */
 class IgnoreReplicaSubscriberTest extends UnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Replica database ignoring event listener',
-      'description' => 'Tests that ReplicaDatabaseIgnoreSubscriber functions correctly.',
-      'group' => 'System',
-    );
-  }
-
   /**
    * Tests \Drupal\Core\EventSubscriber\ReplicaDatabaseIgnoreSubscriber::checkReplicaServer().
    */
diff --git a/core/modules/system/src/Tests/System/IndexPhpTest.php b/core/modules/system/src/Tests/System/IndexPhpTest.php
index c1768fb..1e83917 100644
--- a/core/modules/system/src/Tests/System/IndexPhpTest.php
+++ b/core/modules/system/src/Tests/System/IndexPhpTest.php
@@ -10,17 +10,11 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test the handling of requests containing 'index.php'.
+ * Tests the handling of requests containing 'index.php'.
+ *
+ * @group system
  */
 class IndexPhpTest extends WebTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Index.php handling',
-      'description' => "Test the handling of requests containing 'index.php'.",
-      'group' => 'System',
-    );
-  }
-
   function setUp() {
     parent::setUp();
   }
diff --git a/core/modules/system/src/Tests/System/InfoAlterTest.php b/core/modules/system/src/Tests/System/InfoAlterTest.php
index 31387d0..b9a5030 100644
--- a/core/modules/system/src/Tests/System/InfoAlterTest.php
+++ b/core/modules/system/src/Tests/System/InfoAlterTest.php
@@ -11,19 +11,13 @@
 
 /**
  * Tests the effectiveness of hook_system_info_alter().
+ *
+ * @group system
  */
 class InfoAlterTest extends DrupalUnitTestBase {
 
   public static $modules = array('system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'System info alter',
-      'description' => 'Tests the effectiveness of hook_system_info_alter().',
-      'group' => 'System',
-    );
-  }
-
   /**
    * Tests that theme .info.yml data is rebuild after enabling a module.
    *
diff --git a/core/modules/system/src/Tests/System/MainContentFallbackTest.php b/core/modules/system/src/Tests/System/MainContentFallbackTest.php
index 69b1bd3..1841590 100644
--- a/core/modules/system/src/Tests/System/MainContentFallbackTest.php
+++ b/core/modules/system/src/Tests/System/MainContentFallbackTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test main content rendering fallback provided by system module.
+ *  Test system module main content rendering fallback.
+ *
+ * @group system
  */
 class MainContentFallbackTest extends WebTestBase {
 
@@ -24,14 +26,6 @@ class MainContentFallbackTest extends WebTestBase {
   protected $admin_user;
   protected $web_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Main content rendering fallback',
-      'description' => ' Test system module main content rendering fallback.',
-      'group' => 'System',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/System/PageNotFoundTest.php b/core/modules/system/src/Tests/System/PageNotFoundTest.php
index b7a7c0a..89066a6 100644
--- a/core/modules/system/src/Tests/System/PageNotFoundTest.php
+++ b/core/modules/system/src/Tests/System/PageNotFoundTest.php
@@ -10,19 +10,13 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests "404 Not found" pages and custom 404 pages.
+ * Tests page not found functionality, including custom 404 pages.
+ *
+ * @group system
  */
 class PageNotFoundTest extends WebTestBase {
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => '404 functionality',
-      'description' => "Tests page not found functionality, including custom 404 pages.",
-      'group' => 'System'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/System/PageTitleTest.php b/core/modules/system/src/Tests/System/PageTitleTest.php
index 977b60d..4daa836 100644
--- a/core/modules/system/src/Tests/System/PageTitleTest.php
+++ b/core/modules/system/src/Tests/System/PageTitleTest.php
@@ -14,6 +14,8 @@
 
 /**
  * Tests HTML output escaping of page title, site name, and slogan.
+ *
+ * @group system
  */
 class PageTitleTest extends WebTestBase {
 
@@ -28,17 +30,6 @@ class PageTitleTest extends WebTestBase {
   protected $saved_title;
 
   /**
-   * Implement getInfo().
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Page titles',
-      'description' => 'Tests correct escaping of page title, site name and slogan.',
-      'group' => 'System'
-    );
-  }
-
-  /**
    * Implement setUp().
    */
   function setUp() {
diff --git a/core/modules/system/src/Tests/System/PasswordHashingTest.php b/core/modules/system/src/Tests/System/PasswordHashingTest.php
index 53ff2fc..b3c7aad 100644
--- a/core/modules/system/src/Tests/System/PasswordHashingTest.php
+++ b/core/modules/system/src/Tests/System/PasswordHashingTest.php
@@ -11,7 +11,9 @@
 use Drupal\Core\Password\PhpassHashedPassword;
 
 /**
- * Unit tests for password hashing API.
+ * Password hashing unit tests.
+ *
+ * @group system
  */
 class PasswordHashingTest extends DrupalUnitTestBase {
 
@@ -22,14 +24,6 @@ class PasswordHashingTest extends DrupalUnitTestBase {
    */
   public static $modules = array('field', 'user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Password hashing',
-      'description' => 'Password hashing unit tests.',
-      'group' => 'System',
-    );
-  }
-
   /**
    * Test password hashing.
    */
diff --git a/core/modules/system/src/Tests/System/RetrieveFileTest.php b/core/modules/system/src/Tests/System/RetrieveFileTest.php
index a7f7a50..256415a 100644
--- a/core/modules/system/src/Tests/System/RetrieveFileTest.php
+++ b/core/modules/system/src/Tests/System/RetrieveFileTest.php
@@ -10,17 +10,11 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test HTTP file downloading capability.
+ * Tests HTTP file fetching and error handling.
+ *
+ * @group system
  */
 class RetrieveFileTest extends WebTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'HTTP file retrieval',
-      'description' => 'Checks HTTP file fetching and error handling.',
-      'group' => 'System',
-    );
-  }
-
   /**
    * Invokes system_retrieve_file() in several scenarios.
    */
diff --git a/core/modules/system/src/Tests/System/ScriptTest.php b/core/modules/system/src/Tests/System/ScriptTest.php
index 9ba2e5c..569872a 100644
--- a/core/modules/system/src/Tests/System/ScriptTest.php
+++ b/core/modules/system/src/Tests/System/ScriptTest.php
@@ -12,21 +12,12 @@
 
 /**
  * Tests core shell scripts.
+ *
+ * @group system
  */
 class ScriptTest extends DrupalUnitTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Shell scripts',
-      'description' => 'Tests Core utility shell scripts.',
-      'group' => 'System',
-    );
-  }
-
-  /**
    * Tests password-hash.sh.
    */
   public function testPasswordHashSh() {
diff --git a/core/modules/system/src/Tests/System/SettingsRewriteTest.php b/core/modules/system/src/Tests/System/SettingsRewriteTest.php
index 5ea0bda..5dcb7b6 100644
--- a/core/modules/system/src/Tests/System/SettingsRewriteTest.php
+++ b/core/modules/system/src/Tests/System/SettingsRewriteTest.php
@@ -12,16 +12,10 @@
 
 /**
  * Tests the drupal_rewrite_settings() function.
+ *
+ * @group system
  */
 class SettingsRewriteTest extends UnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'drupal_rewrite_settings()',
-      'description' => 'Tests the drupal_rewrite_settings() function.',
-      'group' => 'System',
-    );
-  }
-
   /**
    * Tests the drupal_rewrite_settings() function.
    */
diff --git a/core/modules/system/src/Tests/System/ShutdownFunctionsTest.php b/core/modules/system/src/Tests/System/ShutdownFunctionsTest.php
index be463ab..17b4026 100644
--- a/core/modules/system/src/Tests/System/ShutdownFunctionsTest.php
+++ b/core/modules/system/src/Tests/System/ShutdownFunctionsTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Functional tests shutdown functions.
+ *
+ * @group system
  */
 class ShutdownFunctionsTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ShutdownFunctionsTest extends WebTestBase {
    */
   public static $modules = array('system_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Shutdown functions',
-      'description' => 'Functional tests for shutdown functions',
-      'group' => 'System',
-    );
-  }
-
   protected function tearDown() {
     // This test intentionally throws an exception in a PHP shutdown function.
     // Prevent it from being interpreted as an actual test failure.
diff --git a/core/modules/system/src/Tests/System/SiteMaintenanceTest.php b/core/modules/system/src/Tests/System/SiteMaintenanceTest.php
index 9c291f1..7368511 100644
--- a/core/modules/system/src/Tests/System/SiteMaintenanceTest.php
+++ b/core/modules/system/src/Tests/System/SiteMaintenanceTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests site maintenance functionality.
+ * Tests access to site while in maintenance mode.
+ *
+ * @group system
  */
 class SiteMaintenanceTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class SiteMaintenanceTest extends WebTestBase {
 
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Site maintenance mode functionality',
-      'description' => 'Test access to site while in maintenance mode.',
-      'group' => 'System',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/System/StatusTest.php b/core/modules/system/src/Tests/System/StatusTest.php
index e2a4298..56cc21a 100644
--- a/core/modules/system/src/Tests/System/StatusTest.php
+++ b/core/modules/system/src/Tests/System/StatusTest.php
@@ -10,24 +10,15 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests administrative status page.
+ * Tests output on the status overview page.
+ *
+ * @group system
  */
 class StatusTest extends WebTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Status page',
-      'description' => 'Tests output on the status overview page.',
-      'group' => 'System',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/System/SystemAuthorizeTest.php b/core/modules/system/src/Tests/System/SystemAuthorizeTest.php
index 3b2dc19..53e5c80 100644
--- a/core/modules/system/src/Tests/System/SystemAuthorizeTest.php
+++ b/core/modules/system/src/Tests/System/SystemAuthorizeTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests authorize.php and related hooks.
+ * Tests the authorize.php script and related API.
+ *
+ * @group system
  */
 class SystemAuthorizeTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class SystemAuthorizeTest extends WebTestBase {
    */
   public static $modules = array('system_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Authorize API',
-      'description' => 'Tests the authorize.php script and related API.',
-      'group' => 'System',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/System/ThemeTest.php b/core/modules/system/src/Tests/System/ThemeTest.php
index 38d5a94..15298f6 100644
--- a/core/modules/system/src/Tests/System/ThemeTest.php
+++ b/core/modules/system/src/Tests/System/ThemeTest.php
@@ -11,7 +11,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the theme interface functionality.
+ * Tests the theme interface functionality by enabling and switching themes, and
+ * using an administration theme.
+ *
+ * @group system
  */
 class ThemeTest extends WebTestBase {
 
@@ -22,14 +25,6 @@ class ThemeTest extends WebTestBase {
    */
   public static $modules = array('node', 'block', 'file');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme interface functionality',
-      'description' => 'Tests the theme interface functionality by enabling and switching themes, and using an administration theme.',
-      'group' => 'System',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php b/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
index 4ea7da1..867ef2d 100644
--- a/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
+++ b/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
@@ -11,18 +11,13 @@
 use Drupal\Component\Utility\Xss;
 
 /**
- * Test token replacement in strings.
+ * Generates text using placeholders for dummy content to check token
+ * replacement.
+ *
+ * @group system
  */
 class TokenReplaceUnitTest extends TokenReplaceUnitTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Token replacement unit test',
-      'description' => 'Generates text using placeholders for dummy content to check token replacement.',
-      'group' => 'System',
-    );
-  }
-
   /**
    * Test whether token-replacement works in various contexts.
    */
diff --git a/core/modules/system/src/Tests/System/TokenScanTest.php b/core/modules/system/src/Tests/System/TokenScanTest.php
index ce29a08..4cb2d69 100644
--- a/core/modules/system/src/Tests/System/TokenScanTest.php
+++ b/core/modules/system/src/Tests/System/TokenScanTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test token replacement in strings.
+ * Scan token-like patterns in a dummy text to check token scanning.
+ *
+ * @group system
  */
 class TokenScanTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Token scanning',
-      'description' => 'Scan token-like patterns in a dummy text to check token scanning.',
-      'group' => 'System',
-    );
-  }
-
   /**
    * Scans dummy text, then tests the output.
    */
diff --git a/core/modules/system/src/Tests/Theme/EntityFilteringThemeTest.php b/core/modules/system/src/Tests/Theme/EntityFilteringThemeTest.php
index b2816aa..cbb2492 100644
--- a/core/modules/system/src/Tests/Theme/EntityFilteringThemeTest.php
+++ b/core/modules/system/src/Tests/Theme/EntityFilteringThemeTest.php
@@ -13,7 +13,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests filtering for XSS in rendered entity templates in all themes.
+ * Tests themed output for each entity type in all available themes to ensure
+ * entity labels are filtered for XSS.
+ *
+ * @group Theme
  */
 class EntityFilteringThemeTest extends WebTestBase {
 
@@ -72,14 +75,6 @@ class EntityFilteringThemeTest extends WebTestBase {
    */
   protected $xss_label = "string with <em>HTML</em> and <script>alert('JS');</script>";
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity filtering theme test',
-      'description' => 'Tests themed output for each entity type in all available themes to ensure entity labels are filtered for XSS.',
-      'group' => 'Theme',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/src/Tests/Theme/FastTest.php b/core/modules/system/src/Tests/Theme/FastTest.php
index 226213b..2266ea5 100644
--- a/core/modules/system/src/Tests/Theme/FastTest.php
+++ b/core/modules/system/src/Tests/Theme/FastTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests autocompletion not loading registry.
+ *
+ * @group Theme
  */
 class FastTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class FastTest extends WebTestBase {
    */
   public static $modules = array('theme_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme fast initialization',
-      'description' => 'Test that autocompletion does not load the registry.',
-      'group' => 'Theme'
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->account = $this->drupalCreateUser(array('access user profiles'));
diff --git a/core/modules/system/src/Tests/Theme/FunctionsTest.php b/core/modules/system/src/Tests/Theme/FunctionsTest.php
index c1b0433..f6eaa6c 100644
--- a/core/modules/system/src/Tests/Theme/FunctionsTest.php
+++ b/core/modules/system/src/Tests/Theme/FunctionsTest.php
@@ -15,6 +15,8 @@
 
 /**
  * Tests for common theme functions.
+ *
+ * @group Theme
  */
 class FunctionsTest extends WebTestBase {
 
@@ -25,14 +27,6 @@ class FunctionsTest extends WebTestBase {
    */
   public static $modules = array('router_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme functions',
-      'description' => 'Tests common theme functions.',
-      'group' => 'Theme',
-    );
-  }
-
   /**
    * Tests theme_item_list().
    */
diff --git a/core/modules/system/src/Tests/Theme/HtmlAttributesTest.php b/core/modules/system/src/Tests/Theme/HtmlAttributesTest.php
index 2ba1ebc..6bdf042 100644
--- a/core/modules/system/src/Tests/Theme/HtmlAttributesTest.php
+++ b/core/modules/system/src/Tests/Theme/HtmlAttributesTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional tests for 'html' and 'body' element attributes.
+ * Tests attributes inserted in the 'html' and 'body' elements on the page.
+ *
+ * @group Theme
  */
 class HtmlAttributesTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class HtmlAttributesTest extends WebTestBase {
    */
   public static $modules = array('theme_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => "'html' and 'body' element attributes",
-      'description' => "Test attributes inserted in the 'html' and 'body' elements on the page.",
-      'group' => 'Theme',
-    );
-  }
-
   /**
    * Tests that attributes in the 'html' and 'body' elements can be altered.
    */
diff --git a/core/modules/system/src/Tests/Theme/RegistryTest.php b/core/modules/system/src/Tests/Theme/RegistryTest.php
index b2bfd3e..57adf4f 100644
--- a/core/modules/system/src/Tests/Theme/RegistryTest.php
+++ b/core/modules/system/src/Tests/Theme/RegistryTest.php
@@ -11,7 +11,9 @@
 use Drupal\Core\Utility\ThemeRegistry;
 
 /**
- * Tests the ThemeRegistry class.
+ * Tests the behavior of the ThemeRegistry class.
+ *
+ * @group Theme
  */
 class RegistryTest extends WebTestBase {
 
@@ -23,14 +25,6 @@ class RegistryTest extends WebTestBase {
   public static $modules = array('theme_test');
 
   protected $profile = 'testing';
-  public static function getInfo() {
-    return array(
-      'name' => 'ThemeRegistry',
-      'description' => 'Tests the behavior of the ThemeRegistry class',
-      'group' => 'Theme',
-    );
-  }
-
   /**
    * Tests the behavior of the theme registry class.
    */
diff --git a/core/modules/system/src/Tests/Theme/TableTest.php b/core/modules/system/src/Tests/Theme/TableTest.php
index 6b9c5ef..e9fdb5b 100644
--- a/core/modules/system/src/Tests/Theme/TableTest.php
+++ b/core/modules/system/src/Tests/Theme/TableTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Unit tests for theme_table().
+ * Tests built-in table theme functions.
+ *
+ * @group Theme
  */
 class TableTest extends DrupalUnitTestBase {
 
@@ -22,14 +24,6 @@ class TableTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme Table',
-      'description' => 'Tests built-in table theme functions.',
-      'group' => 'Theme',
-    );
-  }
-
   /**
    * Tableheader.js provides 'sticky' table headers, and is included by default.
    */
diff --git a/core/modules/system/src/Tests/Theme/ThemeEarlyInitializationTest.php b/core/modules/system/src/Tests/Theme/ThemeEarlyInitializationTest.php
index b2d1b45..04730d2 100644
--- a/core/modules/system/src/Tests/Theme/ThemeEarlyInitializationTest.php
+++ b/core/modules/system/src/Tests/Theme/ThemeEarlyInitializationTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional test for initialization of the theme system early in the request.
+ * Tests that the theme system can be correctly initialized early in the page
+ * request.
+ *
+ * @group Theme
  */
 class ThemeEarlyInitializationTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class ThemeEarlyInitializationTest extends WebTestBase {
    */
   public static $modules = array('theme_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Early theme initialization',
-      'description' => 'Tests that the theme system can be correctly initialized early in the page request.',
-      'group' => 'Theme',
-    );
-  }
-
   /**
    * Test that the theme system can generate output in a request listener.
    */
diff --git a/core/modules/system/src/Tests/Theme/ThemeInfoStylesTest.php b/core/modules/system/src/Tests/Theme/ThemeInfoStylesTest.php
index c152a27..764d0b9 100644
--- a/core/modules/system/src/Tests/Theme/ThemeInfoStylesTest.php
+++ b/core/modules/system/src/Tests/Theme/ThemeInfoStylesTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests processing of theme .info.yml stylesheets.
+ *
+ * @group Theme
  */
 class ThemeInfoStylesTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ThemeInfoStylesTest extends WebTestBase {
    */
   public static $modules = array('theme_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme .info.yml styles',
-      'description' => 'Tests processing of theme .info.yml stylesheets.',
-      'group' => 'Theme',
-    );
-  }
-
   /**
    * Tests stylesheets-override and stylesheets-remove.
    */
diff --git a/core/modules/system/src/Tests/Theme/ThemeSettingsTest.php b/core/modules/system/src/Tests/Theme/ThemeSettingsTest.php
index a398e5f..3ca4d34 100644
--- a/core/modules/system/src/Tests/Theme/ThemeSettingsTest.php
+++ b/core/modules/system/src/Tests/Theme/ThemeSettingsTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests theme settings functionality.
+ *
+ * @group Theme
  */
 class ThemeSettingsTest extends DrupalUnitTestBase {
 
@@ -30,14 +32,6 @@ class ThemeSettingsTest extends DrupalUnitTestBase {
    */
   protected $availableThemes;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme settings',
-      'description' => 'Tests theme settings functionality.',
-      'group' => 'Theme',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Theme settings rely on System module's system.theme.global configuration.
diff --git a/core/modules/system/src/Tests/Theme/ThemeSuggestionsAlterTest.php b/core/modules/system/src/Tests/Theme/ThemeSuggestionsAlterTest.php
index 202ddd2..48e8718 100644
--- a/core/modules/system/src/Tests/Theme/ThemeSuggestionsAlterTest.php
+++ b/core/modules/system/src/Tests/Theme/ThemeSuggestionsAlterTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests theme suggestion alter hooks.
+ *
+ * @group Theme
  */
 class ThemeSuggestionsAlterTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class ThemeSuggestionsAlterTest extends WebTestBase {
    */
   public static $modules = array('theme_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme suggestions alter',
-      'description' => 'Test theme suggestion alter hooks.',
-      'group' => 'Theme',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     theme_enable(array('test_theme'));
diff --git a/core/modules/system/src/Tests/Theme/ThemeTest.php b/core/modules/system/src/Tests/Theme/ThemeTest.php
index 7d5e16e..d41ec8d 100644
--- a/core/modules/system/src/Tests/Theme/ThemeTest.php
+++ b/core/modules/system/src/Tests/Theme/ThemeTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests low-level theme functions.
+ *
+ * @group Theme
  */
 class ThemeTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class ThemeTest extends WebTestBase {
    */
   public static $modules = array('theme_test', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme API',
-      'description' => 'Test low-level theme functions.',
-      'group' => 'Theme',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     theme_enable(array('test_theme'));
diff --git a/core/modules/system/src/Tests/Theme/ThemeTestPhpTemplate.php b/core/modules/system/src/Tests/Theme/ThemeTestPhpTemplate.php
index 35680fa..cced6e6 100644
--- a/core/modules/system/src/Tests/Theme/ThemeTestPhpTemplate.php
+++ b/core/modules/system/src/Tests/Theme/ThemeTestPhpTemplate.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests theme functions and templates with the PHPTemplate engine.
+ * Tests theme functions with PHPTemplate.
+ *
+ * @group Theme
  */
 class ThemeTestPhpTemplate extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ThemeTestPhpTemplate extends WebTestBase {
    */
   public static $modules = array('theme_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'PHPTemplate Engine',
-      'description' => 'Test theme functions with PHPTemplate.',
-      'group' => 'Theme',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     theme_enable(array('test_theme_phptemplate'));
diff --git a/core/modules/system/src/Tests/Theme/ThemeTestTwig.php b/core/modules/system/src/Tests/Theme/ThemeTestTwig.php
index 2dce51f..35023b9 100644
--- a/core/modules/system/src/Tests/Theme/ThemeTestTwig.php
+++ b/core/modules/system/src/Tests/Theme/ThemeTestTwig.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests theme functions with the Twig engine.
+ * Tests Twig-specific theme functionality.
+ *
+ * @group Theme
  */
 class ThemeTestTwig extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ThemeTestTwig extends WebTestBase {
    */
   public static $modules = array('theme_test', 'twig_theme_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Twig Engine',
-      'description' => 'Test Twig-specific theme functionality.',
-      'group' => 'Theme',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     theme_enable(array('test_theme'));
diff --git a/core/modules/system/src/Tests/Theme/TwigDebugMarkupTest.php b/core/modules/system/src/Tests/Theme/TwigDebugMarkupTest.php
index 6915b6f..2836c2c 100644
--- a/core/modules/system/src/Tests/Theme/TwigDebugMarkupTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigDebugMarkupTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests for Twig debug markup.
+ *
+ * @group Theme
  */
 class TwigDebugMarkupTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class TwigDebugMarkupTest extends WebTestBase {
    */
   public static $modules = array('theme_test', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Twig debug markup',
-      'description' => 'Tests Twig debug markup.',
-      'group' => 'Theme',
-    );
-  }
-
   /**
    * Tests debug markup added to Twig template output.
    */
diff --git a/core/modules/system/src/Tests/Theme/TwigExtensionTest.php b/core/modules/system/src/Tests/Theme/TwigExtensionTest.php
index 8fdc293..0191657 100644
--- a/core/modules/system/src/Tests/Theme/TwigExtensionTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigExtensionTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests Twig extensions.
+ *
+ * @group Theme
  */
 class TwigExtensionTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class TwigExtensionTest extends WebTestBase {
    */
   public static $modules = array('theme_test', 'twig_extension_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Twig Extension',
-      'description' => 'Tests Twig extensions.',
-      'group' => 'Theme',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     theme_enable(array('test_theme'));
diff --git a/core/modules/system/src/Tests/Theme/TwigFilterTest.php b/core/modules/system/src/Tests/Theme/TwigFilterTest.php
index 9b514d7..c22be7f 100644
--- a/core/modules/system/src/Tests/Theme/TwigFilterTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigFilterTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests Drupal's Twig filters.
+ *
+ * @group Theme
  */
 class TwigFilterTest extends WebTestBase {
 
@@ -23,17 +25,6 @@ class TwigFilterTest extends WebTestBase {
   public static $modules = array('twig_theme_test');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Twig Filters',
-      'description' => 'Test Drupal\'s Twig filters.',
-      'group' => 'Theme',
-    );
-  }
-
-  /**
    * Test Twig "without" filter.
    */
   public function testTwigWithoutFilter() {
diff --git a/core/modules/system/src/Tests/Theme/TwigNamespaceTest.php b/core/modules/system/src/Tests/Theme/TwigNamespaceTest.php
index 2d5ea69..0d8bead 100644
--- a/core/modules/system/src/Tests/Theme/TwigNamespaceTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigNamespaceTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests Twig namespaces.
+ *
+ * @group Theme
  */
 class TwigNamespaceTest extends WebTestBase {
 
@@ -26,14 +28,6 @@ class TwigNamespaceTest extends WebTestBase {
    */
   protected $twig;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Twig Namespaces',
-      'description' => 'Tests Twig namespaces.',
-      'group' => 'Theme',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     theme_enable(array('test_theme', 'bartik'));
diff --git a/core/modules/system/src/Tests/Theme/TwigRawTest.php b/core/modules/system/src/Tests/Theme/TwigRawTest.php
index e93585c..5f8f0a8 100644
--- a/core/modules/system/src/Tests/Theme/TwigRawTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigRawTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests 'raw' Twig filter.
+ * Tests Twig 'raw' filter.
+ *
+ * @group Theme
  */
 class TwigRawTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class TwigRawTest extends WebTestBase {
    */
   public static $modules = array('twig_theme_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Twig raw filter',
-      'description' => "Tests Twig 'raw' filter.",
-      'group' => 'Theme',
-    );
-  }
-
   /**
    * Tests the raw filter inside an autoescape tag.
    */
diff --git a/core/modules/system/src/Tests/Theme/TwigSettingsTest.php b/core/modules/system/src/Tests/Theme/TwigSettingsTest.php
index 6dff9ac..630fc14 100644
--- a/core/modules/system/src/Tests/Theme/TwigSettingsTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigSettingsTest.php
@@ -11,7 +11,9 @@
 use Drupal\Core\PhpStorage\PhpStorageFactory;
 
 /**
- * Tests Twig engine configuration via settings.php.
+ * Tests overriding Twig engine settings via settings.php.
+ *
+ * @group Theme
  */
 class TwigSettingsTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class TwigSettingsTest extends WebTestBase {
    */
   public static $modules = array('theme_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Twig Settings',
-      'description' => 'Tests overriding Twig engine settings via settings.php.',
-      'group' => 'Theme',
-    );
-  }
-
   /**
    * Ensures Twig template auto reload setting can be overridden.
    */
diff --git a/core/modules/system/src/Tests/Theme/TwigTransTest.php b/core/modules/system/src/Tests/Theme/TwigTransTest.php
index 9b6fd00..651bd4d 100644
--- a/core/modules/system/src/Tests/Theme/TwigTransTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigTransTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests Twig "trans" tags.
+ *
+ * @group Theme
  */
 class TwigTransTest extends WebTestBase {
 
@@ -44,20 +46,6 @@ class TwigTransTest extends WebTestBase {
   );
 
   /**
-   * Defines information about this test.
-   *
-   * @return array
-   *   An associative array of information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Twig Translation',
-      'description' => 'Test Twig "trans" tags.',
-      'group' => 'Theme',
-    );
-  }
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
diff --git a/core/modules/system/src/Tests/Transliteration/TransliterationTest.php b/core/modules/system/src/Tests/Transliteration/TransliterationTest.php
index 2e5ed60..27aa4dd 100644
--- a/core/modules/system/src/Tests/Transliteration/TransliterationTest.php
+++ b/core/modules/system/src/Tests/Transliteration/TransliterationTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests Transliteration component functionality.
+ *
+ * @group Transliteration
  */
 class TransliterationTest extends DrupalUnitTestBase {
   /**
@@ -21,14 +23,6 @@ class TransliterationTest extends DrupalUnitTestBase {
    */
   public static $modules = array('transliterate_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Transliteration functionality',
-      'description' => 'Tests Transliteration component functionality.',
-      'group' => 'Transliteration',
-    );
-  }
-
   /**
    * Tests the PHPTransliteration class.
    */
diff --git a/core/modules/system/src/Tests/TypedData/TypedDataDefinitionTest.php b/core/modules/system/src/Tests/TypedData/TypedDataDefinitionTest.php
index aa9d3c1..d5da1b7 100644
--- a/core/modules/system/src/Tests/TypedData/TypedDataDefinitionTest.php
+++ b/core/modules/system/src/Tests/TypedData/TypedDataDefinitionTest.php
@@ -19,6 +19,8 @@
 
 /**
  * Tests deriving metadata of core data types.
+ *
+ * @group TypedData
  */
 class TypedDataDefinitionTest extends DrupalUnitTestBase {
 
@@ -29,14 +31,6 @@ class TypedDataDefinitionTest extends DrupalUnitTestBase {
    */
   protected $typedDataManager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Typed data definitions',
-      'description' => 'Tests reading and deriving metadata of core data types.',
-      'group' => 'Typed Data API',
-    );
-  }
-
   public function setUp() {
     parent::setup();
     $this->typedDataManager = $this->container->get('typed_data_manager');
diff --git a/core/modules/system/src/Tests/TypedData/TypedDataTest.php b/core/modules/system/src/Tests/TypedData/TypedDataTest.php
index d38d2b9..bc9bd8c 100644
--- a/core/modules/system/src/Tests/TypedData/TypedDataTest.php
+++ b/core/modules/system/src/Tests/TypedData/TypedDataTest.php
@@ -15,7 +15,9 @@
 use Drupal\Core\Datetime\DrupalDateTime;
 
 /**
- * Tests primitive data types.
+ * Tests the functionality of all core data types.
+ *
+ * @group TypedData
  */
 class TypedDataTest extends DrupalUnitTestBase {
 
@@ -33,14 +35,6 @@ class TypedDataTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'entity', 'field', 'file', 'user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Test typed data objects',
-      'description' => 'Tests the functionality of all core data types.',
-      'group' => 'Typed Data API',
-    );
-  }
-
   public function setUp() {
     parent::setup();
 
diff --git a/core/modules/system/src/Tests/Update/DependencyHookInvocationTest.php b/core/modules/system/src/Tests/Update/DependencyHookInvocationTest.php
index f9b0a86..2c417e9 100644
--- a/core/modules/system/src/Tests/Update/DependencyHookInvocationTest.php
+++ b/core/modules/system/src/Tests/Update/DependencyHookInvocationTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the invocation of hook_update_dependencies().
+ * Tests that the hook invocation for determining update dependencies works
+ * correctly.
+ *
+ * @group Update
  */
 class DependencyHookInvocationTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class DependencyHookInvocationTest extends WebTestBase {
    */
   public static $modules = array('update_test_0', 'update_test_1', 'update_test_2');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update dependency hook invocation',
-      'description' => 'Test that the hook invocation for determining update dependencies works correctly.',
-      'group' => 'Update API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     require_once DRUPAL_ROOT . '/core/includes/update.inc';
diff --git a/core/modules/system/src/Tests/Update/DependencyMissingTest.php b/core/modules/system/src/Tests/Update/DependencyMissingTest.php
index 167beea..df463c3 100644
--- a/core/modules/system/src/Tests/Update/DependencyMissingTest.php
+++ b/core/modules/system/src/Tests/Update/DependencyMissingTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for missing update dependencies.
+ * Tests that missing update dependencies are correctly flagged.
+ *
+ * @group Update
  */
 class DependencyMissingTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class DependencyMissingTest extends WebTestBase {
    */
   public static $modules = array('update_test_0', 'update_test_2');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Missing update dependencies',
-      'description' => 'Test that missing update dependencies are correctly flagged.',
-      'group' => 'Update API',
-    );
-  }
-
   function setUp() {
     // Only install update_test_2.module, even though its updates have a
     // dependency on update_test_3.module.
diff --git a/core/modules/system/src/Tests/Update/DependencyOrderingTest.php b/core/modules/system/src/Tests/Update/DependencyOrderingTest.php
index 5667be0..c0c98cf 100644
--- a/core/modules/system/src/Tests/Update/DependencyOrderingTest.php
+++ b/core/modules/system/src/Tests/Update/DependencyOrderingTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the update dependency ordering system.
+ * Tests that update functions are run in the proper order.
+ *
+ * @group Update
  */
 class DependencyOrderingTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class DependencyOrderingTest extends WebTestBase {
    */
   public static $modules = array('update_test_0', 'update_test_1', 'update_test_2', 'update_test_3');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update dependency ordering',
-      'description' => 'Test that update functions are run in the proper order.',
-      'group' => 'Update API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     require_once DRUPAL_ROOT . '/core/includes/update.inc';
diff --git a/core/modules/system/src/Tests/Update/InvalidUpdateHook.php b/core/modules/system/src/Tests/Update/InvalidUpdateHook.php
index 460d03f..64a95f1 100644
--- a/core/modules/system/src/Tests/Update/InvalidUpdateHook.php
+++ b/core/modules/system/src/Tests/Update/InvalidUpdateHook.php
@@ -11,7 +11,10 @@
 use Drupal\Core\Extension\ExtensionSchemaVersionException;
 
 /**
- * Tests for missing update dependencies.
+ * Tests that a module implementing hook_update_8000() causes an error to be
+ * displayed on update.
+ *
+ * @group Update
  */
 class InvalidUpdateHook extends WebTestBase {
 
@@ -36,14 +39,6 @@ class InvalidUpdateHook extends WebTestBase {
    */
   private $update_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Invalid update hook',
-      'description' => 'Tests that a module implementing hook_update_8000() causes an error to be displayed on update.',
-      'group' => 'Update API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     require_once DRUPAL_ROOT . '/core/includes/update.inc';
diff --git a/core/modules/system/src/Tests/Update/UpdateScriptTest.php b/core/modules/system/src/Tests/Update/UpdateScriptTest.php
index cd92191..a040529 100644
--- a/core/modules/system/src/Tests/Update/UpdateScriptTest.php
+++ b/core/modules/system/src/Tests/Update/UpdateScriptTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the update system functionality.
+ * Tests the update script access and functionality.
+ *
+ * @group Update
  */
 class UpdateScriptTest extends WebTestBase {
 
@@ -26,14 +28,6 @@ class UpdateScriptTest extends WebTestBase {
   private $update_url;
   private $update_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update functionality',
-      'description' => 'Tests the update script access and functionality.',
-      'group' => 'Update',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->update_url = $GLOBALS['base_url'] . '/core/update.php';
diff --git a/core/modules/system/src/Tests/Update/UpdatesWith7x.php b/core/modules/system/src/Tests/Update/UpdatesWith7x.php
index 4d85f9d..cce87de 100644
--- a/core/modules/system/src/Tests/Update/UpdatesWith7x.php
+++ b/core/modules/system/src/Tests/Update/UpdatesWith7x.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for missing update dependencies.
+ * Tests that the minimum schema version is correct even if only 7.x update
+ * hooks are retained .
+ *
+ * @group Update
  */
 class UpdatesWith7x extends WebTestBase {
 
@@ -31,14 +34,6 @@ class UpdatesWith7x extends WebTestBase {
    */
   private $update_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => '7.x update hooks',
-      'description' => 'Tests that the minimum schema version is correct even if only 7.x update hooks are retained .',
-      'group' => 'Update API',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     require_once DRUPAL_ROOT . '/core/includes/update.inc';
diff --git a/core/modules/system/src/Tests/Validation/AllowedValuesConstraintValidatorTest.php b/core/modules/system/src/Tests/Validation/AllowedValuesConstraintValidatorTest.php
index 563b711..8b5bec0 100644
--- a/core/modules/system/src/Tests/Validation/AllowedValuesConstraintValidatorTest.php
+++ b/core/modules/system/src/Tests/Validation/AllowedValuesConstraintValidatorTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests the AllowedValues validation constraint validator.
+ * Tests AllowedValues validation constraint with both valid and invalid values.
+ *
+ * @group Validation
  */
 class AllowedValuesConstraintValidatorTest extends DrupalUnitTestBase {
 
@@ -22,14 +24,6 @@ class AllowedValuesConstraintValidatorTest extends DrupalUnitTestBase {
    */
   protected $typedData;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Allowed values constraint',
-      'description' => 'Tests AllowedValues validation constraint with both valid and invalid values.',
-      'group' => 'Validation',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->typedData = $this->container->get('typed_data_manager');
diff --git a/core/modules/system/src/Tests/Validation/ComplexDataConstraintValidatorTest.php b/core/modules/system/src/Tests/Validation/ComplexDataConstraintValidatorTest.php
index baabdb8..dccd03e 100644
--- a/core/modules/system/src/Tests/Validation/ComplexDataConstraintValidatorTest.php
+++ b/core/modules/system/src/Tests/Validation/ComplexDataConstraintValidatorTest.php
@@ -12,7 +12,10 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests the ComplexData validation constraint validator.
+ * Tests ComplexData validation constraint with both valid and invalid values
+ * for a key.
+ *
+ * @group Validation
  */
 class ComplexDataConstraintValidatorTest extends DrupalUnitTestBase {
 
@@ -23,14 +26,6 @@ class ComplexDataConstraintValidatorTest extends DrupalUnitTestBase {
    */
   protected $typedData;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Complex data constraint',
-      'description' => 'Tests ComplexData validation constraint with both valid and invalid values for a key',
-      'group' => 'Validation',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->typedData = $this->container->get('typed_data_manager');
diff --git a/core/modules/system/tests/src/Breadcrumbs/PathBasedBreadcrumbBuilderTest.php b/core/modules/system/tests/src/Breadcrumbs/PathBasedBreadcrumbBuilderTest.php
index 65f2a62..0cbdcbd 100644
--- a/core/modules/system/tests/src/Breadcrumbs/PathBasedBreadcrumbBuilderTest.php
+++ b/core/modules/system/tests/src/Breadcrumbs/PathBasedBreadcrumbBuilderTest.php
@@ -19,12 +19,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the path based breadcrumb builder.
- *
- * @group Drupal
- * @group System
- *
  * @coversDefaultClass \Drupal\system\PathBasedBreadcrumbBuilder
+ * @group system
  */
 class PathBasedBreadcrumbBuilderTest extends UnitTestCase {
 
@@ -86,17 +82,6 @@ class PathBasedBreadcrumbBuilderTest extends UnitTestCase {
 
   /**
    * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Path based breadcrumbs',
-      'description' => 'Tests that path based breadcrumbs work as expected.',
-      'group' => 'Breadcrumbs',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
    *
    * @covers ::__construct()
    */
diff --git a/core/modules/system/tests/src/Controller/SystemControllerTest.php b/core/modules/system/tests/src/Controller/SystemControllerTest.php
index 199a44f..f4b469e 100644
--- a/core/modules/system/tests/src/Controller/SystemControllerTest.php
+++ b/core/modules/system/tests/src/Controller/SystemControllerTest.php
@@ -14,23 +14,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the System controller's #post_render_cache callback for active links.
- *
- * @group Drupal
- * @group System
- *
- * @see \Drupal\system\Controller\SystemController::setLinkActiveClass()
+ * @coversDefaultClass \Drupal\system\Controller\SystemController::setLinkActiveClass()
+ * @group system
  */
 class SystemControllerTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'System controller set active link class test',
-      'description' => 'Unit test of system controller #post_render_cache callback for marking active links.',
-      'group' => 'System'
-    );
-  }
-
   /**
    * Provides test data for testSetLinkActiveClass().
    *
diff --git a/core/modules/system/tests/src/Menu/SystemLocalTasksTest.php b/core/modules/system/tests/src/Menu/SystemLocalTasksTest.php
index 9cd7ebc..a5e51fc 100644
--- a/core/modules/system/tests/src/Menu/SystemLocalTasksTest.php
+++ b/core/modules/system/tests/src/Menu/SystemLocalTasksTest.php
@@ -13,8 +13,7 @@
 /**
  * Tests existence of system local tasks.
  *
- * @group Drupal
- * @group System
+ * @group system
  */
 class SystemLocalTasksTest extends LocalTaskIntegrationTest {
 
@@ -28,17 +27,6 @@ class SystemLocalTasksTest extends LocalTaskIntegrationTest {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'System local tasks',
-      'description' => '',
-      'group' => 'System',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/system/tests/src/Transliteration/MachineNameControllerTest.php b/core/modules/system/tests/src/Transliteration/MachineNameControllerTest.php
index fddac33..50abd20 100644
--- a/core/modules/system/tests/src/Transliteration/MachineNameControllerTest.php
+++ b/core/modules/system/tests/src/Transliteration/MachineNameControllerTest.php
@@ -13,9 +13,9 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests machine name controller's transliteration functionality.
+ * Tests that the machine name controller can transliterate strings as expected.
  *
- * @group System
+ * @group system
  */
 class MachineNameControllerTest extends UnitTestCase {
 
@@ -26,14 +26,6 @@ class MachineNameControllerTest extends UnitTestCase {
    */
   protected $machineNameController;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Machine name controller tests',
-      'description' => 'Tests that the machine name controller can transliterate strings as expected.',
-      'group' => 'Transliteration',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     // Create the machine name controller.
diff --git a/core/modules/taxonomy/src/Tests/EfqTest.php b/core/modules/taxonomy/src/Tests/EfqTest.php
index e664f67..b9a2dc6 100644
--- a/core/modules/taxonomy/src/Tests/EfqTest.php
+++ b/core/modules/taxonomy/src/Tests/EfqTest.php
@@ -10,17 +10,11 @@
 use Drupal\Core\Entity\Query\QueryFactory;
 
 /**
- * Tests the functionality of EntityQueryInterface for taxonomy entities.
+ * Verifies operation of a taxonomy-based Entity Query.
+ *
+ * @group taxonomy
  */
 class EfqTest extends TaxonomyTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy entity query',
-      'description' => 'Verifies operation of a taxonomy-based Entity Query.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->admin_user = $this->drupalCreateUser(array('administer taxonomy'));
diff --git a/core/modules/taxonomy/src/Tests/LegacyTest.php b/core/modules/taxonomy/src/Tests/LegacyTest.php
index bf7ae23..7f71d05 100644
--- a/core/modules/taxonomy/src/Tests/LegacyTest.php
+++ b/core/modules/taxonomy/src/Tests/LegacyTest.php
@@ -11,7 +11,9 @@
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 
 /**
- * Test for legacy node bug.
+ * Posts an article with a taxonomy term and a date prior to 1970.
+ *
+ * @group taxonomy
  */
 class LegacyTest extends TaxonomyTestBase {
 
@@ -22,14 +24,6 @@ class LegacyTest extends TaxonomyTestBase {
    */
   public static $modules = array('node', 'datetime');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Test for legacy node bug.',
-      'description' => 'Posts an article with a taxonomy term and a date prior to 1970.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/taxonomy/src/Tests/LoadMultipleTest.php b/core/modules/taxonomy/src/Tests/LoadMultipleTest.php
index 2c538fe..0000ac8 100644
--- a/core/modules/taxonomy/src/Tests/LoadMultipleTest.php
+++ b/core/modules/taxonomy/src/Tests/LoadMultipleTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\taxonomy\Tests;
 
 /**
- * Test the entity_load_multiple() function.
+ * Tests the loading of multiple taxonomy terms at once.
+ *
+ * @group taxonomy
  */
 class LoadMultipleTest extends TaxonomyTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy term multiple loading',
-      'description' => 'Test the loading of multiple taxonomy terms at once',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->taxonomy_admin = $this->drupalCreateUser(array('administer taxonomy'));
diff --git a/core/modules/taxonomy/src/Tests/RssTest.php b/core/modules/taxonomy/src/Tests/RssTest.php
index f947600..5ca8629 100644
--- a/core/modules/taxonomy/src/Tests/RssTest.php
+++ b/core/modules/taxonomy/src/Tests/RssTest.php
@@ -10,7 +10,10 @@
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 
 /**
- * Tests the rendering of term reference fields in RSS feeds.
+ * Ensure that data added as terms appears in RSS feeds if "RSS Category" format
+ * is selected.
+ *
+ * @group taxonomy
  */
 class RssTest extends TaxonomyTestBase {
 
@@ -21,14 +24,6 @@ class RssTest extends TaxonomyTestBase {
    */
   public static $modules = array('node', 'field_ui', 'views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy RSS Content.',
-      'description' => 'Ensure that data added as terms appears in RSS feeds if "RSS Category" format is selected.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/taxonomy/src/Tests/TaxonomyImageTest.php b/core/modules/taxonomy/src/Tests/TaxonomyImageTest.php
index 576b9d1..138efe7 100644
--- a/core/modules/taxonomy/src/Tests/TaxonomyImageTest.php
+++ b/core/modules/taxonomy/src/Tests/TaxonomyImageTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\taxonomy\Tests;
 
 /**
- * Provides helper methods for taxonomy terms with image fields.
+ * Tests access checks of private image fields.
+ *
+ * @group taxonomy
  */
 class TaxonomyImageTest extends TaxonomyTestBase {
 
@@ -26,14 +28,6 @@ class TaxonomyImageTest extends TaxonomyTestBase {
    */
   public static $modules = array('image');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy Image Test',
-      'description' => 'Tests access checks of private image fields',
-      'group' => 'Taxonomy',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/taxonomy/src/Tests/TaxonomyTermIndentationTest.php b/core/modules/taxonomy/src/Tests/TaxonomyTermIndentationTest.php
index a19542b..51d134a 100644
--- a/core/modules/taxonomy/src/Tests/TaxonomyTermIndentationTest.php
+++ b/core/modules/taxonomy/src/Tests/TaxonomyTermIndentationTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\taxonomy\Tests;
 
 /**
- * Testing term indentation functionality in term list page.
+ * Ensure that the term indentation works properly.
+ *
+ * @group taxonomy
  */
 class TaxonomyTermIndentationTest extends TaxonomyTestBase {
 
@@ -19,14 +21,6 @@ class TaxonomyTermIndentationTest extends TaxonomyTestBase {
    */
   public static $modules = array('taxonomy');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy term indentation',
-      'description' => 'Ensure that the term indentation works properly.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->admin_user = $this->drupalCreateUser(array('administer taxonomy', 'bypass node access'));
diff --git a/core/modules/taxonomy/src/Tests/TaxonomyTermReferenceItemTest.php b/core/modules/taxonomy/src/Tests/TaxonomyTermReferenceItemTest.php
index 4f3b384..ef9c0a7 100644
--- a/core/modules/taxonomy/src/Tests/TaxonomyTermReferenceItemTest.php
+++ b/core/modules/taxonomy/src/Tests/TaxonomyTermReferenceItemTest.php
@@ -15,6 +15,8 @@
 
 /**
  * Tests the new entity API for the taxonomy term reference field type.
+ *
+ * @group taxonomy
  */
 class TaxonomyTermReferenceItemTest extends FieldUnitTestBase {
 
@@ -32,14 +34,6 @@ class TaxonomyTermReferenceItemTest extends FieldUnitTestBase {
    */
   protected $term;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy reference field item',
-      'description' => 'Tests using entity fields of the taxonomy term reference field type.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installEntitySchema('taxonomy_term');
diff --git a/core/modules/taxonomy/src/Tests/TermCacheTagsTest.php b/core/modules/taxonomy/src/Tests/TermCacheTagsTest.php
index 6cd6457..5acaf7f 100644
--- a/core/modules/taxonomy/src/Tests/TermCacheTagsTest.php
+++ b/core/modules/taxonomy/src/Tests/TermCacheTagsTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the Taxonomy term entity's cache tags.
+ *
+ * @group taxonomy
  */
 class TermCacheTagsTest extends EntityWithUriCacheTagsTestBase {
 
@@ -22,13 +24,6 @@ class TermCacheTagsTest extends EntityWithUriCacheTagsTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return parent::generateStandardizedInfo('Taxonomy term', 'Taxonomy');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function createEntity() {
     // Create a "Camelids" vocabulary.
     $vocabulary = entity_create('taxonomy_vocabulary',  array(
diff --git a/core/modules/taxonomy/src/Tests/TermFieldMultipleVocabularyTest.php b/core/modules/taxonomy/src/Tests/TermFieldMultipleVocabularyTest.php
index cfe29f9..5c32231 100644
--- a/core/modules/taxonomy/src/Tests/TermFieldMultipleVocabularyTest.php
+++ b/core/modules/taxonomy/src/Tests/TermFieldMultipleVocabularyTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests a taxonomy term reference field that allows multiple vocabularies.
+ *
+ * @group taxonomy
  */
 class TermFieldMultipleVocabularyTest extends TaxonomyTestBase {
 
@@ -25,14 +27,6 @@ class TermFieldMultipleVocabularyTest extends TaxonomyTestBase {
   protected $vocabulary1;
   protected $vocabulary2;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Multiple vocabulary term reference field',
-      'description' => 'Tests term reference fields that allow multiple vocabularies.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/taxonomy/src/Tests/TermFieldTest.php b/core/modules/taxonomy/src/Tests/TermFieldTest.php
index c1dfff1..43ce358 100644
--- a/core/modules/taxonomy/src/Tests/TermFieldTest.php
+++ b/core/modules/taxonomy/src/Tests/TermFieldTest.php
@@ -9,7 +9,9 @@
 use Drupal\field\Entity\FieldConfig;
 
 /**
- * Tests for taxonomy term field and formatter.
+ * Tests the creation of term fields.
+ *
+ * @group taxonomy
  */
 class TermFieldTest extends TaxonomyTestBase {
 
@@ -23,14 +25,6 @@ class TermFieldTest extends TaxonomyTestBase {
   protected $instance;
   protected $vocabulary;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy term reference field',
-      'description' => 'Test the creation of term fields.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/taxonomy/src/Tests/TermIndexTest.php b/core/modules/taxonomy/src/Tests/TermIndexTest.php
index ce4c8fd..09fb6a1 100644
--- a/core/modules/taxonomy/src/Tests/TermIndexTest.php
+++ b/core/modules/taxonomy/src/Tests/TermIndexTest.php
@@ -12,17 +12,11 @@
 
 /**
  * Tests the hook implementations that maintain the taxonomy index.
+ *
+ * @group taxonomy
  */
 class TermIndexTest extends TaxonomyTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy term index',
-      'description' => 'Tests the hook implementations that maintain the taxonomy index.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/taxonomy/src/Tests/TermLanguageTest.php b/core/modules/taxonomy/src/Tests/TermLanguageTest.php
index 256a0a0..ffb7e47 100644
--- a/core/modules/taxonomy/src/Tests/TermLanguageTest.php
+++ b/core/modules/taxonomy/src/Tests/TermLanguageTest.php
@@ -10,20 +10,14 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Tests for the language feature on taxonomy terms.
+ * Tests the language functionality for the taxonomy terms.
+ *
+ * @group taxonomy
  */
 class TermLanguageTest extends TaxonomyTestBase {
 
   public static $modules = array('language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy term language',
-      'description' => 'Tests the language functionality for the taxonomy terms.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/taxonomy/src/Tests/TermTest.php b/core/modules/taxonomy/src/Tests/TermTest.php
index e08cf24..2bd3620 100644
--- a/core/modules/taxonomy/src/Tests/TermTest.php
+++ b/core/modules/taxonomy/src/Tests/TermTest.php
@@ -14,18 +14,12 @@
 use Drupal\field\Entity\FieldConfig;
 
 /**
- * Tests for taxonomy term functions.
+ * Tests load, save and delete for taxonomy terms.
+ *
+ * @group taxonomy
  */
 class TermTest extends TaxonomyTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy term functions and forms',
-      'description' => 'Test load, save and delete for taxonomy terms.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->admin_user = $this->drupalCreateUser(array('administer taxonomy', 'bypass node access'));
diff --git a/core/modules/taxonomy/src/Tests/TermTranslationUITest.php b/core/modules/taxonomy/src/Tests/TermTranslationUITest.php
index d52931d..e0d3271 100644
--- a/core/modules/taxonomy/src/Tests/TermTranslationUITest.php
+++ b/core/modules/taxonomy/src/Tests/TermTranslationUITest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the Term Translation UI.
+ *
+ * @group taxonomy
  */
 class TermTranslationUITest extends ContentTranslationUITest {
 
@@ -34,14 +36,6 @@ class TermTranslationUITest extends ContentTranslationUITest {
    */
   public static $modules = array('language', 'content_translation', 'taxonomy');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy term translation UI',
-      'description' => 'Tests the basic term translation UI.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     $this->entityTypeId = 'taxonomy_term';
     $this->bundle = 'tags';
diff --git a/core/modules/taxonomy/src/Tests/TermUnitTest.php b/core/modules/taxonomy/src/Tests/TermUnitTest.php
index 83132c3..545bc4a 100644
--- a/core/modules/taxonomy/src/Tests/TermUnitTest.php
+++ b/core/modules/taxonomy/src/Tests/TermUnitTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Unit tests for taxonomy term functions.
+ *
+ * @group taxonomy
  */
 class TermUnitTest extends TaxonomyTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy term unit tests',
-      'description' => 'Unit tests for taxonomy term functions.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function testTermDelete() {
     $vocabulary = $this->createVocabulary();
     $valid_term = $this->createTerm($vocabulary);
diff --git a/core/modules/taxonomy/src/Tests/TermValidationTest.php b/core/modules/taxonomy/src/Tests/TermValidationTest.php
index f545403..91b242c 100644
--- a/core/modules/taxonomy/src/Tests/TermValidationTest.php
+++ b/core/modules/taxonomy/src/Tests/TermValidationTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests term validation constraints.
+ *
+ * @group taxonomy
  */
 class TermValidationTest extends EntityUnitTestBase {
 
@@ -21,14 +23,6 @@ class TermValidationTest extends EntityUnitTestBase {
    */
   public static $modules = array('taxonomy');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Term Validation',
-      'description' => 'Tests the term validation constraints.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/taxonomy/src/Tests/ThemeTest.php b/core/modules/taxonomy/src/Tests/ThemeTest.php
index ee8cc38..218dd92 100644
--- a/core/modules/taxonomy/src/Tests/ThemeTest.php
+++ b/core/modules/taxonomy/src/Tests/ThemeTest.php
@@ -8,18 +8,12 @@
 namespace Drupal\taxonomy\Tests;
 
 /**
- * Tests for verifying that taxonomy pages use the correct theme.
+ * Verifies that various taxonomy pages use the expected theme.
+ *
+ * @group taxonomy
  */
 class ThemeTest extends TaxonomyTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy theme switching',
-      'description' => 'Verifies that various taxonomy pages use the expected theme.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/taxonomy/src/Tests/TokenReplaceTest.php b/core/modules/taxonomy/src/Tests/TokenReplaceTest.php
index 241883b..2a645de 100644
--- a/core/modules/taxonomy/src/Tests/TokenReplaceTest.php
+++ b/core/modules/taxonomy/src/Tests/TokenReplaceTest.php
@@ -12,18 +12,13 @@
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 
 /**
- * Test taxonomy token replacement in strings.
+ * Generates text using placeholders for dummy content to check taxonomy token
+ * replacement.
+ *
+ * @group taxonomy
  */
 class TokenReplaceTest extends TaxonomyTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy token replacement',
-      'description' => 'Generates text using placeholders for dummy content to check taxonomy token replacement.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->admin_user = $this->drupalCreateUser(array('administer taxonomy', 'bypass node access'));
diff --git a/core/modules/taxonomy/src/Tests/Views/RelationshipNodeTermDataTest.php b/core/modules/taxonomy/src/Tests/Views/RelationshipNodeTermDataTest.php
index 2d891b7..478eff0 100644
--- a/core/modules/taxonomy/src/Tests/Views/RelationshipNodeTermDataTest.php
+++ b/core/modules/taxonomy/src/Tests/Views/RelationshipNodeTermDataTest.php
@@ -10,7 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the node_term_data relationship handler.
+ * Tests the taxonomy term on node relationship handler.
+ *
+ * @group taxonomy
  */
 class RelationshipNodeTermDataTest extends TaxonomyTestBase {
 
@@ -21,14 +23,6 @@ class RelationshipNodeTermDataTest extends TaxonomyTestBase {
    */
   public static $testViews = array('test_taxonomy_node_term_data');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy: Node term data Relationship',
-      'description' => 'Tests the taxonomy term on node relationship handler.',
-      'group' => 'Views module integration',
-    );
-  }
-
   function testViewsHandlerRelationshipNodeTermData() {
     $view = Views::getView('test_taxonomy_node_term_data');
     $this->executeView($view, array($this->term1->id(), $this->term2->id()));
diff --git a/core/modules/taxonomy/src/Tests/Views/RelationshipRepresentativeNode.php b/core/modules/taxonomy/src/Tests/Views/RelationshipRepresentativeNode.php
index 1d754f0..513d340 100644
--- a/core/modules/taxonomy/src/Tests/Views/RelationshipRepresentativeNode.php
+++ b/core/modules/taxonomy/src/Tests/Views/RelationshipRepresentativeNode.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the representative node relationship for terms.
+ *
+ * @group taxonomy
  */
 class RelationshipRepresentativeNode extends TaxonomyTestBase {
 
@@ -21,14 +23,6 @@ class RelationshipRepresentativeNode extends TaxonomyTestBase {
    */
   public static $testViews = array('test_groupwise_term');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy: Representative Node Relationship',
-      'description' => 'Tests the representative node relationship for terms.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the relationship.
    */
diff --git a/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php b/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php
index d2b2fb3..7c26a80 100644
--- a/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php
+++ b/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the taxonomy index filter handler UI.
  *
+ * @group taxonomy
  * @see \Drupal\taxonomy\Plugin\views\field\TaxonomyIndexTid
  */
 class TaxonomyIndexTidUiTest extends UITestBase {
@@ -31,14 +32,6 @@ class TaxonomyIndexTidUiTest extends UITestBase {
    */
   public static $modules = array('node', 'taxonomy', 'taxonomy_test_views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy: node index Filter (UI)',
-      'description' => 'Tests the taxonomy index filter handler UI.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/taxonomy/src/Tests/Views/TaxonomyParentUITest.php b/core/modules/taxonomy/src/Tests/Views/TaxonomyParentUITest.php
index 3a0fe14..eb478f4 100644
--- a/core/modules/taxonomy/src/Tests/Views/TaxonomyParentUITest.php
+++ b/core/modules/taxonomy/src/Tests/Views/TaxonomyParentUITest.php
@@ -11,8 +11,9 @@
 use Drupal\views_ui\Tests\UITestBase;
 
 /**
- * Tests views role access plugin UI.
+ * Tests views taxonomy parent plugin UI.
  *
+ * @group taxonomy
  * @see Drupal\taxonomy\Plugin\views\access\Role
  */
 class TaxonomyParentUITest extends UITestBase {
@@ -34,17 +35,6 @@ class TaxonomyParentUITest extends UITestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy: Term parent (UI)',
-      'description' => 'Tests views taxonomy parent plugin UI.',
-      'group' => 'Views module integration',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/taxonomy/src/Tests/VocabularyCrudTest.php b/core/modules/taxonomy/src/Tests/VocabularyCrudTest.php
index 5867695..5525a2c 100644
--- a/core/modules/taxonomy/src/Tests/VocabularyCrudTest.php
+++ b/core/modules/taxonomy/src/Tests/VocabularyCrudTest.php
@@ -10,7 +10,9 @@
 use Drupal\field\Entity\FieldInstanceConfig;
 
 /**
- * Tests for taxonomy vocabulary functions.
+ * Tests loading, saving and deleting vocabularies.
+ *
+ * @group taxonomy
  */
 class VocabularyCrudTest extends TaxonomyTestBase {
 
@@ -21,14 +23,6 @@ class VocabularyCrudTest extends TaxonomyTestBase {
    */
   public static $modules = array('field_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy vocabularies',
-      'description' => 'Test loading, saving and deleting vocabularies.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/taxonomy/src/Tests/VocabularyLanguageTest.php b/core/modules/taxonomy/src/Tests/VocabularyLanguageTest.php
index 5503589..04d9a09 100644
--- a/core/modules/taxonomy/src/Tests/VocabularyLanguageTest.php
+++ b/core/modules/taxonomy/src/Tests/VocabularyLanguageTest.php
@@ -10,20 +10,14 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Tests for the language feature on vocabularies.
+ * Tests the language functionality for vocabularies.
+ *
+ * @group taxonomy
  */
 class VocabularyLanguageTest extends TaxonomyTestBase {
 
   public static $modules = array('language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Vocabulary language',
-      'description' => 'Tests the language functionality for vocabularies.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/taxonomy/src/Tests/VocabularyPermissionsTest.php b/core/modules/taxonomy/src/Tests/VocabularyPermissionsTest.php
index 6ed3e09..a2d5996 100644
--- a/core/modules/taxonomy/src/Tests/VocabularyPermissionsTest.php
+++ b/core/modules/taxonomy/src/Tests/VocabularyPermissionsTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests the taxonomy vocabulary permissions.
+ *
+ * @group taxonomy
  */
 class VocabularyPermissionsTest extends TaxonomyTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy vocabulary permissions',
-      'description' => 'Test the taxonomy vocabulary permissions.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   /**
    * Create, edit and delete a taxonomy term via the user interface.
    */
diff --git a/core/modules/taxonomy/src/Tests/VocabularyUiTest.php b/core/modules/taxonomy/src/Tests/VocabularyUiTest.php
index 112a597..71389a1 100644
--- a/core/modules/taxonomy/src/Tests/VocabularyUiTest.php
+++ b/core/modules/taxonomy/src/Tests/VocabularyUiTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests the taxonomy vocabulary interface.
+ *
+ * @group taxonomy
  */
 class VocabularyUiTest extends TaxonomyTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy vocabulary interface',
-      'description' => 'Test the taxonomy vocabulary interface.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->admin_user = $this->drupalCreateUser(array('administer taxonomy'));
diff --git a/core/modules/taxonomy/tests/src/Menu/TaxonomyLocalTasksTest.php b/core/modules/taxonomy/tests/src/Menu/TaxonomyLocalTasksTest.php
index d51ff7a..afb8f3c 100644
--- a/core/modules/taxonomy/tests/src/Menu/TaxonomyLocalTasksTest.php
+++ b/core/modules/taxonomy/tests/src/Menu/TaxonomyLocalTasksTest.php
@@ -12,19 +12,10 @@
 /**
  * Tests existence of taxonomy local tasks.
  *
- * @group Drupal
- * @group Taxonomy
+ * @group taxonomy
  */
 class TaxonomyLocalTasksTest extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy local tasks test',
-      'description' => 'Test existence of taxonomy local tasks.',
-      'group' => 'Taxonomy',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array('taxonomy' => 'core/modules/taxonomy');
     parent::setUp();
diff --git a/core/modules/telephone/src/Tests/TelephoneFieldTest.php b/core/modules/telephone/src/Tests/TelephoneFieldTest.php
index e0fe150..a7f8892 100644
--- a/core/modules/telephone/src/Tests/TelephoneFieldTest.php
+++ b/core/modules/telephone/src/Tests/TelephoneFieldTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the creation of telephone fields.
+ *
+ * @group telephone
  */
 class TelephoneFieldTest extends WebTestBase {
 
@@ -28,14 +30,6 @@ class TelephoneFieldTest extends WebTestBase {
   protected $instance;
   protected $web_user;
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Telephone field',
-      'description'  => "Test the creation of telephone fields.",
-      'group' => 'Field types'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/telephone/src/Tests/TelephoneItemTest.php b/core/modules/telephone/src/Tests/TelephoneItemTest.php
index d2b6f11..aa2f3d4 100644
--- a/core/modules/telephone/src/Tests/TelephoneItemTest.php
+++ b/core/modules/telephone/src/Tests/TelephoneItemTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests the new entity API for the telephone field type.
+ *
+ * @group telephone
  */
 class TelephoneItemTest extends FieldUnitTestBase {
 
@@ -23,14 +25,6 @@ class TelephoneItemTest extends FieldUnitTestBase {
    */
   public static $modules = array('telephone');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Telephone field item',
-      'description' => 'Tests the new entity API for the telephone field type.',
-      'group' => 'Field types',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/text/src/Tests/Formatter/TextFormatterTest.php b/core/modules/text/src/Tests/Formatter/TextFormatterTest.php
index 3745a5a..156363a 100644
--- a/core/modules/text/src/Tests/Formatter/TextFormatterTest.php
+++ b/core/modules/text/src/Tests/Formatter/TextFormatterTest.php
@@ -10,7 +10,9 @@
 use Drupal\system\Tests\Entity\EntityUnitTestBase;
 
 /**
- * Tests Text formatters.
+ * Tests the text formatters functionality.
+ *
+ * @group text
  */
 class TextFormatterTest extends EntityUnitTestBase {
 
@@ -38,17 +40,6 @@ class TextFormatterTest extends EntityUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Text formatters',
-      'description' => 'Tests the text formatters functionality.',
-      'group' => 'Text ',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/text/src/Tests/Formatter/TextPlainUnitTest.php b/core/modules/text/src/Tests/Formatter/TextPlainUnitTest.php
index 750dc4a..e05d514 100644
--- a/core/modules/text/src/Tests/Formatter/TextPlainUnitTest.php
+++ b/core/modules/text/src/Tests/Formatter/TextPlainUnitTest.php
@@ -14,8 +14,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests the text_plain field formatter.
+ * Tests the creation of text fields.
  *
+ * @group text
  * @todo Move assertion helper methods into KernelTestBase.
  * @todo Move field helper methods, $modules, and setUp() into a new
  *   FieldPluginUnitTestBase.
@@ -36,14 +37,6 @@ class TextPlainUnitTest extends DrupalUnitTestBase {
    */
   protected $content;
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Text field text_plain formatter',
-      'description'  => "Test the creation of text fields.",
-      'group' => 'Field types',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/text/src/Tests/TextFieldTest.php b/core/modules/text/src/Tests/TextFieldTest.php
index 11e5d73..46ab33d 100644
--- a/core/modules/text/src/Tests/TextFieldTest.php
+++ b/core/modules/text/src/Tests/TextFieldTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the creation of text fields.
+ *
+ * @group text
  */
 class TextFieldTest extends WebTestBase {
 
@@ -25,14 +27,6 @@ class TextFieldTest extends WebTestBase {
   protected $admin_user;
   protected $web_user;
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'Text field',
-      'description'  => "Test the creation of text fields.",
-      'group' => 'Field types'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/text/src/Tests/TextSummaryTest.php b/core/modules/text/src/Tests/TextSummaryTest.php
index b287a62..c9f2f1b 100644
--- a/core/modules/text/src/Tests/TextSummaryTest.php
+++ b/core/modules/text/src/Tests/TextSummaryTest.php
@@ -10,20 +10,14 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests the text field summary.
+ * Tests text_summary() with different strings and lengths.
+ *
+ * @group text
  */
 class TextSummaryTest extends DrupalUnitTestBase {
 
   public static $modules = array('system', 'user', 'filter', 'text');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Text summary',
-      'description' => 'Test text_summary() with different strings and lengths.',
-      'group' => 'Field types',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/text/src/Tests/TextWithSummaryItemTest.php b/core/modules/text/src/Tests/TextWithSummaryItemTest.php
index 72d6aae..178fc58 100644
--- a/core/modules/text/src/Tests/TextWithSummaryItemTest.php
+++ b/core/modules/text/src/Tests/TextWithSummaryItemTest.php
@@ -12,7 +12,9 @@
 use Drupal\field\Tests\FieldUnitTestBase;
 
 /**
- * Tests for \Drupal\text\Plugin\Field\FieldType\TextWithSummaryItem.
+ * Tests using entity fields of the text summary field type.
+ *
+ * @group text
  */
 class TextWithSummaryItemTest extends FieldUnitTestBase {
 
@@ -38,14 +40,6 @@ class TextWithSummaryItemTest extends FieldUnitTestBase {
   protected $instance;
 
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Text summary field item',
-      'description' => 'Tests using entity fields of the text summary field type.',
-      'group' => 'Field types',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/toolbar/src/Tests/ToolbarAdminMenuTest.php b/core/modules/toolbar/src/Tests/ToolbarAdminMenuTest.php
index 74543ee..a9b71b1 100644
--- a/core/modules/toolbar/src/Tests/ToolbarAdminMenuTest.php
+++ b/core/modules/toolbar/src/Tests/ToolbarAdminMenuTest.php
@@ -24,6 +24,8 @@
  *
  * Each hook invocation is simulated and then the previous hash of the admin
  * menu subtrees is compared to the new hash.
+ *
+ * @group toolbar
  */
 class ToolbarAdminMenuTest extends WebTestBase {
 
@@ -55,14 +57,6 @@ class ToolbarAdminMenuTest extends WebTestBase {
    */
   public static $modules = array('node', 'block', 'menu_ui', 'user', 'taxonomy', 'toolbar', 'language', 'test_page_test', 'locale');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Toolbar admin menu',
-      'description' => 'Tests the caching of secondary admin menu items.',
-      'group' => 'Toolbar',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/toolbar/src/Tests/ToolbarHookToolbarTest.php b/core/modules/toolbar/src/Tests/ToolbarHookToolbarTest.php
index 5716978..b196f2a 100644
--- a/core/modules/toolbar/src/Tests/ToolbarHookToolbarTest.php
+++ b/core/modules/toolbar/src/Tests/ToolbarHookToolbarTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the toolbar tab and tray registration.
+ * Tests the implementation of hook_toolbar() by a module.
+ *
+ * @group toolbar
  */
 class ToolbarHookToolbarTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ToolbarHookToolbarTest extends WebTestBase {
    */
   public static $modules = array('toolbar', 'toolbar_test', 'test_page_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Toolbar hook_toolbar',
-      'description' => 'Tests the implementation of hook_toolbar() by a module.',
-      'group' => 'Toolbar',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/toolbar/src/Tests/ToolbarMenuTranslationTest.php b/core/modules/toolbar/src/Tests/ToolbarMenuTranslationTest.php
index 7bfa0f2..5e80dbf 100644
--- a/core/modules/toolbar/src/Tests/ToolbarMenuTranslationTest.php
+++ b/core/modules/toolbar/src/Tests/ToolbarMenuTranslationTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests maintaining inclusion of icons for translated menu items.
+ * Tests that the toolbar icon class remains for translated menu items.
+ *
+ * @group toolbar
  */
 class ToolbarMenuTranslationTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class ToolbarMenuTranslationTest extends WebTestBase {
    */
   public static $modules = array('toolbar', 'toolbar_test', 'locale');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Toolbar menu translation',
-      'description' => 'Tests that the toolbar icon class remains for translated menu items.',
-      'group' => 'Toolbar',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/tour/src/Tests/TourPluginTest.php b/core/modules/tour/src/Tests/TourPluginTest.php
index 58e3e3b..9e0775b 100644
--- a/core/modules/tour/src/Tests/TourPluginTest.php
+++ b/core/modules/tour/src/Tests/TourPluginTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests tour plugin functionality.
+ * Tests the functionality of tour plugins.
+ *
+ * @group tour
  */
 class TourPluginTest extends DrupalUnitTestBase {
 
@@ -28,14 +30,6 @@ class TourPluginTest extends DrupalUnitTestBase {
    */
   protected $pluginManager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Tour plugin tests',
-      'description' => 'Test the functionality of tour plugins.',
-      'group' => 'Tour',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/tour/src/Tests/TourTest.php b/core/modules/tour/src/Tests/TourTest.php
index 17e7d14..fa1c270 100644
--- a/core/modules/tour/src/Tests/TourTest.php
+++ b/core/modules/tour/src/Tests/TourTest.php
@@ -10,7 +10,9 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Tests tour functionality.
+ * Tests the functionality of tour tips.
+ *
+ * @group tour
  */
 class TourTest extends TourTestBasic {
 
@@ -39,14 +41,6 @@ class TourTest extends TourTestBasic {
     'tour-test-1' => array(),
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Tour tests',
-      'description' => 'Test the functionality of tour tips.',
-      'group' => 'Tour',
-    );
-  }
-
   /**
    * Test tour functionality.
    */
diff --git a/core/modules/tour/tests/src/Entity/TourTest.php b/core/modules/tour/tests/src/Entity/TourTest.php
index 5335fc8..7b5f943 100644
--- a/core/modules/tour/tests/src/Entity/TourTest.php
+++ b/core/modules/tour/tests/src/Entity/TourTest.php
@@ -9,26 +9,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the Tour entity.
- *
- * @group Tour
- *
  * @coversDefaultClass \Drupal\tour\Entity\Tour
+ * @group tour
  */
 class TourTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Tour entity tests',
-      'description' => 'Test \Drupal\tour\Entity\Tour.',
-      'group' => 'Tour',
-    );
-  }
-
-  /**
    * Tests \Drupal\tour\Entity\Tour::hasMatchingRoute().
    *
    * @param array $routes
diff --git a/core/modules/tracker/src/Tests/TrackerNodeAccessTest.php b/core/modules/tracker/src/Tests/TrackerNodeAccessTest.php
index c50eed2..f5e00b1 100644
--- a/core/modules/tracker/src/Tests/TrackerNodeAccessTest.php
+++ b/core/modules/tracker/src/Tests/TrackerNodeAccessTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests for private node access on /tracker.
+ *
+ * @group tracker
  */
 class TrackerNodeAccessTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class TrackerNodeAccessTest extends WebTestBase {
    */
   public static $modules = array('node', 'comment', 'tracker', 'node_access_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Tracker Node Access Tests',
-      'description' => 'Tests for private node access on /tracker.',
-      'group' => 'Tracker',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     node_access_rebuild();
diff --git a/core/modules/tracker/src/Tests/TrackerTest.php b/core/modules/tracker/src/Tests/TrackerTest.php
index f4e9912..7e8512d 100644
--- a/core/modules/tracker/src/Tests/TrackerTest.php
+++ b/core/modules/tracker/src/Tests/TrackerTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Defines a base class for testing tracker.module.
+ * Create and delete nodes and check for their display in the tracker listings.
+ *
+ * @group tracker
  */
 class TrackerTest extends WebTestBase {
 
@@ -36,14 +38,6 @@ class TrackerTest extends WebTestBase {
    */
   protected $other_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Tracker',
-      'description' => 'Create and delete nodes and check for their display in the tracker listings.',
-      'group' => 'Tracker'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/tracker/src/Tests/Views/TrackerUserUidTest.php b/core/modules/tracker/src/Tests/Views/TrackerUserUidTest.php
index c50baee..7c9be32 100644
--- a/core/modules/tracker/src/Tests/Views/TrackerUserUidTest.php
+++ b/core/modules/tracker/src/Tests/Views/TrackerUserUidTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the tracker user uid handlers.
+ *
+ * @group tracker
  */
 class TrackerUserUidTest extends TrackerTestBase {
 
@@ -21,14 +23,6 @@ class TrackerUserUidTest extends TrackerTestBase {
    */
   public static $testViews = array('test_tracker_user_uid');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Tracker: User UID tests',
-      'description' => 'Tests the tracker comment user uid handlers.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the user uid filter and argument.
    */
diff --git a/core/modules/update/src/Tests/UpdateContribTest.php b/core/modules/update/src/Tests/UpdateContribTest.php
index 25d8233..b441962 100644
--- a/core/modules/update/src/Tests/UpdateContribTest.php
+++ b/core/modules/update/src/Tests/UpdateContribTest.php
@@ -10,7 +10,10 @@
 use Drupal\Core\Utility\ProjectInfo;
 
 /**
- * Tests behavior related to handling updates to contributed modules and themes.
+ * Tests how the Update Manager module handles contributed modules and themes in
+ * a series of functional tests using mock XML data.
+ *
+ * @group update
  */
 class UpdateContribTest extends UpdateTestBase {
 
@@ -21,14 +24,6 @@ class UpdateContribTest extends UpdateTestBase {
    */
   public static $modules = array('update_test', 'update', 'aaa_update_test', 'bbb_update_test', 'ccc_update_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update contrib functionality',
-      'description' => 'Tests how the Update Manager module handles contributed modules and themes in a series of functional tests using mock XML data.',
-      'group' => 'Update',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $admin_user = $this->drupalCreateUser(array('administer site configuration'));
diff --git a/core/modules/update/src/Tests/UpdateCoreTest.php b/core/modules/update/src/Tests/UpdateCoreTest.php
index 00782b8..2530413 100644
--- a/core/modules/update/src/Tests/UpdateCoreTest.php
+++ b/core/modules/update/src/Tests/UpdateCoreTest.php
@@ -8,7 +8,10 @@
 namespace Drupal\update\Tests;
 
 /**
- * Tests behavior related to discovering and listing updates to Drupal core.
+ * Tests the Update Manager module through a series of functional tests using
+ * mock XML data.
+ *
+ * @group update
  */
 class UpdateCoreTest extends UpdateTestBase {
 
@@ -19,14 +22,6 @@ class UpdateCoreTest extends UpdateTestBase {
    */
   public static $modules = array('update_test', 'update', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Update core functionality',
-      'description' => 'Tests the Update Manager module through a series of functional tests using mock XML data.',
-      'group' => 'Update',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $admin_user = $this->drupalCreateUser(array('administer site configuration', 'administer modules', 'administer themes'));
diff --git a/core/modules/update/src/Tests/UpdateDeleteFileIfStaleTest.php b/core/modules/update/src/Tests/UpdateDeleteFileIfStaleTest.php
index 4d77906..e95e1d2 100644
--- a/core/modules/update/src/Tests/UpdateDeleteFileIfStaleTest.php
+++ b/core/modules/update/src/Tests/UpdateDeleteFileIfStaleTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\update\Tests;
 
 /**
- * Provides tests for update_delete_file_if_stale().
+ * Tests the update_delete_file_if_stale() function.
+ *
+ * @group update
  */
 class UpdateDeleteFileIfStaleTest extends UpdateTestBase {
 
@@ -22,17 +24,6 @@ class UpdateDeleteFileIfStaleTest extends UpdateTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Deleting obsolete files tests.',
-      'description' => 'Tests the update_delete_file_if_stale() function.',
-      'group' => 'Update',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
   }
diff --git a/core/modules/update/src/Tests/UpdateUploadTest.php b/core/modules/update/src/Tests/UpdateUploadTest.php
index e19fd06..1e7d513 100644
--- a/core/modules/update/src/Tests/UpdateUploadTest.php
+++ b/core/modules/update/src/Tests/UpdateUploadTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\update\Tests;
 
 /**
- * Tests project upload and extract functionality.
+ * Tests the Update Manager module's upload and extraction functionality.
+ *
+ * @group update
  */
 class UpdateUploadTest extends UpdateTestBase {
 
@@ -19,14 +21,6 @@ class UpdateUploadTest extends UpdateTestBase {
    */
   public static $modules = array('update', 'update_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Upload and extract module functionality',
-      'description' => 'Tests the Update Manager module\'s upload and extraction functionality.',
-      'group' => 'Update',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $admin_user = $this->drupalCreateUser(array('administer software updates', 'administer site configuration'));
diff --git a/core/modules/update/tests/src/UpdateFetcherTest.php b/core/modules/update/tests/src/UpdateFetcherTest.php
index 4a31916..792f776 100644
--- a/core/modules/update/tests/src/UpdateFetcherTest.php
+++ b/core/modules/update/tests/src/UpdateFetcherTest.php
@@ -16,6 +16,8 @@
 
 /**
  * Tests update functionality unrelated to the database.
+ *
+ * @group update
  */
 class UpdateFetcherTest extends UnitTestCase {
 
@@ -26,14 +28,6 @@ class UpdateFetcherTest extends UnitTestCase {
    */
   protected $updateFetcher;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Core update tests',
-      'description' => 'Test update functionality unrelated to the database.',
-      'group' => 'Update',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/user/src/Tests/Condition/UserRoleConditionTest.php b/core/modules/user/src/Tests/Condition/UserRoleConditionTest.php
index d810e6e..781b521 100644
--- a/core/modules/user/src/Tests/Condition/UserRoleConditionTest.php
+++ b/core/modules/user/src/Tests/Condition/UserRoleConditionTest.php
@@ -14,6 +14,8 @@
 
 /**
  * Tests the user role condition.
+ *
+ * @group user
  */
 class UserRoleConditionTest extends KernelTestBase {
 
@@ -55,17 +57,6 @@ class UserRoleConditionTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'User role condition plugin',
-      'description' => 'Tests the user role condition',
-      'group' => 'Condition API',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/TempStoreDatabaseTest.php b/core/modules/user/src/Tests/TempStoreDatabaseTest.php
index 1c83eb8..ee0fd78 100644
--- a/core/modules/user/src/Tests/TempStoreDatabaseTest.php
+++ b/core/modules/user/src/Tests/TempStoreDatabaseTest.php
@@ -14,8 +14,9 @@
 use Drupal\Core\Database\Database;
 
 /**
- * Tests the TempStore namespace.
+ * Tests the temporary object storage system.
  *
+ * @group user
  * @see \Drupal\Core\TempStore\TempStore.
  */
 class TempStoreDatabaseTest extends UnitTestBase {
@@ -48,14 +49,6 @@ class TempStoreDatabaseTest extends UnitTestBase {
    */
   protected $objects = array();
 
-  public static function getInfo() {
-    return array(
-      'name' => 'TempStore',
-      'description' => 'Tests the temporary object storage system.',
-      'group' => 'TempStore',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserAccountFormFieldsTest.php b/core/modules/user/src/Tests/UserAccountFormFieldsTest.php
index 7785ccb..b560a0c 100644
--- a/core/modules/user/src/Tests/UserAccountFormFieldsTest.php
+++ b/core/modules/user/src/Tests/UserAccountFormFieldsTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Tests field order and element attributes in user account forms.
+ * Verifies that the field order in user account forms is compatible with
+ * password managers of web browsers.
+ *
+ * @group user
  */
 class UserAccountFormFieldsTest extends DrupalUnitTestBase {
 
@@ -21,14 +24,6 @@ class UserAccountFormFieldsTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'user', 'entity', 'field');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User account form fields',
-      'description' => 'Verifies that the field order in user account forms is compatible with password managers of web browsers.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * Tests the root user account form section in the "Configure site" form.
    */
diff --git a/core/modules/user/src/Tests/UserAccountLinksTests.php b/core/modules/user/src/Tests/UserAccountLinksTests.php
index ce936e4..f038244 100644
--- a/core/modules/user/src/Tests/UserAccountLinksTests.php
+++ b/core/modules/user/src/Tests/UserAccountLinksTests.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests user links in the secondary menu.
+ * Tests user-account links.
+ *
+ * @group user
  */
 class UserAccountLinksTests extends WebTestBase {
 
@@ -21,14 +23,6 @@ class UserAccountLinksTests extends WebTestBase {
    */
   public static $modules = array('menu_ui', 'block', 'test_page_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User account links',
-      'description' => 'Test user-account links.',
-      'group' => 'User'
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     // Make test-page default.
diff --git a/core/modules/user/src/Tests/UserActionConfigSchemaTest.php b/core/modules/user/src/Tests/UserActionConfigSchemaTest.php
index 08d88a1..0f17948 100644
--- a/core/modules/user/src/Tests/UserActionConfigSchemaTest.php
+++ b/core/modules/user/src/Tests/UserActionConfigSchemaTest.php
@@ -11,7 +11,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the User action config schema.
+ * Ensures the user action for adding and removing roles have valid config
+ * schema.
+ *
+ * @group user
  */
 class UserActionConfigSchemaTest extends WebTestBase {
 
@@ -31,14 +34,6 @@ class UserActionConfigSchemaTest extends WebTestBase {
    */
   protected $adminUser;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User action config schema',
-      'description' => 'Ensures the user action for adding and removing roles have valid config schema.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * Tests whether the user action config schema are valid.
    */
diff --git a/core/modules/user/src/Tests/UserAdminLanguageTest.php b/core/modules/user/src/Tests/UserAdminLanguageTest.php
index 7737624..ce91eaa 100644
--- a/core/modules/user/src/Tests/UserAdminLanguageTest.php
+++ b/core/modules/user/src/Tests/UserAdminLanguageTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests users' ability to change their own administration language.
+ *
+ * @group user
  */
 class UserAdminLanguageTest extends WebTestBase {
 
@@ -35,14 +37,6 @@ class UserAdminLanguageTest extends WebTestBase {
    */
   public static $modules = array('user', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User administration pages language settings',
-      'description' => "Tests user's ability to change their administration pages language.",
-      'group' => 'User',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     // User to add and remove language.
diff --git a/core/modules/user/src/Tests/UserAdminListingTest.php b/core/modules/user/src/Tests/UserAdminListingTest.php
index 182812d..770609a 100644
--- a/core/modules/user/src/Tests/UserAdminListingTest.php
+++ b/core/modules/user/src/Tests/UserAdminListingTest.php
@@ -10,20 +10,13 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Defines a test for the fallback user admin listing.
+ * Tests the user admin listing if views is not enabled.
  *
+ * @group user
  * @see user_admin_account()
  */
 class UserAdminListingTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User people listing',
-      'description' => 'Test the user admin listing if views is not enabled.',
-      'group' => 'User'
-    );
-  }
-
   /**
    * Tests the listing.
    */
diff --git a/core/modules/user/src/Tests/UserAdminSettingsFormTest.php b/core/modules/user/src/Tests/UserAdminSettingsFormTest.php
index 94fd2d2..bb81fec 100644
--- a/core/modules/user/src/Tests/UserAdminSettingsFormTest.php
+++ b/core/modules/user/src/Tests/UserAdminSettingsFormTest.php
@@ -11,18 +11,12 @@
 use Drupal\user\AccountSettingsForm;
 
 /**
- * Tests the administrative user settings configuration form.
+ * Configuration object user.mail and user.settings save test.
+ *
+ * @group user
  */
 class UserAdminSettingsFormTest extends SystemConfigFormTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User admin settings',
-      'description' => 'Configuration object user.mail and user.settings save test.',
-      'group' => 'User',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserAdminTest.php b/core/modules/user/src/Tests/UserAdminTest.php
index b95c1ec..b6032f5 100644
--- a/core/modules/user/src/Tests/UserAdminTest.php
+++ b/core/modules/user/src/Tests/UserAdminTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the user administration UI.
+ * Tests user administration page functionality.
+ *
+ * @group user
  */
 class UserAdminTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class UserAdminTest extends WebTestBase {
    */
   public static $modules = array('taxonomy', 'views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User administration',
-      'description' => 'Test user administration page functionality.',
-      'group' => 'User'
-    );
-  }
-
   /**
    * Registers a user and deletes it.
    */
diff --git a/core/modules/user/src/Tests/UserAutocompleteTest.php b/core/modules/user/src/Tests/UserAutocompleteTest.php
index 0880852..09b908b 100644
--- a/core/modules/user/src/Tests/UserAutocompleteTest.php
+++ b/core/modules/user/src/Tests/UserAutocompleteTest.php
@@ -11,17 +11,11 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test user autocompletion.
+ * Tests user autocompletion functionality.
+ *
+ * @group user
  */
 class UserAutocompleteTest extends WebTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'User autocompletion',
-      'description' => 'Test user autocompletion functionality.',
-      'group' => 'User'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserBlocksTests.php b/core/modules/user/src/Tests/UserBlocksTests.php
index 50127b4..ae798c0 100644
--- a/core/modules/user/src/Tests/UserBlocksTests.php
+++ b/core/modules/user/src/Tests/UserBlocksTests.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test user blocks.
+ * Tests user blocks.
+ *
+ * @group user
  */
 class UserBlocksTests extends WebTestBase {
 
@@ -28,14 +30,6 @@ class UserBlocksTests extends WebTestBase {
    */
   protected $adminUser;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User blocks',
-      'description' => 'Test user blocks.',
-      'group' => 'User',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserCacheTagsTest.php b/core/modules/user/src/Tests/UserCacheTagsTest.php
index 1d81553..c6571ca 100644
--- a/core/modules/user/src/Tests/UserCacheTagsTest.php
+++ b/core/modules/user/src/Tests/UserCacheTagsTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the User entity's cache tags.
+ *
+ * @group user
  */
 class UserCacheTagsTest extends EntityWithUriCacheTagsTestBase {
 
@@ -22,13 +24,6 @@ class UserCacheTagsTest extends EntityWithUriCacheTagsTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return parent::generateStandardizedInfo('User', 'User');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserCancelTest.php b/core/modules/user/src/Tests/UserCancelTest.php
index 66c66af..af4e555 100644
--- a/core/modules/user/src/Tests/UserCancelTest.php
+++ b/core/modules/user/src/Tests/UserCancelTest.php
@@ -11,7 +11,9 @@
 use Drupal\comment\CommentInterface;
 
 /**
- * Test cancelling a user.
+ * Ensure that account cancellation methods work as expected.
+ *
+ * @group user
  */
 class UserCancelTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class UserCancelTest extends WebTestBase {
    */
   public static $modules = array('node', 'comment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Cancel account',
-      'description' => 'Ensure that account cancellation methods work as expected.',
-      'group' => 'User',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserCreateFailMailTest.php b/core/modules/user/src/Tests/UserCreateFailMailTest.php
index 055f595..c07b77e 100644
--- a/core/modules/user/src/Tests/UserCreateFailMailTest.php
+++ b/core/modules/user/src/Tests/UserCreateFailMailTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the create user administration page.
+ *
+ * @group user
  */
 class UserCreateFailMailTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class UserCreateFailMailTest extends WebTestBase {
    */
   public static $modules = array('system_mail_failure_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User create with failed mail function',
-      'description' => 'Test the create user administration page.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * Tests the create user administration page.
    */
diff --git a/core/modules/user/src/Tests/UserCreateTest.php b/core/modules/user/src/Tests/UserCreateTest.php
index 104f314..6531d40 100644
--- a/core/modules/user/src/Tests/UserCreateTest.php
+++ b/core/modules/user/src/Tests/UserCreateTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test the create user administration page.
+ * Tests the create user administration page.
+ *
+ * @group user
  */
 class UserCreateTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class UserCreateTest extends WebTestBase {
    */
   public static $modules = array('image', 'contact');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User create',
-      'description' => 'Test the create user administration page.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * Create a user through the administration interface and ensure that it
    * displays in the user list.
diff --git a/core/modules/user/src/Tests/UserDeleteTest.php b/core/modules/user/src/Tests/UserDeleteTest.php
index 92746c8..747039e 100644
--- a/core/modules/user/src/Tests/UserDeleteTest.php
+++ b/core/modules/user/src/Tests/UserDeleteTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests user_delete() and user_delete_multiple() behavior.
+ * Tests account deleting of users.
+ *
+ * @group user
  */
 class UserDeleteTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User delete test',
-      'description' => 'Test account deleting of users.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * Test deleting multiple users.
    */
diff --git a/core/modules/user/src/Tests/UserEditTest.php b/core/modules/user/src/Tests/UserEditTest.php
index 4a2bb47..68747a1 100644
--- a/core/modules/user/src/Tests/UserEditTest.php
+++ b/core/modules/user/src/Tests/UserEditTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests the user edit form.
+ * Tests user edit page.
+ *
+ * @group user
  */
 class UserEditTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User edit',
-      'description' => 'Test user edit page.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * Test user edit page.
    */
diff --git a/core/modules/user/src/Tests/UserEditedOwnAccountTest.php b/core/modules/user/src/Tests/UserEditedOwnAccountTest.php
index 2437aec..64ebf4e 100644
--- a/core/modules/user/src/Tests/UserEditedOwnAccountTest.php
+++ b/core/modules/user/src/Tests/UserEditedOwnAccountTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests user login after editing own user account.
+ * Tests user edited own account can still log in.
+ *
+ * @group user
  */
 class UserEditedOwnAccountTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User edited own account',
-      'description' => 'Test user edited own account can still log in.',
-      'group' => 'User',
-    );
-  }
-
   function testUserEditedOwnAccount() {
     // Change account setting 'Who can register accounts?' to Administrators
     // only.
diff --git a/core/modules/user/src/Tests/UserEntityCallbacksTest.php b/core/modules/user/src/Tests/UserEntityCallbacksTest.php
index 2b90534..b2f21c0 100644
--- a/core/modules/user/src/Tests/UserEntityCallbacksTest.php
+++ b/core/modules/user/src/Tests/UserEntityCallbacksTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test user entity callbacks.
+ * Tests specific parts of the user entity like the URI callback and the label
+ * callback.
+ *
+ * @group user
  */
 class UserEntityCallbacksTest extends WebTestBase {
 
@@ -26,14 +29,6 @@ class UserEntityCallbacksTest extends WebTestBase {
    */
   protected $account;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User entity callback tests',
-      'description' => 'Tests specific parts of the user entity like the URI callback and the label callback.',
-      'group' => 'User'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserEntityReferenceTest.php b/core/modules/user/src/Tests/UserEntityReferenceTest.php
index 525cdb4..45d7a1a 100644
--- a/core/modules/user/src/Tests/UserEntityReferenceTest.php
+++ b/core/modules/user/src/Tests/UserEntityReferenceTest.php
@@ -10,7 +10,9 @@
 use Drupal\system\Tests\Entity\EntityUnitTestBase;
 
 /**
- * User entity reference test cases.
+ * Tests the user reference field functionality.
+ *
+ * @group user
  */
 class UserEntityReferenceTest extends EntityUnitTestBase {
 
@@ -34,17 +36,6 @@ class UserEntityReferenceTest extends EntityUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'User entity reference',
-      'description' => 'Tests the user reference field functionality.',
-      'group' => 'User',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserEntityTest.php b/core/modules/user/src/Tests/UserEntityTest.php
index 9621d33..fe3b670 100644
--- a/core/modules/user/src/Tests/UserEntityTest.php
+++ b/core/modules/user/src/Tests/UserEntityTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the user entity class.
  *
+ * @group user
  * @see \Drupal\user\Entity\User
  */
 class UserEntityTest extends DrupalUnitTestBase {
@@ -25,14 +26,6 @@ class UserEntityTest extends DrupalUnitTestBase {
    */
   public static $modules = array('system', 'user', 'field', 'entity');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User entity tests',
-      'description' => 'Tests the user entity class.',
-      'group' => 'User'
-    );
-  }
-
   /**
    * Tests some of the methods.
    *
diff --git a/core/modules/user/src/Tests/UserInstallTest.php b/core/modules/user/src/Tests/UserInstallTest.php
index 9fdb8db..7a96df3 100644
--- a/core/modules/user/src/Tests/UserInstallTest.php
+++ b/core/modules/user/src/Tests/UserInstallTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests user_install().
+ *
+ * @group user
  */
 class UserInstallTest extends DrupalUnitTestBase {
 
@@ -24,17 +26,6 @@ class UserInstallTest extends DrupalUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'User install tests',
-      'description' => 'Tests user_install().',
-      'group' => 'User'
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $this->container->get('module_handler')->loadInclude('user', 'install');
diff --git a/core/modules/user/src/Tests/UserLanguageCreationTest.php b/core/modules/user/src/Tests/UserLanguageCreationTest.php
index dbf80e4..e32718a 100644
--- a/core/modules/user/src/Tests/UserLanguageCreationTest.php
+++ b/core/modules/user/src/Tests/UserLanguageCreationTest.php
@@ -11,7 +11,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Functional test for language handling during user creation.
+ * Tests whether proper language is stored for new users and access to language
+ * selector.
+ *
+ * @group user
  */
 class UserLanguageCreationTest extends WebTestBase {
 
@@ -22,14 +25,6 @@ class UserLanguageCreationTest extends WebTestBase {
    */
   public static $modules = array('user', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User language creation',
-      'description' => 'Tests whether proper language is stored for new users and access to language selector.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * Functional test for language handling during user creation.
    */
diff --git a/core/modules/user/src/Tests/UserLanguageTest.php b/core/modules/user/src/Tests/UserLanguageTest.php
index 0d2fee7..4dd0eec 100644
--- a/core/modules/user/src/Tests/UserLanguageTest.php
+++ b/core/modules/user/src/Tests/UserLanguageTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Functional tests for a user's ability to change their default language.
+ *
+ * @group user
  */
 class UserLanguageTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class UserLanguageTest extends WebTestBase {
    */
   public static $modules = array('user', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User language settings',
-      'description' => "Tests user's ability to change their default language.",
-      'group' => 'User',
-    );
-  }
-
   /**
    * Test if user can change their default language.
    */
diff --git a/core/modules/user/src/Tests/UserLoginTest.php b/core/modules/user/src/Tests/UserLoginTest.php
index 8016987..e91609f 100644
--- a/core/modules/user/src/Tests/UserLoginTest.php
+++ b/core/modules/user/src/Tests/UserLoginTest.php
@@ -11,17 +11,11 @@
 use Drupal\Core\Password\PhpassHashedPassword;
 
 /**
- * Functional tests for user logins, including rate limiting of login attempts.
+ * Ensure that login works as expected.
+ *
+ * @group user
  */
 class UserLoginTest extends WebTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'User login',
-      'description' => 'Ensure that login works as expected.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * Tests login with destination.
    */
diff --git a/core/modules/user/src/Tests/UserPasswordResetTest.php b/core/modules/user/src/Tests/UserPasswordResetTest.php
index 4e4d492..41adecc 100644
--- a/core/modules/user/src/Tests/UserPasswordResetTest.php
+++ b/core/modules/user/src/Tests/UserPasswordResetTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests resetting a user password.
+ * Ensure that password reset methods work as expected.
+ *
+ * @group user
  */
 class UserPasswordResetTest extends WebTestBase {
   /**
@@ -20,14 +22,6 @@ class UserPasswordResetTest extends WebTestBase {
    */
   protected $account;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Reset password',
-      'description' => 'Ensure that password reset methods work as expected.',
-      'group' => 'User',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserPermissionsTest.php b/core/modules/user/src/Tests/UserPermissionsTest.php
index 03ad191..7887dcb 100644
--- a/core/modules/user/src/Tests/UserPermissionsTest.php
+++ b/core/modules/user/src/Tests/UserPermissionsTest.php
@@ -11,20 +11,15 @@
 use Drupal\user\RoleStorage;
 
 /**
- * Tests the user role permission UI.
+ * Verify that role permissions can be added and removed via the permissions
+ * page.
+ *
+ * @group user
  */
 class UserPermissionsTest extends WebTestBase {
   protected $admin_user;
   protected $rid;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Role permissions',
-      'description' => 'Verify that role permissions can be added and removed via the permissions page.',
-      'group' => 'User'
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserPictureTest.php b/core/modules/user/src/Tests/UserPictureTest.php
index 335050d..b1825a5 100644
--- a/core/modules/user/src/Tests/UserPictureTest.php
+++ b/core/modules/user/src/Tests/UserPictureTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests user picture functionality.
+ *
+ * @group user
  */
 class UserPictureTest extends WebTestBase {
 
@@ -27,14 +29,6 @@ class UserPictureTest extends WebTestBase {
   protected $user;
   protected $_directory_test;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User pictures',
-      'description' => 'Tests user picture functionality.',
-      'group' => 'User',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserRegistrationTest.php b/core/modules/user/src/Tests/UserRegistrationTest.php
index faa9c7c..fe5239b 100644
--- a/core/modules/user/src/Tests/UserRegistrationTest.php
+++ b/core/modules/user/src/Tests/UserRegistrationTest.php
@@ -11,7 +11,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests user registration.
+ * Tests registration of user under different configurations.
+ *
+ * @group user
  */
 class UserRegistrationTest extends WebTestBase {
 
@@ -22,14 +24,6 @@ class UserRegistrationTest extends WebTestBase {
    */
   public static $modules = array('field_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User registration',
-      'description' => 'Test registration of user under different configurations.',
-      'group' => 'User'
-    );
-  }
-
   function testRegistrationWithEmailVerification() {
     $config = \Drupal::config('user.settings');
     // Require email verification.
diff --git a/core/modules/user/src/Tests/UserRoleAdminTest.php b/core/modules/user/src/Tests/UserRoleAdminTest.php
index 0ddfa73..11e42bc 100644
--- a/core/modules/user/src/Tests/UserRoleAdminTest.php
+++ b/core/modules/user/src/Tests/UserRoleAdminTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test case to test adding, editing and deleting roles.
+ * Tests adding, editing and deleting user roles and changing role weights.
+ *
+ * @group user
  */
 class UserRoleAdminTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User role administration',
-      'description' => 'Test adding, editing and deleting user roles and changing role weights.',
-      'group' => 'User',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->admin_user = $this->drupalCreateUser(array('administer permissions', 'administer users'));
diff --git a/core/modules/user/src/Tests/UserRolesAssignmentTest.php b/core/modules/user/src/Tests/UserRolesAssignmentTest.php
index 99133ea..70ef6f6 100644
--- a/core/modules/user/src/Tests/UserRolesAssignmentTest.php
+++ b/core/modules/user/src/Tests/UserRolesAssignmentTest.php
@@ -10,19 +10,13 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test role assignment.
+ * Tests that users can be assigned and unassigned roles.
+ *
+ * @group user
  */
 class UserRolesAssignmentTest extends WebTestBase {
   protected $admin_user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Role assignment',
-      'description' => 'Tests that users can be assigned and unassigned roles.',
-      'group' => 'User'
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->admin_user = $this->drupalCreateUser(array('administer permissions', 'administer users'));
diff --git a/core/modules/user/src/Tests/UserSaveTest.php b/core/modules/user/src/Tests/UserSaveTest.php
index 3f9f11d..8fc891e 100644
--- a/core/modules/user/src/Tests/UserSaveTest.php
+++ b/core/modules/user/src/Tests/UserSaveTest.php
@@ -10,18 +10,12 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests \Drupal\user\UserStorage::save() behavior.
+ * Tests account saving for arbitrary new uid.
+ *
+ * @group user
  */
 class UserSaveTest extends WebTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User save test',
-      'description' => 'Test account saving for arbitrary new uid.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * Test creating a user with arbitrary uid.
    */
diff --git a/core/modules/user/src/Tests/UserSearchTest.php b/core/modules/user/src/Tests/UserSearchTest.php
index c55d381..cbb2628 100644
--- a/core/modules/user/src/Tests/UserSearchTest.php
+++ b/core/modules/user/src/Tests/UserSearchTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test user search.
+ * Tests the user search page and verifies that sensitive information is hidden
+ * from unauthorized users.
+ *
+ * @group user
  */
 class UserSearchTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class UserSearchTest extends WebTestBase {
    */
   public static $modules = array('search');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User search',
-      'description' => 'Tests the user search page and verifies that sensitive information is hidden from unauthorized users.',
-      'group' => 'User',
-    );
-  }
-
   function testUserSearch() {
     // Verify that a user without 'administer users' permission cannot search
     // for users by email address.
diff --git a/core/modules/user/src/Tests/UserSignatureTest.php b/core/modules/user/src/Tests/UserSignatureTest.php
index ce6c5ff..8a19bc7 100644
--- a/core/modules/user/src/Tests/UserSignatureTest.php
+++ b/core/modules/user/src/Tests/UserSignatureTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Test case for user signatures.
+ * Tests case for user signatures.
+ *
+ * @group user
  */
 class UserSignatureTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class UserSignatureTest extends WebTestBase {
    */
   public static $modules = array('node', 'comment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User signatures',
-      'description' => 'Test user signatures.',
-      'group' => 'User',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/UserTimeZoneTest.php b/core/modules/user/src/Tests/UserTimeZoneTest.php
index 0702799..f3ea297 100644
--- a/core/modules/user/src/Tests/UserTimeZoneTest.php
+++ b/core/modules/user/src/Tests/UserTimeZoneTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests for user-configurable time zones.
+ * Set a user time zone and verify that dates are displayed in local time.
+ *
+ * @group user
  */
 class UserTimeZoneTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class UserTimeZoneTest extends WebTestBase {
    */
   public static $modules = array('node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User time zones',
-      'description' => 'Set a user time zone and verify that dates are displayed in local time.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * Tests the display of dates and time when user-configurable time zones are set.
    */
diff --git a/core/modules/user/src/Tests/UserTokenReplaceTest.php b/core/modules/user/src/Tests/UserTokenReplaceTest.php
index 1f8f023..fa5ac1b 100644
--- a/core/modules/user/src/Tests/UserTokenReplaceTest.php
+++ b/core/modules/user/src/Tests/UserTokenReplaceTest.php
@@ -12,7 +12,10 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Test user token replacement in strings.
+ * Generates text using placeholders for dummy content to check user token
+ * replacement.
+ *
+ * @group user
  */
 class UserTokenReplaceTest extends WebTestBase {
 
@@ -23,14 +26,6 @@ class UserTokenReplaceTest extends WebTestBase {
    */
   public static $modules = array('language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User token replacement',
-      'description' => 'Generates text using placeholders for dummy content to check user token replacement.',
-      'group' => 'User',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $language = new Language(array(
diff --git a/core/modules/user/src/Tests/UserTranslationUITest.php b/core/modules/user/src/Tests/UserTranslationUITest.php
index 22ff1f9..d8c8332 100644
--- a/core/modules/user/src/Tests/UserTranslationUITest.php
+++ b/core/modules/user/src/Tests/UserTranslationUITest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the User Translation UI.
+ *
+ * @group user
  */
 class UserTranslationUITest extends ContentTranslationUITest {
 
@@ -26,14 +28,6 @@ class UserTranslationUITest extends ContentTranslationUITest {
    */
   public static $modules = array('language', 'content_translation', 'user', 'views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User translation UI',
-      'description' => 'Tests the user translation UI.',
-      'group' => 'User',
-    );
-  }
-
   function setUp() {
     $this->entityTypeId = 'user';
     $this->testLanguageSelector = FALSE;
diff --git a/core/modules/user/src/Tests/UserValidateCurrentPassCustomFormTest.php b/core/modules/user/src/Tests/UserValidateCurrentPassCustomFormTest.php
index c533766..c4f0c2d 100644
--- a/core/modules/user/src/Tests/UserValidateCurrentPassCustomFormTest.php
+++ b/core/modules/user/src/Tests/UserValidateCurrentPassCustomFormTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests user_validate_current_pass on a custom form.
+ *
+ * @group user
  */
 class UserValidateCurrentPassCustomFormTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class UserValidateCurrentPassCustomFormTest extends WebTestBase {
    */
   public static $modules = array('user_form_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User validate current pass custom form',
-      'description' => 'Test that user_validate_current_pass is usable on a custom form.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * User with permission to view content.
    */
diff --git a/core/modules/user/src/Tests/UserValidationTest.php b/core/modules/user/src/Tests/UserValidationTest.php
index f6252ac..44cd775 100644
--- a/core/modules/user/src/Tests/UserValidationTest.php
+++ b/core/modules/user/src/Tests/UserValidationTest.php
@@ -12,7 +12,9 @@
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
- * Performs validation tests on user fields.
+ * Verify that user validity checks behave as designed.
+ *
+ * @group user
  */
 class UserValidationTest extends DrupalUnitTestBase {
 
@@ -23,14 +25,6 @@ class UserValidationTest extends DrupalUnitTestBase {
    */
   public static $modules = array('entity', 'field', 'user', 'system');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User validation',
-      'description' => 'Verify that user validity checks behave as designed.',
-      'group' => 'User'
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/user/src/Tests/Views/AccessPermissionTest.php b/core/modules/user/src/Tests/Views/AccessPermissionTest.php
index dcccacc..e40d7a8 100644
--- a/core/modules/user/src/Tests/Views/AccessPermissionTest.php
+++ b/core/modules/user/src/Tests/Views/AccessPermissionTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests views perm access plugin.
  *
+ * @group user
  * @see \Drupal\user\Plugin\views\access\Permission
  */
 class AccessPermissionTest extends AccessTestBase {
@@ -24,14 +25,6 @@ class AccessPermissionTest extends AccessTestBase {
    */
   public static $testViews = array('test_access_perm');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Access permission',
-      'description' => 'Tests views permission access plugin.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests perm access plugin.
    */
diff --git a/core/modules/user/src/Tests/Views/AccessRoleTest.php b/core/modules/user/src/Tests/Views/AccessRoleTest.php
index 53ecc44..96ef4f5 100644
--- a/core/modules/user/src/Tests/Views/AccessRoleTest.php
+++ b/core/modules/user/src/Tests/Views/AccessRoleTest.php
@@ -15,6 +15,7 @@
 /**
  * Tests views role access plugin.
  *
+ * @group user
  * @see \Drupal\user\Plugin\views\access\Role
  */
 class AccessRoleTest extends AccessTestBase {
@@ -26,14 +27,6 @@ class AccessRoleTest extends AccessTestBase {
    */
   public static $testViews = array('test_access_role');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Access role',
-      'description' => 'Tests views role access plugin.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests role access plugin.
    */
diff --git a/core/modules/user/src/Tests/Views/AccessRoleUITest.php b/core/modules/user/src/Tests/Views/AccessRoleUITest.php
index 017c1a3..70a797d 100644
--- a/core/modules/user/src/Tests/Views/AccessRoleUITest.php
+++ b/core/modules/user/src/Tests/Views/AccessRoleUITest.php
@@ -13,6 +13,7 @@
 /**
  * Tests views role access plugin UI.
  *
+ * @group user
  * @see Drupal\user\Plugin\views\access\Role
  */
 class AccessRoleUITest extends UITestBase {
@@ -34,17 +35,6 @@ class AccessRoleUITest extends UITestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Access role (UI)',
-      'description' => 'Tests views role access plugin UI.',
-      'group' => 'Views module integration',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/Views/ArgumentDefaultTest.php b/core/modules/user/src/Tests/Views/ArgumentDefaultTest.php
index c8de3a3..0a3f439 100644
--- a/core/modules/user/src/Tests/Views/ArgumentDefaultTest.php
+++ b/core/modules/user/src/Tests/Views/ArgumentDefaultTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests views user argument default plugin.
+ *
+ * @group user
  */
 class ArgumentDefaultTest extends UserTestBase {
 
@@ -21,14 +23,6 @@ class ArgumentDefaultTest extends UserTestBase {
    */
   public static $testViews = array('test_plugin_argument_default_current_user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Argument default',
-      'description' => 'Tests user argument default plugin.',
-      'group' => 'Views module integration',
-    );
-  }
-
   public function test_plugin_argument_default_current_user() {
     // Create a user to test.
     $account = $this->drupalCreateUser();
diff --git a/core/modules/user/src/Tests/Views/ArgumentValidateTest.php b/core/modules/user/src/Tests/Views/ArgumentValidateTest.php
index 76405de..3bc83d9 100644
--- a/core/modules/user/src/Tests/Views/ArgumentValidateTest.php
+++ b/core/modules/user/src/Tests/Views/ArgumentValidateTest.php
@@ -10,7 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests views user argument validator plugin.
+ * Tests user argument validators for ID and name.
+ *
+ * @group user
  */
 class ArgumentValidateTest extends UserTestBase {
 
@@ -21,14 +23,6 @@ class ArgumentValidateTest extends UserTestBase {
    */
   public static $testViews = array('test_view_argument_validate_user', 'test_view_argument_validate_username');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Argument validators',
-      'description' => 'Tests user argument validators for ID and name.',
-      'group' => 'Views module integration',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/Views/BulkFormTest.php b/core/modules/user/src/Tests/Views/BulkFormTest.php
index f3dfca4..47d8a07 100644
--- a/core/modules/user/src/Tests/Views/BulkFormTest.php
+++ b/core/modules/user/src/Tests/Views/BulkFormTest.php
@@ -10,8 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the views bulk form test.
+ * Tests a user bulk form.
  *
+ * @group user
  * @see \Drupal\user\Plugin\views\field\BulkForm
  */
 class BulkFormTest extends UserTestBase {
@@ -23,14 +24,6 @@ class BulkFormTest extends UserTestBase {
    */
   public static $testViews = array('test_user_bulk_form');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Bulk form',
-      'description' => 'Tests a user bulk form.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the user bulk form.
    */
diff --git a/core/modules/user/src/Tests/Views/HandlerArgumentUserUidTest.php b/core/modules/user/src/Tests/Views/HandlerArgumentUserUidTest.php
index a52c5e3..f2e8cd3 100644
--- a/core/modules/user/src/Tests/Views/HandlerArgumentUserUidTest.php
+++ b/core/modules/user/src/Tests/Views/HandlerArgumentUserUidTest.php
@@ -10,7 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests views user uid argument handler.
+ * Tests the handler of the user: uid Argument.
+ *
+ * @group user
  */
 class HandlerArgumentUserUidTest extends UserTestBase {
 
@@ -21,14 +23,6 @@ class HandlerArgumentUserUidTest extends UserTestBase {
    */
   public static $testViews = array('test_user_uid_argument');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Uid Argument',
-      'description' => 'Tests the handler of the user: uid Argument.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the generated title of an user: uid argument.
    */
diff --git a/core/modules/user/src/Tests/Views/HandlerFieldPermissionTest.php b/core/modules/user/src/Tests/Views/HandlerFieldPermissionTest.php
index 6f78d22..06d181d 100644
--- a/core/modules/user/src/Tests/Views/HandlerFieldPermissionTest.php
+++ b/core/modules/user/src/Tests/Views/HandlerFieldPermissionTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the permission field handler.
  *
+ * @group user
  * @see \Drupal\user\Plugin\views\field\Permissions
  */
 class HandlerFieldPermissionTest extends UserUnitTestBase {
@@ -25,14 +26,6 @@ class HandlerFieldPermissionTest extends UserUnitTestBase {
    */
   public static $testViews = array('test_field_permission');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Permissions Field',
-      'description' => 'Tests the permission field handler.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the permission field handler output.
    */
diff --git a/core/modules/user/src/Tests/Views/HandlerFieldRoleTest.php b/core/modules/user/src/Tests/Views/HandlerFieldRoleTest.php
index b9b9791..3c0a05f 100644
--- a/core/modules/user/src/Tests/Views/HandlerFieldRoleTest.php
+++ b/core/modules/user/src/Tests/Views/HandlerFieldRoleTest.php
@@ -10,8 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the role field handler.
+ * Tests the handler of the user: role field.
  *
+ * @group user
  * @see views_handler_field_user_name
  */
 class HandlerFieldRoleTest extends UserTestBase {
@@ -23,14 +24,6 @@ class HandlerFieldRoleTest extends UserTestBase {
    */
   public static $testViews = array('test_views_handler_field_role');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Role Field',
-      'description' => 'Tests the handler of the user: role field.',
-      'group' => 'Views module integration',
-    );
-  }
-
   public function testRole() {
     // Create a couple of roles for the view.
     $rolename_a = 'a' . $this->randomName(8);
diff --git a/core/modules/user/src/Tests/Views/HandlerFieldUserNameTest.php b/core/modules/user/src/Tests/Views/HandlerFieldUserNameTest.php
index 4b1e9f9..f28b7d8 100644
--- a/core/modules/user/src/Tests/Views/HandlerFieldUserNameTest.php
+++ b/core/modules/user/src/Tests/Views/HandlerFieldUserNameTest.php
@@ -10,8 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the field username handler.
+ * Tests the handler of the user: name field.
  *
+ * @group user
  * @see views_handler_field_user_name
  */
 class HandlerFieldUserNameTest extends UserTestBase {
@@ -23,14 +24,6 @@ class HandlerFieldUserNameTest extends UserTestBase {
    */
   public static $testViews = array('test_views_handler_field_user_name');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Name Field',
-      'description' => 'Tests the handler of the user: name field.',
-      'group' => 'Views module integration',
-    );
-  }
-
   public function testUserName() {
     $this->drupalLogin($this->drupalCreateUser(array('access user profiles')));
 
diff --git a/core/modules/user/src/Tests/Views/HandlerFilterPermissionTest.php b/core/modules/user/src/Tests/Views/HandlerFilterPermissionTest.php
index 970ea70..16db903 100644
--- a/core/modules/user/src/Tests/Views/HandlerFilterPermissionTest.php
+++ b/core/modules/user/src/Tests/Views/HandlerFilterPermissionTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the permissions filter handler.
  *
+ * @group user
  * @see \Drupal\user\Plugin\views\filter\Permissions
  */
 class HandlerFilterPermissionTest extends UserUnitTestBase {
@@ -27,14 +28,6 @@ class HandlerFilterPermissionTest extends UserUnitTestBase {
 
   protected $columnMap;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Permissions Filter',
-      'description' => 'Tests the permission filter handler.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the permission filter handler.
    *
diff --git a/core/modules/user/src/Tests/Views/HandlerFilterUserNameTest.php b/core/modules/user/src/Tests/Views/HandlerFilterUserNameTest.php
index a498d37..e08f484 100644
--- a/core/modules/user/src/Tests/Views/HandlerFilterUserNameTest.php
+++ b/core/modules/user/src/Tests/Views/HandlerFilterUserNameTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the handler of the user: name filter.
  *
+ * @group user
  * @see Views\user\Plugin\views\filter\Name
  */
 class HandlerFilterUserNameTest extends ViewTestBase {
@@ -55,14 +56,6 @@ class HandlerFilterUserNameTest extends ViewTestBase {
     'uid' => 'uid',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Name Filter',
-      'description' => 'Tests the handler of the user: name filter',
-      'group' => 'Views module integration',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/src/Tests/Views/RelationshipRepresentativeNode.php b/core/modules/user/src/Tests/Views/RelationshipRepresentativeNode.php
index 886c1ff..18fe65a 100644
--- a/core/modules/user/src/Tests/Views/RelationshipRepresentativeNode.php
+++ b/core/modules/user/src/Tests/Views/RelationshipRepresentativeNode.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the representative node relationship for users.
+ *
+ * @group user
  */
 class RelationshipRepresentativeNode extends UserTestBase {
 
@@ -21,14 +23,6 @@ class RelationshipRepresentativeNode extends UserTestBase {
    */
   public static $testViews = array('test_groupwise_user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Representative Node Relationship',
-      'description' => 'Tests the representative node relationship for users.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the relationship.
    */
diff --git a/core/modules/user/src/Tests/Views/UserDataTest.php b/core/modules/user/src/Tests/Views/UserDataTest.php
index 7813dd7..1e394e3 100644
--- a/core/modules/user/src/Tests/Views/UserDataTest.php
+++ b/core/modules/user/src/Tests/Views/UserDataTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the user data service field handler.
  *
+ * @group user
  * @see \Drupal\user\Plugin\views\field\UserData
  */
 class UserDataTest extends UserTestBase {
@@ -30,14 +31,6 @@ class UserDataTest extends UserTestBase {
    */
   public static $testViews = array('test_user_data');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User data: Field',
-      'description' => 'Tests the user data service field handler.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests field handler.
    */
diff --git a/core/modules/user/tests/src/Menu/UserLocalTasksTest.php b/core/modules/user/tests/src/Menu/UserLocalTasksTest.php
index b8897ce..4861b4b 100644
--- a/core/modules/user/tests/src/Menu/UserLocalTasksTest.php
+++ b/core/modules/user/tests/src/Menu/UserLocalTasksTest.php
@@ -10,21 +10,12 @@
 use Drupal\Tests\Core\Menu\LocalTaskIntegrationTest;
 
 /**
- * Tests existence of user local tasks.
+ * Tests user local tasks.
  *
- * @group Drupal
- * @group User
+ * @group user
  */
 class UserLocalTasksTest extends LocalTaskIntegrationTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User local tasks test',
-      'description' => 'Test user local tasks.',
-      'group' => 'User',
-    );
-  }
-
   public function setUp() {
     $this->directoryList = array('user' => 'core/modules/user');
     parent::setUp();
diff --git a/core/modules/user/tests/src/PermissionsHashTest.php b/core/modules/user/tests/src/PermissionsHashTest.php
index 453bcfb..037ebbb 100644
--- a/core/modules/user/tests/src/PermissionsHashTest.php
+++ b/core/modules/user/tests/src/PermissionsHashTest.php
@@ -13,12 +13,8 @@
 
 
 /**
- * Tests the user permissions hash generator service.
- *
- * @group Drupal
- * @group User
- *
- * @see \Drupal\user\PermissionsHash
+ * @coversDefaultClass \Drupal\user\PermissionsHash
+ * @group user
  */
 class PermissionsHashTest extends UnitTestCase {
 
@@ -67,17 +63,6 @@ class PermissionsHashTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Permission hash generator service',
-      'description' => 'Tests the user permission hash generator service',
-      'group' => 'User',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/tests/src/Plugin/Action/AddRoleUserTest.php b/core/modules/user/tests/src/Plugin/Action/AddRoleUserTest.php
index fdd4485..0c9879e 100644
--- a/core/modules/user/tests/src/Plugin/Action/AddRoleUserTest.php
+++ b/core/modules/user/tests/src/Plugin/Action/AddRoleUserTest.php
@@ -10,24 +10,12 @@
 use Drupal\user\Plugin\Action\AddRoleUser;
 
 /**
- * Tests the role add plugin.
- *
- * @see \Drupal\user\Plugin\Action\AddRoleUser
+ * @coversDefaultClass \Drupal\user\Plugin\Action\AddRoleUser
+ * @group user
  */
 class AddRoleUserTest extends RoleUserTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Add user plugin',
-      'description' => 'Tests the role add plugin',
-      'group' => 'User',
-    );
-  }
-
-  /**
    * Tests the execute method on a user with a role.
    */
   public function testExecuteAddExistingRole() {
diff --git a/core/modules/user/tests/src/Plugin/Action/RemoveRoleUserTest.php b/core/modules/user/tests/src/Plugin/Action/RemoveRoleUserTest.php
index e72113c..87f7212 100644
--- a/core/modules/user/tests/src/Plugin/Action/RemoveRoleUserTest.php
+++ b/core/modules/user/tests/src/Plugin/Action/RemoveRoleUserTest.php
@@ -10,24 +10,12 @@
 use Drupal\user\Plugin\Action\RemoveRoleUser;
 
 /**
- * Tests the role remove plugin.
- *
- * @see \Drupal\user\Plugin\Action\RemoveRoleUser
+ * @coversDefaultClass \Drupal\user\Plugin\Action\RemoveRoleUser
+ * @group user
  */
 class RemoveRoleUserTest extends RoleUserTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Remove user plugin',
-      'description' => 'Tests the role remove plugin',
-      'group' => 'User',
-    );
-  }
-
-  /**
    * Tests the execute method on a user with a role.
    */
   public function testExecuteRemoveExistingRole() {
diff --git a/core/modules/user/tests/src/Plugin/Core/Entity/UserTest.php b/core/modules/user/tests/src/Plugin/Core/Entity/UserTest.php
index bc341b2..19d7f2b 100644
--- a/core/modules/user/tests/src/Plugin/Core/Entity/UserTest.php
+++ b/core/modules/user/tests/src/Plugin/Core/Entity/UserTest.php
@@ -11,20 +11,11 @@
 use Drupal\user\Entity\User;
 
 /**
- * Tests the user object.
- *
  * @coversDefaultClass \Drupal\user\Entity\User
+ * @group user
  */
 class UserTest extends UserSessionTest {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User object',
-      'description' => 'Tests the user object.',
-      'group' => 'User',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/user/tests/src/Plugin/views/field/UserBulkFormTest.php b/core/modules/user/tests/src/Plugin/views/field/UserBulkFormTest.php
index 642aacd..e6dbe9b 100644
--- a/core/modules/user/tests/src/Plugin/views/field/UserBulkFormTest.php
+++ b/core/modules/user/tests/src/Plugin/views/field/UserBulkFormTest.php
@@ -12,20 +12,11 @@
 use Drupal\user\Plugin\views\field\UserBulkForm;
 
 /**
- * Tests the user bulk form plugin.
- *
- * @see \Drupal\user\Plugin\views\field\UserBulkForm
+ * @coversDefaultClass \Drupal\user\Plugin\views\field\UserBulkForm
+ * @group user
  */
 class UserBulkFormTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Bulk form',
-      'description' => 'Tests the user bulk form plugin.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/user/tests/src/TempStoreTest.php b/core/modules/user/tests/src/TempStoreTest.php
index af54c81..257812e 100644
--- a/core/modules/user/tests/src/TempStoreTest.php
+++ b/core/modules/user/tests/src/TempStoreTest.php
@@ -11,12 +11,8 @@
 use Drupal\user\TempStore;
 
 /**
- * Tests the TempStore namespace.
- *
- * @group Drupal
- * @group User
- *
  * @coversDefaultClass \Drupal\user\TempStore
+ * @group user
  */
 class TempStoreTest extends UnitTestCase {
 
@@ -65,17 +61,6 @@ class TempStoreTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'TempStore',
-      'description' => 'Unit tests the Drupal\user\TempStore class.',
-      'group' => 'User',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/user/tests/src/UserAuthTest.php b/core/modules/user/tests/src/UserAuthTest.php
index bd069be..0f42b9f 100644
--- a/core/modules/user/tests/src/UserAuthTest.php
+++ b/core/modules/user/tests/src/UserAuthTest.php
@@ -11,12 +11,8 @@
 use Drupal\user\UserAuth;
 
 /**
- * Tests the UserAuth class.
- *
- * @group Drupal
- * @group User
- *
  * @coversDefaultClass \Drupal\user\UserAuth
+ * @group user
  */
 class UserAuthTest extends UnitTestCase {
 
@@ -65,17 +61,6 @@ class UserAuthTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'User auth service',
-      'description' => 'Tests the user auth service',
-      'group' => 'User',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->userStorage = $this->getMock('Drupal\Core\Entity\EntityStorageInterface');
 
diff --git a/core/modules/user/tests/src/Views/Argument/RolesRidTest.php b/core/modules/user/tests/src/Views/Argument/RolesRidTest.php
index fabfec0..f90a84c 100644
--- a/core/modules/user/tests/src/Views/Argument/RolesRidTest.php
+++ b/core/modules/user/tests/src/Views/Argument/RolesRidTest.php
@@ -14,20 +14,11 @@
 use Drupal\user\Plugin\views\argument\RolesRid;
 
 /**
- * Tests the roles argument handler.
- *
- * @see \Drupal\user\Plugin\views\argument\RolesRid
+ * @coversDefaultClass \Drupal\user\Plugin\views\argument\RolesRid
+ * @group user
  */
 class RolesRidTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User: Roles Rid Argument',
-      'description' => 'Tests the role argument handler.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the title_query method.
    *
diff --git a/core/modules/views/src/Tests/BasicTest.php b/core/modules/views/src/Tests/BasicTest.php
index 719e752..aafa3f4 100644
--- a/core/modules/views/src/Tests/BasicTest.php
+++ b/core/modules/views/src/Tests/BasicTest.php
@@ -10,7 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Basic test class for Views query builder tests.
+ * A basic query test for Views.
+ *
+ * @group views
  */
 class BasicTest extends ViewUnitTestBase {
 
@@ -21,14 +23,6 @@ class BasicTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view', 'test_simple_argument');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Basic query tests',
-      'description' => 'A basic query test for Views.',
-      'group' => 'Views'
-    );
-  }
-
   /**
    * Tests a trivial result set.
    */
diff --git a/core/modules/views/src/Tests/DefaultViewsTest.php b/core/modules/views/src/Tests/DefaultViewsTest.php
index 513c3b2..9c65b35 100644
--- a/core/modules/views/src/Tests/DefaultViewsTest.php
+++ b/core/modules/views/src/Tests/DefaultViewsTest.php
@@ -14,7 +14,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests for views default views.
+ * Tests the default views provided by views.
+ *
+ * @group views
  */
 class DefaultViewsTest extends ViewTestBase {
 
@@ -36,14 +38,6 @@ class DefaultViewsTest extends ViewTestBase {
     'glossary' => array('all'),
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Default views',
-      'description' => 'Tests the default views provided by views',
-      'group' => 'Views',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Entity/FieldEntityTest.php b/core/modules/views/src/Tests/Entity/FieldEntityTest.php
index 9d9a03a..4ff36d8 100644
--- a/core/modules/views/src/Tests/Entity/FieldEntityTest.php
+++ b/core/modules/views/src/Tests/Entity/FieldEntityTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the field plugin base integration with the entity system.
+ *
+ * @group views
  */
 class FieldEntityTest extends ViewTestBase {
 
@@ -29,14 +31,6 @@ class FieldEntityTest extends ViewTestBase {
    */
   public static $modules = array('node', 'comment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Entity Api Integration',
-      'description' => 'Tests the field plugin base integration with the entity system.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the getEntity method.
    */
diff --git a/core/modules/views/src/Tests/Entity/FilterEntityBundleTest.php b/core/modules/views/src/Tests/Entity/FilterEntityBundleTest.php
index d950a6a..bdccc5d 100644
--- a/core/modules/views/src/Tests/Entity/FilterEntityBundleTest.php
+++ b/core/modules/views/src/Tests/Entity/FilterEntityBundleTest.php
@@ -11,7 +11,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the EntityType generic filter handler.
+ * Tests the generic entity bundle filter.
+ *
+ * @group views
  */
 class FilterEntityBundleTest extends ViewTestBase {
 
@@ -43,14 +45,6 @@ class FilterEntityBundleTest extends ViewTestBase {
    */
   protected $entities = array();
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: Entity bundle',
-      'description' => 'Tests the generic entity bundle filter.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php b/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php
index 6f74620..5d8a5f9 100644
--- a/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php
+++ b/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the entity row renderers.
  *
+ * @group views
  * @see \Drupal\views\Entity\Render\RendererBase
  */
 class RowEntityRenderersTest extends ViewUnitTestBase {
@@ -42,17 +43,6 @@ class RowEntityRenderersTest extends ViewUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity: renderers',
-      'description' => 'Tests the entity row renderers.',
-      'group' => 'Views module integration',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Entity/ViewEntityDependenciesTest.php b/core/modules/views/src/Tests/Entity/ViewEntityDependenciesTest.php
index 082f352..093cfb9 100644
--- a/core/modules/views/src/Tests/Entity/ViewEntityDependenciesTest.php
+++ b/core/modules/views/src/Tests/Entity/ViewEntityDependenciesTest.php
@@ -11,7 +11,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests \Drupal\views\Entity\View::calculateDependencies().
+ * Tests the calculation of dependencies for views.
+ *
+ * @group views
  */
 class ViewEntityDependenciesTest extends ViewTestBase {
 
@@ -29,14 +31,6 @@ class ViewEntityDependenciesTest extends ViewTestBase {
    */
   public static $modules = array('node', 'comment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View dependencies test',
-      'description' => 'Tests the calculation of dependencies for views.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * Tests the calculateDependencies method.
    */
diff --git a/core/modules/views/src/Tests/GlossaryTest.php b/core/modules/views/src/Tests/GlossaryTest.php
index 739f2a6..4518aae 100644
--- a/core/modules/views/src/Tests/GlossaryTest.php
+++ b/core/modules/views/src/Tests/GlossaryTest.php
@@ -11,7 +11,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests glossary view ( summary of arguments ).
+ * Tests glossary functionality of views.
+ *
+ * @group views
  */
 class GlossaryTest extends ViewTestBase {
 
@@ -22,14 +24,6 @@ class GlossaryTest extends ViewTestBase {
    */
   public static $modules = array('node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Glossary tests',
-      'description' => 'Tests glossary functionality of views.',
-      'group' => 'Views Config',
-    );
-  }
-
   /**
    * Tests the default glossary view.
    */
diff --git a/core/modules/views/src/Tests/Handler/AreaEntityTest.php b/core/modules/views/src/Tests/Handler/AreaEntityTest.php
index f2a42fc..699650a 100644
--- a/core/modules/views/src/Tests/Handler/AreaEntityTest.php
+++ b/core/modules/views/src/Tests/Handler/AreaEntityTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the generic entity area handler.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\area\Entity
  */
 class AreaEntityTest extends ViewTestBase {
@@ -32,14 +33,6 @@ class AreaEntityTest extends ViewTestBase {
    */
   public static $testViews = array('test_entity_area');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Area: Entity',
-      'description' => 'Tests the generic entity area handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Handler/AreaHTTPStatusCodeTest.php b/core/modules/views/src/Tests/Handler/AreaHTTPStatusCodeTest.php
index b39c9d0..60ea9b1 100644
--- a/core/modules/views/src/Tests/Handler/AreaHTTPStatusCodeTest.php
+++ b/core/modules/views/src/Tests/Handler/AreaHTTPStatusCodeTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the http_status_code area handler.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\area\HTTPStatusCode
  */
 class AreaHTTPStatusCodeTest extends HandlerTestBase {
@@ -30,14 +31,6 @@ class AreaHTTPStatusCodeTest extends HandlerTestBase {
    */
   public static $modules = array('node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Area: HTTP Status Code',
-      'description' => 'Tests the http_status_code area handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * Tests the area handler.
    */
diff --git a/core/modules/views/src/Tests/Handler/AreaTest.php b/core/modules/views/src/Tests/Handler/AreaTest.php
index 2fae9d3..be90e24 100644
--- a/core/modules/views/src/Tests/Handler/AreaTest.php
+++ b/core/modules/views/src/Tests/Handler/AreaTest.php
@@ -10,8 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the abstract area handler.
+ * Tests the plugin base of the area handler.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\area\AreaPluginBase
  * @see \Drupal\views_test\Plugin\views\area\TestExample
  */
@@ -31,14 +32,6 @@ class AreaTest extends HandlerTestBase {
    */
   public static $modules = array('node', 'views_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Area: Base',
-      'description' => 'Test the plugin base of the area handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Handler/AreaTextTest.php b/core/modules/views/src/Tests/Handler/AreaTextTest.php
index 7bc2bc2..a63b503 100644
--- a/core/modules/views/src/Tests/Handler/AreaTextTest.php
+++ b/core/modules/views/src/Tests/Handler/AreaTextTest.php
@@ -11,8 +11,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the text area handler.
+ * Tests the core views_handler_area_text handler.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\area\Text
  */
 class AreaTextTest extends ViewUnitTestBase {
@@ -26,14 +27,6 @@ class AreaTextTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Area: Text',
-      'description' => 'Test the core views_handler_area_text handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Handler/AreaTitleTest.php b/core/modules/views/src/Tests/Handler/AreaTitleTest.php
index 367e980..86d9e83 100644
--- a/core/modules/views/src/Tests/Handler/AreaTitleTest.php
+++ b/core/modules/views/src/Tests/Handler/AreaTitleTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the title area handler.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\area\Title
  */
 class AreaTitleTest extends ViewUnitTestBase {
@@ -24,14 +25,6 @@ class AreaTitleTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_area_title');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Area: Title',
-      'description' => 'Tests the title area handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * Tests the title area handler.
    */
diff --git a/core/modules/views/src/Tests/Handler/AreaViewTest.php b/core/modules/views/src/Tests/Handler/AreaViewTest.php
index a99a316..16bd12e 100644
--- a/core/modules/views/src/Tests/Handler/AreaViewTest.php
+++ b/core/modules/views/src/Tests/Handler/AreaViewTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the view area handler.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\area\View
  */
 class AreaViewTest extends ViewUnitTestBase {
@@ -32,17 +33,6 @@ class AreaViewTest extends ViewUnitTestBase {
   public static $testViews = array('test_area_view', 'test_simple_argument');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Area: View',
-      'description' => 'Tests the view area handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
-  /**
    * Tests the view area handler.
    */
   public function testViewArea() {
diff --git a/core/modules/views/src/Tests/Handler/ArgumentDateTest.php b/core/modules/views/src/Tests/Handler/ArgumentDateTest.php
index 6c1ae6e..4c66e79 100644
--- a/core/modules/views/src/Tests/Handler/ArgumentDateTest.php
+++ b/core/modules/views/src/Tests/Handler/ArgumentDateTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the core date argument handlers.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\argument\Date
  */
 class ArgumentDateTest extends ViewUnitTestBase {
@@ -33,14 +34,6 @@ class ArgumentDateTest extends ViewUnitTestBase {
     'id' => 'id',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Argument: Date',
-      'description' => 'Tests the core date argument handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * Overrides \Drupal\views\Tests\ViewUnitTestBase::viewsData().
    */
diff --git a/core/modules/views/src/Tests/Handler/ArgumentNullTest.php b/core/modules/views/src/Tests/Handler/ArgumentNullTest.php
index 3c5930a..50684bd 100644
--- a/core/modules/views/src/Tests/Handler/ArgumentNullTest.php
+++ b/core/modules/views/src/Tests/Handler/ArgumentNullTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the core Drupal\views\Plugin\views\argument\Null handler.
+ *
+ * @group views
  */
 class ArgumentNullTest extends ViewUnitTestBase {
 
@@ -22,14 +24,6 @@ class ArgumentNullTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Argument: Null',
-      'description' => 'Test the core Drupal\views\Plugin\views\argument\Null handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   function viewsData() {
     $data = parent::viewsData();
     $data['views_test_data']['id']['argument']['id'] = 'null';
diff --git a/core/modules/views/src/Tests/Handler/ArgumentStringTest.php b/core/modules/views/src/Tests/Handler/ArgumentStringTest.php
index 4f2a7bc..7d7cfa7 100644
--- a/core/modules/views/src/Tests/Handler/ArgumentStringTest.php
+++ b/core/modules/views/src/Tests/Handler/ArgumentStringTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the core Drupal\views\Plugin\views\argument\String handler.
+ *
+ * @group views
  */
 class ArgumentStringTest extends HandlerTestBase {
 
@@ -28,14 +30,6 @@ class ArgumentStringTest extends HandlerTestBase {
    */
   public static $modules = array('node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Argument: String',
-      'description' => 'Test the core Drupal\views\Plugin\views\argument\String handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * Tests the glossary feature.
    */
diff --git a/core/modules/views/src/Tests/Handler/FieldBooleanTest.php b/core/modules/views/src/Tests/Handler/FieldBooleanTest.php
index 482980d..27b8165 100644
--- a/core/modules/views/src/Tests/Handler/FieldBooleanTest.php
+++ b/core/modules/views/src/Tests/Handler/FieldBooleanTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the core Drupal\views\Plugin\views\field\Boolean handler.
+ *
+ * @group views
  */
 class FieldBooleanTest extends ViewUnitTestBase {
 
@@ -22,14 +24,6 @@ class FieldBooleanTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Boolean',
-      'description' => 'Test the core Drupal\views\Plugin\views\field\Boolean handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   function dataSet() {
     // Use default dataset but remove the age from john and paul
     $data = parent::dataSet();
diff --git a/core/modules/views/src/Tests/Handler/FieldCounterTest.php b/core/modules/views/src/Tests/Handler/FieldCounterTest.php
index 3d12d42..1290e67 100644
--- a/core/modules/views/src/Tests/Handler/FieldCounterTest.php
+++ b/core/modules/views/src/Tests/Handler/FieldCounterTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the Drupal\views\Plugin\views\field\Counter handler.
+ *
+ * @group views
  */
 class FieldCounterTest extends ViewUnitTestBase {
 
@@ -29,14 +31,6 @@ class FieldCounterTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Counter',
-      'description' => 'Tests the Drupal\views\Plugin\views\field\Counter handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   function testSimple() {
     $view = Views::getView('test_view');
     $view->setDisplay();
diff --git a/core/modules/views/src/Tests/Handler/FieldCustomTest.php b/core/modules/views/src/Tests/Handler/FieldCustomTest.php
index a761ce2..08bc133 100644
--- a/core/modules/views/src/Tests/Handler/FieldCustomTest.php
+++ b/core/modules/views/src/Tests/Handler/FieldCustomTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the core Drupal\views\Plugin\views\field\Custom handler.
+ *
+ * @group views
  */
 class FieldCustomTest extends ViewUnitTestBase {
 
@@ -22,14 +24,6 @@ class FieldCustomTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Custom',
-      'description' => 'Test the core Drupal\views\Plugin\views\field\Custom handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   function viewsData() {
     $data = parent::viewsData();
     $data['views_test_data']['name']['field']['id'] = 'custom';
diff --git a/core/modules/views/src/Tests/Handler/FieldDateTest.php b/core/modules/views/src/Tests/Handler/FieldDateTest.php
index 54cdc02..503b927 100644
--- a/core/modules/views/src/Tests/Handler/FieldDateTest.php
+++ b/core/modules/views/src/Tests/Handler/FieldDateTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the core Drupal\views\Plugin\views\field\Date handler.
+ *
+ * @group views
  */
 class FieldDateTest extends ViewUnitTestBase {
 
@@ -22,14 +24,6 @@ class FieldDateTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Date',
-      'description' => 'Test the core Drupal\views\Plugin\views\field\Date handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   function viewsData() {
     $data = parent::viewsData();
     $data['views_test_data']['created']['field']['id'] = 'date';
diff --git a/core/modules/views/src/Tests/Handler/FieldDropButtonTest.php b/core/modules/views/src/Tests/Handler/FieldDropButtonTest.php
index 9d6654a..8cbb081 100644
--- a/core/modules/views/src/Tests/Handler/FieldDropButtonTest.php
+++ b/core/modules/views/src/Tests/Handler/FieldDropButtonTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the dropbutton field handler.
  *
+ * @group views
  * @see \Drupal\system\Plugin\views\field\Dropbutton
  */
 class FieldDropButtonTest extends HandlerTestBase {
@@ -30,14 +31,6 @@ class FieldDropButtonTest extends HandlerTestBase {
    */
   public static $modules = array('node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Dropbutton',
-      'description' => 'Tests the dropbutton field handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * Tests dropbutton field.
    */
diff --git a/core/modules/views/src/Tests/Handler/FieldFileSizeTest.php b/core/modules/views/src/Tests/Handler/FieldFileSizeTest.php
index e1e317d..78e77a0 100644
--- a/core/modules/views/src/Tests/Handler/FieldFileSizeTest.php
+++ b/core/modules/views/src/Tests/Handler/FieldFileSizeTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the core Drupal\views\Plugin\views\field\FileSize handler.
  *
+ * @group views
  * @see CommonXssUnitTest
  */
 class FieldFileSizeTest extends ViewUnitTestBase {
@@ -24,14 +25,6 @@ class FieldFileSizeTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: File size',
-      'description' => 'Test the core Drupal\views\Plugin\views\field\FileSize handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   function dataSet() {
     $data = parent::dataSet();
     $data[0]['age'] = 0;
diff --git a/core/modules/views/src/Tests/Handler/FieldUnitTest.php b/core/modules/views/src/Tests/Handler/FieldUnitTest.php
index e7f780c..85d9089 100644
--- a/core/modules/views/src/Tests/Handler/FieldUnitTest.php
+++ b/core/modules/views/src/Tests/Handler/FieldUnitTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the generic field handler.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\field\FieldPluginBase
  */
 class FieldUnitTest extends ViewUnitTestBase {
@@ -31,14 +32,6 @@ class FieldUnitTest extends ViewUnitTestBase {
     'views_test_data_name' => 'name',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Unit Test',
-      'description' => 'Tests the generic field handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * Overrides Drupal\views\Tests\ViewTestBase::viewsData().
    */
diff --git a/core/modules/views/src/Tests/Handler/FieldUrlTest.php b/core/modules/views/src/Tests/Handler/FieldUrlTest.php
index 5e89599..2a5d8cd 100644
--- a/core/modules/views/src/Tests/Handler/FieldUrlTest.php
+++ b/core/modules/views/src/Tests/Handler/FieldUrlTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the core Drupal\views\Plugin\views\field\Url handler.
+ *
+ * @group views
  */
 class FieldUrlTest extends ViewUnitTestBase {
 
@@ -24,14 +26,6 @@ class FieldUrlTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: URL',
-      'description' => 'Test the core Drupal\views\Plugin\views\field\Url handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
     $this->installSchema('system', 'url_alias');
diff --git a/core/modules/views/src/Tests/Handler/FieldWebTest.php b/core/modules/views/src/Tests/Handler/FieldWebTest.php
index d4b1781..7b3d4bb 100644
--- a/core/modules/views/src/Tests/Handler/FieldWebTest.php
+++ b/core/modules/views/src/Tests/Handler/FieldWebTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests fields from within a UI.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\field\FieldPluginBase
  */
 class FieldWebTest extends HandlerTestBase {
@@ -28,14 +29,6 @@ class FieldWebTest extends HandlerTestBase {
     'views_test_data_name' => 'name',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Web Test',
-      'description' => 'Tests fields from within a UI.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Handler/FieldXssTest.php b/core/modules/views/src/Tests/Handler/FieldXssTest.php
index 5eb8911..7730516 100644
--- a/core/modules/views/src/Tests/Handler/FieldXssTest.php
+++ b/core/modules/views/src/Tests/Handler/FieldXssTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the core Drupal\views\Plugin\views\field\Xss handler.
  *
+ * @group views
  * @see CommonXssUnitTest
  */
 class FieldXssTest extends ViewUnitTestBase {
@@ -24,14 +25,6 @@ class FieldXssTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: XSS',
-      'description' => 'Test the core Drupal\views\Plugin\views\field\Xss handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   function dataHelper() {
     $map = array(
       'John' => 'John',
diff --git a/core/modules/views/src/Tests/Handler/FilterBooleanOperatorStringTest.php b/core/modules/views/src/Tests/Handler/FilterBooleanOperatorStringTest.php
index 079e003..1d6f4c8 100644
--- a/core/modules/views/src/Tests/Handler/FilterBooleanOperatorStringTest.php
+++ b/core/modules/views/src/Tests/Handler/FilterBooleanOperatorStringTest.php
@@ -11,8 +11,10 @@
 use Drupal\views\Views;
 
 /**
- * Tests the BooleanOperator filter handler.
+ * Tests the core Drupal\views\Plugin\views\filter\BooleanOperatorString
+ * handler.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\filter\BooleanOperatorString
  */
 class FilterBooleanOperatorStringTest extends ViewUnitTestBase {
@@ -35,14 +37,6 @@ class FilterBooleanOperatorStringTest extends ViewUnitTestBase {
     'views_test_data_id' => 'id',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: Boolean string operator',
-      'description' => 'Test the core Drupal\views\Plugin\views\filter\BooleanOperatorString handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views/src/Tests/Handler/FilterBooleanOperatorTest.php b/core/modules/views/src/Tests/Handler/FilterBooleanOperatorTest.php
index b512a07..f999886 100644
--- a/core/modules/views/src/Tests/Handler/FilterBooleanOperatorTest.php
+++ b/core/modules/views/src/Tests/Handler/FilterBooleanOperatorTest.php
@@ -11,8 +11,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the BooleanOperator filter handler.
+ * Tests the core Drupal\views\Plugin\views\filter\BooleanOperator handler.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\filter\BooleanOperator
  */
 class FilterBooleanOperatorTest extends ViewUnitTestBase {
@@ -35,14 +36,6 @@ class FilterBooleanOperatorTest extends ViewUnitTestBase {
     'views_test_data_id' => 'id',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: Boolean operator',
-      'description' => 'Test the core Drupal\views\Plugin\views\filter\BooleanOperator handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Handler/FilterCombineTest.php b/core/modules/views/src/Tests/Handler/FilterCombineTest.php
index f18b912..53320f7 100644
--- a/core/modules/views/src/Tests/Handler/FilterCombineTest.php
+++ b/core/modules/views/src/Tests/Handler/FilterCombineTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the combine filter handler.
+ *
+ * @group views
  */
 class FilterCombineTest extends ViewUnitTestBase {
 
@@ -27,14 +29,6 @@ class FilterCombineTest extends ViewUnitTestBase {
     'views_test_data_job' => 'job',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: Combine',
-      'description' => 'Tests the combine filter handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   public function testFilterCombineContains() {
     $view = Views::getView('test_view');
     $view->setDisplay();
diff --git a/core/modules/views/src/Tests/Handler/FilterDateTest.php b/core/modules/views/src/Tests/Handler/FilterDateTest.php
index 5665e96..9173ae3 100644
--- a/core/modules/views/src/Tests/Handler/FilterDateTest.php
+++ b/core/modules/views/src/Tests/Handler/FilterDateTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the core Drupal\views\Plugin\views\filter\Date handler.
+ *
+ * @group views
  */
 class FilterDateTest extends HandlerTestBase {
 
@@ -28,14 +30,6 @@ class FilterDateTest extends HandlerTestBase {
    */
   public static $modules = array('node', 'views_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: Date',
-      'description' => 'Test the core Drupal\views\Plugin\views\filter\Date handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     // Add some basic test nodes.
diff --git a/core/modules/views/src/Tests/Handler/FilterEqualityTest.php b/core/modules/views/src/Tests/Handler/FilterEqualityTest.php
index bbc0758..fb9300d 100644
--- a/core/modules/views/src/Tests/Handler/FilterEqualityTest.php
+++ b/core/modules/views/src/Tests/Handler/FilterEqualityTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the core Drupal\views\Plugin\views\filter\Equality handler.
+ *
+ * @group views
  */
 class FilterEqualityTest extends ViewUnitTestBase {
 
@@ -28,14 +30,6 @@ class FilterEqualityTest extends ViewUnitTestBase {
     'views_test_data_name' => 'name',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: Equality',
-      'description' => 'Test the core Drupal\views\Plugin\views\filter\Equality handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Handler/FilterInOperatorTest.php b/core/modules/views/src/Tests/Handler/FilterInOperatorTest.php
index 4328154..39ea116 100644
--- a/core/modules/views/src/Tests/Handler/FilterInOperatorTest.php
+++ b/core/modules/views/src/Tests/Handler/FilterInOperatorTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the core Drupal\views\Plugin\views\filter\InOperator handler.
+ *
+ * @group views
  */
 class FilterInOperatorTest extends ViewUnitTestBase {
 
@@ -29,14 +31,6 @@ class FilterInOperatorTest extends ViewUnitTestBase {
     'views_test_data_age' => 'age',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: In-operator',
-      'description' => 'Test the core Drupal\views\Plugin\views\filter\InOperator handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Handler/FilterNumericTest.php b/core/modules/views/src/Tests/Handler/FilterNumericTest.php
index 8b70f44..9277da5 100644
--- a/core/modules/views/src/Tests/Handler/FilterNumericTest.php
+++ b/core/modules/views/src/Tests/Handler/FilterNumericTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the numeric filter handler.
+ *
+ * @group views
  */
 class FilterNumericTest extends ViewUnitTestBase {
 
@@ -29,14 +31,6 @@ class FilterNumericTest extends ViewUnitTestBase {
     'views_test_data_age' => 'age',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: Numeric',
-      'description' => 'Tests the numeric filter handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Handler/FilterStringTest.php b/core/modules/views/src/Tests/Handler/FilterStringTest.php
index a0c0dc0..bcf84a7 100644
--- a/core/modules/views/src/Tests/Handler/FilterStringTest.php
+++ b/core/modules/views/src/Tests/Handler/FilterStringTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the core Drupal\views\Plugin\views\filter\String handler.
+ *
+ * @group views
  */
 class FilterStringTest extends ViewUnitTestBase {
 
@@ -28,14 +30,6 @@ class FilterStringTest extends ViewUnitTestBase {
     'views_test_data_name' => 'name',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: String',
-      'description' => 'Tests the core Drupal\views\Plugin\views\filter\String handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Handler/HandlerAliasTest.php b/core/modules/views/src/Tests/Handler/HandlerAliasTest.php
index ac9b920..9f1b329 100644
--- a/core/modules/views/src/Tests/Handler/HandlerAliasTest.php
+++ b/core/modules/views/src/Tests/Handler/HandlerAliasTest.php
@@ -11,7 +11,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests abstract handlers of views.
+ * Tests handler table and field aliases.
+ *
+ * @group views
  */
 class HandlerAliasTest extends ViewUnitTestBase {
 
@@ -24,14 +26,6 @@ class HandlerAliasTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_filter', 'test_alias');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Handler alias tests',
-      'description' => 'Tests handler table and field aliases.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Handler/HandlerAllTest.php b/core/modules/views/src/Tests/Handler/HandlerAllTest.php
index 08fdb76..ba83c54 100644
--- a/core/modules/views/src/Tests/Handler/HandlerAllTest.php
+++ b/core/modules/views/src/Tests/Handler/HandlerAllTest.php
@@ -12,7 +12,9 @@
 use Drupal\views\Plugin\views\filter\InOperator;
 
 /**
- * Creates views with instances of all handlers...
+ * Tests instances of all handlers.
+ *
+ * @group views
  */
 class HandlerAllTest extends HandlerTestBase {
 
@@ -41,14 +43,6 @@ class HandlerAllTest extends HandlerTestBase {
     'user',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Handlers: All',
-      'description' => 'Test instances of all handlers.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * Tests most of the handlers.
    */
diff --git a/core/modules/views/src/Tests/Handler/HandlerTest.php b/core/modules/views/src/Tests/Handler/HandlerTest.php
index 14a5286..b9a1f45 100644
--- a/core/modules/views/src/Tests/Handler/HandlerTest.php
+++ b/core/modules/views/src/Tests/Handler/HandlerTest.php
@@ -13,7 +13,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests abstract handlers of views.
+ * Tests abstract handler definitions.
+ *
+ * @group views
  */
 class HandlerTest extends ViewTestBase {
 
@@ -31,14 +33,6 @@ class HandlerTest extends ViewTestBase {
    */
   public static $modules = array('views_ui', 'comment', 'node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Handler: Base',
-      'description' => 'Tests abstract handler definitions.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->drupalCreateContentType(array('type' => 'page'));
diff --git a/core/modules/views/src/Tests/Handler/RelationshipTest.php b/core/modules/views/src/Tests/Handler/RelationshipTest.php
index 65621c9..d361a39 100644
--- a/core/modules/views/src/Tests/Handler/RelationshipTest.php
+++ b/core/modules/views/src/Tests/Handler/RelationshipTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the base relationship handler.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\relationship\RelationshipPluginBase
  */
 class RelationshipTest extends RelationshipJoinTestBase {
@@ -35,14 +36,6 @@ class RelationshipTest extends RelationshipJoinTestBase {
     'users_views_test_data_uid' => 'uid',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Relationship: Standard',
-      'description' => 'Tests the base relationship handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * Tests the query result of a view with a relationship.
    */
diff --git a/core/modules/views/src/Tests/Handler/SortDateTest.php b/core/modules/views/src/Tests/Handler/SortDateTest.php
index 1829773..02d8807 100644
--- a/core/modules/views/src/Tests/Handler/SortDateTest.php
+++ b/core/modules/views/src/Tests/Handler/SortDateTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests for core Drupal\views\Plugin\views\sort\Date handler.
+ *
+ * @group views
  */
 class SortDateTest extends ViewUnitTestBase {
 
@@ -23,14 +25,6 @@ class SortDateTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Sort: Date',
-      'description' => 'Test the core Drupal\views\Plugin\views\sort\Date handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   protected function expectedResultSet($granularity, $reverse = TRUE) {
     $expected = array();
     if (!$reverse) {
diff --git a/core/modules/views/src/Tests/Handler/SortRandomTest.php b/core/modules/views/src/Tests/Handler/SortRandomTest.php
index 2de7b49..843019b 100644
--- a/core/modules/views/src/Tests/Handler/SortRandomTest.php
+++ b/core/modules/views/src/Tests/Handler/SortRandomTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests for core Drupal\views\Plugin\views\sort\Random handler.
+ *
+ * @group views
  */
 class SortRandomTest extends ViewUnitTestBase {
 
@@ -22,14 +24,6 @@ class SortRandomTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Sort: Random',
-      'description' => 'Test the core Drupal\views\Plugin\views\sort\Random handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * Add more items to the test set, to make the order tests more robust.
    */
diff --git a/core/modules/views/src/Tests/Handler/SortTest.php b/core/modules/views/src/Tests/Handler/SortTest.php
index 8f33acc..fc3be55 100644
--- a/core/modules/views/src/Tests/Handler/SortTest.php
+++ b/core/modules/views/src/Tests/Handler/SortTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests for core Drupal\views\Plugin\views\sort\SortPluginBase handler.
+ *
+ * @group views
  */
 class SortTest extends ViewUnitTestBase {
 
@@ -22,14 +24,6 @@ class SortTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Sort: Generic',
-      'description' => 'Test the core Drupal\views\Plugin\views\sort\SortPluginBase handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * Tests numeric ordering of the result set.
    */
diff --git a/core/modules/views/src/Tests/ModuleTest.php b/core/modules/views/src/Tests/ModuleTest.php
index 94014f4..dd976e7 100644
--- a/core/modules/views/src/Tests/ModuleTest.php
+++ b/core/modules/views/src/Tests/ModuleTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests basic functions from the Views module.
+ *
+ * @group views
  */
 use Drupal\views\Plugin\views\filter\Standard;
 use Drupal\views\Views;
@@ -39,14 +41,6 @@ class ModuleTest extends ViewUnitTestBase {
    */
   protected $lastErrorMessage;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Views Module tests',
-      'description' => 'Tests some basic functions of views.module.',
-      'group' => 'Views',
-    );
-  }
-
   /**
    * Tests the views_get_handler method.
    *
diff --git a/core/modules/views/src/Tests/Plugin/AccessTest.php b/core/modules/views/src/Tests/Plugin/AccessTest.php
index eaff047..9f5f59e 100644
--- a/core/modules/views/src/Tests/Plugin/AccessTest.php
+++ b/core/modules/views/src/Tests/Plugin/AccessTest.php
@@ -11,8 +11,9 @@
 use Drupal\views\Views;
 
 /**
- * Basic test for pluggable access.
+ * Tests pluggable access for views.
  *
+ * @group views
  * @todo It probably make sense to split the test up by one for role/perm/none
  *   and the two generic ones.
  */
@@ -32,14 +33,6 @@ class AccessTest extends PluginTestBase {
    */
   public static $modules = array('node');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Access',
-      'description' => 'Tests pluggable access for views.',
-      'group' => 'Views Plugins'
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/ArgumentDefaultTest.php b/core/modules/views/src/Tests/Plugin/ArgumentDefaultTest.php
index 6f50fa3..067325c 100644
--- a/core/modules/views/src/Tests/Plugin/ArgumentDefaultTest.php
+++ b/core/modules/views/src/Tests/Plugin/ArgumentDefaultTest.php
@@ -12,7 +12,9 @@
 
 
 /**
- * Basic test for pluggable argument default.
+ * Tests pluggable argument_default for views.
+ *
+ * @group views
  */
 class ArgumentDefaultTest extends PluginTestBase {
 
@@ -30,14 +32,6 @@ class ArgumentDefaultTest extends PluginTestBase {
    */
   public static $modules = array('node', 'views_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Argument default',
-      'description' => 'Tests pluggable argument_default for views.',
-      'group' => 'Views Plugins'
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/ArgumentValidatorTest.php b/core/modules/views/src/Tests/Plugin/ArgumentValidatorTest.php
index 2035cce..6a29a4e 100644
--- a/core/modules/views/src/Tests/Plugin/ArgumentValidatorTest.php
+++ b/core/modules/views/src/Tests/Plugin/ArgumentValidatorTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests Views argument validators.
+ *
+ * @group views
  */
 class ArgumentValidatorTest extends ViewUnitTestBase {
 
@@ -22,14 +24,6 @@ class ArgumentValidatorTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view_argument_validate_numeric');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Argument validator',
-      'group' => 'Views Plugins',
-      'description' => 'Test argument validator tests.',
-    );
-  }
-
   function testArgumentValidateNumeric() {
     $view = Views::getView('test_view_argument_validate_numeric');
     $view->initHandlers();
diff --git a/core/modules/views/src/Tests/Plugin/BlockDependenciesTest.php b/core/modules/views/src/Tests/Plugin/BlockDependenciesTest.php
index 0475e23..ed394d0 100644
--- a/core/modules/views/src/Tests/Plugin/BlockDependenciesTest.php
+++ b/core/modules/views/src/Tests/Plugin/BlockDependenciesTest.php
@@ -10,7 +10,9 @@
 use Drupal\views\Tests\ViewUnitTestBase;
 
 /**
- * Tests exposed views derived blocks have the correct config dependencies.
+ * Tests views block config dependencies functionality.
+ *
+ * @group views
  */
 class BlockDependenciesTest extends ViewUnitTestBase {
 
@@ -29,17 +31,6 @@ class BlockDependenciesTest extends ViewUnitTestBase {
   public static $modules = array('node', 'block', 'user');
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Views block config dependencies',
-      'description' => 'Test views block config dependencies functionality.',
-      'group' => 'Views Plugins',
-    );
-  }
-
-  /**
    * Tests that exposed filter blocks have the correct dependencies.
    *
    * @see \Drupal\views\Plugin\Derivative\ViewsExposedFilterBlock::getDerivativeDefinitions()
diff --git a/core/modules/views/src/Tests/Plugin/CacheTagTest.php b/core/modules/views/src/Tests/Plugin/CacheTagTest.php
index 960690b..34b2434 100644
--- a/core/modules/views/src/Tests/Plugin/CacheTagTest.php
+++ b/core/modules/views/src/Tests/Plugin/CacheTagTest.php
@@ -10,8 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the Tag class.
+ * Tests tag cache plugin.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\cache\Tag
  */
 class CacheTagTest extends PluginTestBase {
@@ -72,14 +73,6 @@ class CacheTagTest extends PluginTestBase {
    */
   protected $user;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Cache tag',
-      'description' => 'Tests tag cache plugin.',
-      'group' => 'Views Plugins'
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/CacheTest.php b/core/modules/views/src/Tests/Plugin/CacheTest.php
index ce67988..74a0f95 100644
--- a/core/modules/views/src/Tests/Plugin/CacheTest.php
+++ b/core/modules/views/src/Tests/Plugin/CacheTest.php
@@ -11,8 +11,9 @@
 use Drupal\views\ViewExecutable;
 
 /**
- * Basic test for pluggable caching.
+ * Tests pluggable caching for views.
  *
+ * @group views
  * @see views_plugin_cache
  */
 class CacheTest extends PluginTestBase {
@@ -24,14 +25,6 @@ class CacheTest extends PluginTestBase {
    */
   public static $testViews = array('test_view', 'test_cache');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Cache',
-      'description' => 'Tests pluggable caching for views.',
-      'group' => 'Views Plugins'
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/DisplayAttachmentTest.php b/core/modules/views/src/Tests/Plugin/DisplayAttachmentTest.php
index 7e55039..e1cd4ec 100644
--- a/core/modules/views/src/Tests/Plugin/DisplayAttachmentTest.php
+++ b/core/modules/views/src/Tests/Plugin/DisplayAttachmentTest.php
@@ -10,6 +10,7 @@
 /**
  * Tests the attachment display plugin.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\display\Attachment
  */
 class DisplayAttachmentTest extends PluginTestBase {
@@ -21,14 +22,6 @@ class DisplayAttachmentTest extends PluginTestBase {
    */
   public static $testViews = array('test_display_attachment');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display: Attachment plugin',
-      'description' => 'Tests the attachment display plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/DisplayExtenderTest.php b/core/modules/views/src/Tests/Plugin/DisplayExtenderTest.php
index e646b0a..d84d355 100644
--- a/core/modules/views/src/Tests/Plugin/DisplayExtenderTest.php
+++ b/core/modules/views/src/Tests/Plugin/DisplayExtenderTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the display extender plugins.
  *
+ * @group views
  * @see \Drupal\views_test_data\Plugin\views\display_extender\DisplayExtenderTest
  */
 class DisplayExtenderTest extends PluginTestBase {
@@ -24,14 +25,6 @@ class DisplayExtenderTest extends PluginTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display extender',
-      'description' => 'Tests the display extender plugins.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/DisplayFeedTest.php b/core/modules/views/src/Tests/Plugin/DisplayFeedTest.php
index 7edfd43..e012e41 100644
--- a/core/modules/views/src/Tests/Plugin/DisplayFeedTest.php
+++ b/core/modules/views/src/Tests/Plugin/DisplayFeedTest.php
@@ -10,6 +10,7 @@
 /**
  * Tests the feed display plugin.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\display\Feed
  */
 class DisplayFeedTest extends PluginTestBase {
@@ -28,14 +29,6 @@ class DisplayFeedTest extends PluginTestBase {
    */
   public static $modules = array('block', 'node', 'views');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display: Feed plugin',
-      'description' => 'Tests the feed display plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/DisplayPageTest.php b/core/modules/views/src/Tests/Plugin/DisplayPageTest.php
index a7d4418..712d1ae 100644
--- a/core/modules/views/src/Tests/Plugin/DisplayPageTest.php
+++ b/core/modules/views/src/Tests/Plugin/DisplayPageTest.php
@@ -15,6 +15,7 @@
 /**
  * Tests the page display plugin.
  *
+ * @group views
  * @see \Drupal\views\Plugin\display\Page
  */
 class DisplayPageTest extends ViewUnitTestBase {
@@ -40,14 +41,6 @@ class DisplayPageTest extends ViewUnitTestBase {
    */
   protected $routerDumper;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display: Page plugin',
-      'description' => 'Tests the page display plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views/src/Tests/Plugin/DisplayPageWebTest.php b/core/modules/views/src/Tests/Plugin/DisplayPageWebTest.php
index f204e9e..a8bf8e6 100644
--- a/core/modules/views/src/Tests/Plugin/DisplayPageWebTest.php
+++ b/core/modules/views/src/Tests/Plugin/DisplayPageWebTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests the views page display plugin as webtest.
+ *
+ * @group views
  */
 class DisplayPageWebTest extends PluginTestBase {
 
@@ -19,14 +21,6 @@ class DisplayPageWebTest extends PluginTestBase {
    */
   public static $testViews = array('test_page_display_arguments', 'test_page_display_menu');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display: Page plugin (web)',
-      'description' => 'Tests the page display plugin (web).',
-      'group' => 'Views Plugins',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/DisplayTest.php b/core/modules/views/src/Tests/Plugin/DisplayTest.php
index 413ee29..9b5d874 100644
--- a/core/modules/views/src/Tests/Plugin/DisplayTest.php
+++ b/core/modules/views/src/Tests/Plugin/DisplayTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the basic display plugin.
+ *
+ * @group views
  */
 class DisplayTest extends PluginTestBase {
 
@@ -29,14 +31,6 @@ class DisplayTest extends PluginTestBase {
    */
   public static $modules = array('views_ui', 'node', 'block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display',
-      'description' => 'Tests the basic display plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/DisplayUnitTest.php b/core/modules/views/src/Tests/Plugin/DisplayUnitTest.php
index 0a36d53..918f3bd 100644
--- a/core/modules/views/src/Tests/Plugin/DisplayUnitTest.php
+++ b/core/modules/views/src/Tests/Plugin/DisplayUnitTest.php
@@ -18,6 +18,8 @@
 
 /**
  * Drupal unit tests for the DisplayPluginBase class.
+ *
+ * @group views
  */
 class DisplayUnitTest extends ViewUnitTestBase {
 
@@ -60,14 +62,6 @@ class DisplayUnitTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_display_defaults');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display unit tests',
-      'description' => 'Unit tests for the DisplayPluginBase class.',
-      'group' => 'Views Plugins'
-    );
-  }
-
   /**
    * Tests the default display options.
    */
diff --git a/core/modules/views/src/Tests/Plugin/ExposedFormTest.php b/core/modules/views/src/Tests/Plugin/ExposedFormTest.php
index 61c1568..f05abf3 100644
--- a/core/modules/views/src/Tests/Plugin/ExposedFormTest.php
+++ b/core/modules/views/src/Tests/Plugin/ExposedFormTest.php
@@ -12,7 +12,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests exposed forms.
+ * Tests exposed forms functionality.
+ *
+ * @group views
  */
 class ExposedFormTest extends ViewTestBase {
 
@@ -30,14 +32,6 @@ class ExposedFormTest extends ViewTestBase {
    */
   public static $modules = array('node', 'views_ui', 'block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Exposed forms',
-      'description' => 'Test exposed forms functionality.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/FilterTest.php b/core/modules/views/src/Tests/Plugin/FilterTest.php
index 77ad92e..63d90ab 100644
--- a/core/modules/views/src/Tests/Plugin/FilterTest.php
+++ b/core/modules/views/src/Tests/Plugin/FilterTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests general filter plugin functionality.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\filter\FilterPluginBase
  */
 class FilterTest extends PluginTestBase {
@@ -31,14 +32,6 @@ class FilterTest extends PluginTestBase {
    */
   public static $modules = array('views_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: General',
-      'description' => 'Tests general filter plugin functionality.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/JoinTest.php b/core/modules/views/src/Tests/Plugin/JoinTest.php
index dfb470e..03d1439 100644
--- a/core/modules/views/src/Tests/Plugin/JoinTest.php
+++ b/core/modules/views/src/Tests/Plugin/JoinTest.php
@@ -13,8 +13,9 @@
 
 
 /**
- * Tests a generic join plugin and the join plugin base.
+ * Tests the join plugin.
  *
+ * @group views
  * @see \Drupal\views_test_data\Plugin\views\join\JoinTest
  * @see \Drupal\views\Plugin\views\join\JoinPluginBase
  */
@@ -34,14 +35,6 @@ class JoinTest extends RelationshipJoinTestBase {
    */
   protected $manager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Join',
-      'description' => 'Tests the join plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/MiniPagerTest.php b/core/modules/views/src/Tests/Plugin/MiniPagerTest.php
index e5f684a..f8263a0 100644
--- a/core/modules/views/src/Tests/Plugin/MiniPagerTest.php
+++ b/core/modules/views/src/Tests/Plugin/MiniPagerTest.php
@@ -10,8 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the mini pager plugin
+ * Tests the mini pager plugin.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\pager\Mini
  */
 class MiniPagerTest extends PluginTestBase {
@@ -37,14 +38,6 @@ class MiniPagerTest extends PluginTestBase {
    */
   protected $nodes;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Pager: Mini',
-      'description' => 'Test the mini pager plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/PagerTest.php b/core/modules/views/src/Tests/Plugin/PagerTest.php
index 9ba46d8..7a14e54 100644
--- a/core/modules/views/src/Tests/Plugin/PagerTest.php
+++ b/core/modules/views/src/Tests/Plugin/PagerTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the pluggable pager system.
+ *
+ * @group views
  */
 class PagerTest extends PluginTestBase {
 
@@ -28,14 +30,6 @@ class PagerTest extends PluginTestBase {
    */
   public static $modules = array('node', 'views_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Pager',
-      'description' => 'Test the pluggable pager system.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   /**
    * Pagers was sometimes not stored.
    *
diff --git a/core/modules/views/src/Tests/Plugin/QueryTest.php b/core/modules/views/src/Tests/Plugin/QueryTest.php
index ac3513b..7557faa 100644
--- a/core/modules/views/src/Tests/Plugin/QueryTest.php
+++ b/core/modules/views/src/Tests/Plugin/QueryTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests query plugins.
+ *
+ * @group views
  */
 class QueryTest extends ViewUnitTestBase {
 
@@ -23,14 +25,6 @@ class QueryTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Query',
-      'description' => 'Tests query plugins.',
-      'group' => 'Views Plugins'
-    );
-  }
-
   protected function viewsData() {
     $data = parent::viewsData();
     $data['views_test_data']['table']['base']['query_id'] = 'query_test';
diff --git a/core/modules/views/src/Tests/Plugin/RowEntityTest.php b/core/modules/views/src/Tests/Plugin/RowEntityTest.php
index e5cb58f..d73a8ce 100644
--- a/core/modules/views/src/Tests/Plugin/RowEntityTest.php
+++ b/core/modules/views/src/Tests/Plugin/RowEntityTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the generic entity row plugin.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\row\EntityRow
  */
 class RowEntityTest extends ViewUnitTestBase {
@@ -39,14 +40,6 @@ class RowEntityTest extends ViewUnitTestBase {
    */
   protected $content;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Row: Entity',
-      'description' => 'Tests the generic entity row plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views/src/Tests/Plugin/SqlQueryTest.php b/core/modules/views/src/Tests/Plugin/SqlQueryTest.php
index 3284733..08e0f3c 100644
--- a/core/modules/views/src/Tests/Plugin/SqlQueryTest.php
+++ b/core/modules/views/src/Tests/Plugin/SqlQueryTest.php
@@ -13,6 +13,7 @@
 /**
  * Tests the sql query plugin.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\query\Sql
  */
 class SqlQueryTest extends ViewUnitTestBase {
@@ -27,17 +28,6 @@ class SqlQueryTest extends ViewUnitTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Sql query',
-      'description' => 'Tests the sql query plugin',
-      'group' => 'Views Plugins'
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function viewsData() {
     $data = parent::viewsData();
     $data['views_test_data']['table']['base']['access query tag'] = 'test_tag';
diff --git a/core/modules/views/src/Tests/Plugin/StyleGridTest.php b/core/modules/views/src/Tests/Plugin/StyleGridTest.php
index e9132b1..21a6bb6 100644
--- a/core/modules/views/src/Tests/Plugin/StyleGridTest.php
+++ b/core/modules/views/src/Tests/Plugin/StyleGridTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the grid style plugin.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\style\Grid
  */
 class StyleGridTest extends PluginTestBase {
@@ -33,17 +34,6 @@ class StyleGridTest extends PluginTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Style: Grid',
-      'description' => 'Tests the grid style plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $this->enableViewsTestModule();
diff --git a/core/modules/views/src/Tests/Plugin/StyleMappingTest.php b/core/modules/views/src/Tests/Plugin/StyleMappingTest.php
index eb3fdea..24b06d2 100644
--- a/core/modules/views/src/Tests/Plugin/StyleMappingTest.php
+++ b/core/modules/views/src/Tests/Plugin/StyleMappingTest.php
@@ -10,7 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the default/mapping row style.
+ * Tests mapping style functionality.
+ *
+ * @group views
  */
 class StyleMappingTest extends StyleTestBase {
 
@@ -23,14 +25,6 @@ class StyleMappingTest extends StyleTestBase {
    */
   public static $testViews = array('test_style_mapping');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Style: Mapping',
-      'description' => 'Test mapping style functionality.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   /**
    * Verifies that the fields were mapped correctly.
    */
diff --git a/core/modules/views/src/Tests/Plugin/StyleOpmlTest.php b/core/modules/views/src/Tests/Plugin/StyleOpmlTest.php
index 2127330..d4c8c1a 100644
--- a/core/modules/views/src/Tests/Plugin/StyleOpmlTest.php
+++ b/core/modules/views/src/Tests/Plugin/StyleOpmlTest.php
@@ -10,6 +10,7 @@
 /**
  * Tests the OPML feed style plugin.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\style\Opml
  */
 class StyleOpmlTest extends PluginTestBase {
@@ -31,17 +32,6 @@ class StyleOpmlTest extends PluginTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Style: OPML',
-      'description' => 'Tests the OPML feed style plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/StyleTableTest.php b/core/modules/views/src/Tests/Plugin/StyleTableTest.php
index 62a784b..de7e198 100644
--- a/core/modules/views/src/Tests/Plugin/StyleTableTest.php
+++ b/core/modules/views/src/Tests/Plugin/StyleTableTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests the table style views plugin.
+ *
+ * @group views
  */
 class StyleTableTest extends PluginTestBase {
 
@@ -19,14 +21,6 @@ class StyleTableTest extends PluginTestBase {
    */
   public static $testViews = array('test_table');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Style: Table',
-      'description' => 'Tests the table style plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views/src/Tests/Plugin/StyleTableUnitTest.php b/core/modules/views/src/Tests/Plugin/StyleTableUnitTest.php
index 65a2d90..701aa80 100644
--- a/core/modules/views/src/Tests/Plugin/StyleTableUnitTest.php
+++ b/core/modules/views/src/Tests/Plugin/StyleTableUnitTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the table style plugin.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\style\Table
  */
 class StyleTableUnitTest extends PluginUnitTestBase {
@@ -25,14 +26,6 @@ class StyleTableUnitTest extends PluginUnitTestBase {
    */
   public static $testViews = array('test_table');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Style: Table (Unit Test)',
-      'description' => 'Tests the table style plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   /**
    * Tests the table style.
    */
diff --git a/core/modules/views/src/Tests/Plugin/StyleTest.php b/core/modules/views/src/Tests/Plugin/StyleTest.php
index b20afb6..223c23e 100644
--- a/core/modules/views/src/Tests/Plugin/StyleTest.php
+++ b/core/modules/views/src/Tests/Plugin/StyleTest.php
@@ -15,8 +15,9 @@
 use Drupal\views_test_data\Plugin\views\style\StyleTest as StyleTestPlugin;
 
 /**
- * Tests some general style plugin related functionality.
+ * Tests general style functionality.
  *
+ * @group views
  * @see \Drupal\views_test_data\Plugin\views\style\StyleTest.
  */
 class StyleTest extends ViewTestBase {
@@ -35,14 +36,6 @@ class StyleTest extends ViewTestBase {
    */
   protected $elements;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Style: General',
-      'description' => 'Test general style functionality.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Plugin/StyleUnformattedTest.php b/core/modules/views/src/Tests/Plugin/StyleUnformattedTest.php
index 0c367d2..0835d98 100644
--- a/core/modules/views/src/Tests/Plugin/StyleUnformattedTest.php
+++ b/core/modules/views/src/Tests/Plugin/StyleUnformattedTest.php
@@ -10,7 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the default/unformatted row style.
+ * Tests unformatted style functionality.
+ *
+ * @group views
  */
 class StyleUnformattedTest extends StyleTestBase {
 
@@ -21,14 +23,6 @@ class StyleUnformattedTest extends StyleTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Style: Unformatted',
-      'description' => 'Test unformatted style functionality.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   /**
    * Make sure that the default css classes works as expected.
    */
diff --git a/core/modules/views/src/Tests/Plugin/ViewsBlockTest.php b/core/modules/views/src/Tests/Plugin/ViewsBlockTest.php
index 23083ce..7aa9381 100644
--- a/core/modules/views/src/Tests/Plugin/ViewsBlockTest.php
+++ b/core/modules/views/src/Tests/Plugin/ViewsBlockTest.php
@@ -13,7 +13,9 @@
 use Drupal\views\Tests\ViewUnitTestBase;
 
 /**
- * Tests the block views plugin.
+ * Tests native behaviors of the block views plugin.
+ *
+ * @group views
  */
 class ViewsBlockTest extends ViewUnitTestBase {
 
@@ -31,14 +33,6 @@ class ViewsBlockTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view_block');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Views block',
-      'description' => 'Tests native behaviors of the block views plugin.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views/src/Tests/PluginInstanceTest.php b/core/modules/views/src/Tests/PluginInstanceTest.php
index e70bd1d..1893432 100644
--- a/core/modules/views/src/Tests/PluginInstanceTest.php
+++ b/core/modules/views/src/Tests/PluginInstanceTest.php
@@ -10,7 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Checks general plugin data and instances for all plugin types.
+ * Tests that an instance of all views plugins can be created.
+ *
+ * @group views
  */
 class PluginInstanceTest extends ViewUnitTestBase {
 
@@ -48,14 +50,6 @@ class PluginInstanceTest extends ViewUnitTestBase {
    */
   protected $definitions;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Plugin instantiation',
-      'description' => 'Tests that an instance of all views plugins can be created.',
-      'group' => 'Views',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/QueryGroupByTest.php b/core/modules/views/src/Tests/QueryGroupByTest.php
index ff0c225..05de2b7 100644
--- a/core/modules/views/src/Tests/QueryGroupByTest.php
+++ b/core/modules/views/src/Tests/QueryGroupByTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests aggregate functionality of views, for example count.
+ *
+ * @group views
  */
 class QueryGroupByTest extends ViewUnitTestBase {
 
@@ -35,14 +37,6 @@ class QueryGroupByTest extends ViewUnitTestBase {
    */
   public $storage;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Groupby',
-      'description' => 'Tests aggregate functionality of views, for example count.',
-      'group' => 'Views',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views/src/Tests/SearchIntegrationTest.php b/core/modules/views/src/Tests/SearchIntegrationTest.php
index 46d5b03..6a8ccba 100644
--- a/core/modules/views/src/Tests/SearchIntegrationTest.php
+++ b/core/modules/views/src/Tests/SearchIntegrationTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests search integration filters.
+ *
+ * @group views
  */
 class SearchIntegrationTest extends ViewTestBase {
 
@@ -27,17 +29,6 @@ class SearchIntegrationTest extends ViewTestBase {
   public static $testViews = array('test_search');
 
   /**
-   * {inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Search integration tests',
-      'description' => 'Tests search integration filters of views.',
-      'group' => 'Views',
-    );
-  }
-
-  /**
    * Tests search integration.
    */
   public function testSearchIntegration() {
diff --git a/core/modules/views/src/Tests/SearchMultilingualTest.php b/core/modules/views/src/Tests/SearchMultilingualTest.php
index ca3ae5b..e66ce54 100644
--- a/core/modules/views/src/Tests/SearchMultilingualTest.php
+++ b/core/modules/views/src/Tests/SearchMultilingualTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests search integration filters with multilingual nodes.
+ *
+ * @group views
  */
 class SearchMultilingualTest extends ViewTestBase {
 
@@ -29,17 +31,6 @@ class SearchMultilingualTest extends ViewTestBase {
   public static $testViews = array('test_search');
 
   /**
-   * {inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Search multilingual tests',
-      'description' => 'Tests search filters of views with multilingual nodes.',
-      'group' => 'Views',
-    );
-  }
-
-  /**
    * Tests search with multilingual nodes.
    */
   public function testMultilingualSearchFilter() {
diff --git a/core/modules/views/src/Tests/TokenReplaceTest.php b/core/modules/views/src/Tests/TokenReplaceTest.php
index 4b58fe0..d6bf1a9 100644
--- a/core/modules/views/src/Tests/TokenReplaceTest.php
+++ b/core/modules/views/src/Tests/TokenReplaceTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests core view token replacement.
+ *
+ * @group views
  */
 class TokenReplaceTest extends ViewUnitTestBase {
 
@@ -23,14 +25,6 @@ class TokenReplaceTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_tokens');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View core token replacement',
-      'description' => 'Checks view core token replacements.',
-      'group' => 'Views',
-    );
-  }
-
   function setUp() {
     parent::setUp();
     $this->installSchema('system', 'url_alias');
diff --git a/core/modules/views/src/Tests/ViewAjaxTest.php b/core/modules/views/src/Tests/ViewAjaxTest.php
index 2217fac..beb1556 100644
--- a/core/modules/views/src/Tests/ViewAjaxTest.php
+++ b/core/modules/views/src/Tests/ViewAjaxTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the ajax view functionality.
+ *
+ * @group views
  */
 class ViewAjaxTest extends ViewTestBase {
 
@@ -21,14 +23,6 @@ class ViewAjaxTest extends ViewTestBase {
    */
   public static $testViews = array('test_ajax_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View: Ajax',
-      'description' => 'Tests the ajax view functionality.',
-      'group' => 'Views'
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/ViewElementTest.php b/core/modules/views/src/Tests/ViewElementTest.php
index c7ca56d..c252af8 100644
--- a/core/modules/views/src/Tests/ViewElementTest.php
+++ b/core/modules/views/src/Tests/ViewElementTest.php
@@ -10,7 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the 'view' element type.
+ * Tests the view render element.
+ *
+ * @group views
  */
 class ViewElementTest extends ViewTestBase {
 
@@ -28,14 +30,6 @@ class ViewElementTest extends ViewTestBase {
    */
   protected $render;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View element',
-      'description' => 'Tests the view render element.',
-      'group' => 'Views'
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/ViewExecutableTest.php b/core/modules/views/src/Tests/ViewExecutableTest.php
index 183e1af..e84232d 100644
--- a/core/modules/views/src/Tests/ViewExecutableTest.php
+++ b/core/modules/views/src/Tests/ViewExecutableTest.php
@@ -25,6 +25,7 @@
 /**
  * Tests the ViewExecutable class.
  *
+ * @group views
  * @see \Drupal\views\ViewExecutable
  */
 class ViewExecutableTest extends ViewUnitTestBase {
@@ -75,14 +76,6 @@ class ViewExecutableTest extends ViewUnitTestBase {
     'parent_views',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View executable tests',
-      'description' => 'Tests the ViewExecutable class.',
-      'group' => 'Views'
-    );
-  }
-
   protected function setUpFixtures() {
     $this->installEntitySchema('user');
     $this->installEntitySchema('node');
diff --git a/core/modules/views/src/Tests/ViewRenderTest.php b/core/modules/views/src/Tests/ViewRenderTest.php
index db066b2..ac60e6a 100644
--- a/core/modules/views/src/Tests/ViewRenderTest.php
+++ b/core/modules/views/src/Tests/ViewRenderTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests general rendering of a view.
+ *
+ * @group views
  */
 class ViewRenderTest extends ViewTestBase {
 
@@ -22,14 +24,6 @@ class ViewRenderTest extends ViewTestBase {
    */
   public static $testViews = array('test_view_render');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View render tests',
-      'description' => 'Tests the general rendering of a view.',
-      'group' => 'Views'
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/ViewStorageTest.php b/core/modules/views/src/Tests/ViewStorageTest.php
index af0341a..283c3b1 100644
--- a/core/modules/views/src/Tests/ViewStorageTest.php
+++ b/core/modules/views/src/Tests/ViewStorageTest.php
@@ -16,8 +16,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the functionality of View and ConfigEntityStorage.
+ * Tests the CRUD functionality for a view.
  *
+ * @group views
  * @see \Drupal\views\Entity\View
  * @see \Drupal\Core\Config\Entity\ConfigEntityStorage
  */
@@ -61,14 +62,6 @@ class ViewStorageTest extends ViewUnitTestBase {
    */
   public static $testViews = array('test_view_storage');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View storage tests',
-      'description' => 'Tests the CRUD functionality for a view.',
-      'group' => 'Views',
-    );
-  }
-
   /**
    * Tests CRUD operations.
    */
diff --git a/core/modules/views/src/Tests/ViewsHooksTest.php b/core/modules/views/src/Tests/ViewsHooksTest.php
index 2a90d11..534df07 100644
--- a/core/modules/views/src/Tests/ViewsHooksTest.php
+++ b/core/modules/views/src/Tests/ViewsHooksTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests that views hooks are registered when defined in $module.views.inc.
  *
+ * @group views
  * @see views_hook_info().
  * @see field_hook_info().
  */
@@ -53,14 +54,6 @@ class ViewsHooksTest extends ViewUnitTestBase {
    */
   protected $moduleHandler;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Views hooks',
-      'description' => 'Tests that views hooks are registered when defined in $module.views.inc.',
-      'group' => 'Views',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/ViewsTaxonomyAutocompleteTest.php b/core/modules/views/src/Tests/ViewsTaxonomyAutocompleteTest.php
index 35d5f87..4e0cffb 100644
--- a/core/modules/views/src/Tests/ViewsTaxonomyAutocompleteTest.php
+++ b/core/modules/views/src/Tests/ViewsTaxonomyAutocompleteTest.php
@@ -14,6 +14,7 @@
 /**
  * Tests the views taxonomy complete menu callback.
  *
+ * @group views
  * @see views_ajax_autocomplete_taxonomy()
  */
 class ViewsTaxonomyAutocompleteTest extends ViewTestBase {
@@ -46,14 +47,6 @@ class ViewsTaxonomyAutocompleteTest extends ViewTestBase {
    */
   public static $modules = array('node', 'taxonomy');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View taxonomy autocomplete',
-      'description' => 'Tests the view taxonomy autocomplete AJAX callback.',
-      'group' => 'Views'
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/ViewsTemplateTest.php b/core/modules/views/src/Tests/ViewsTemplateTest.php
index aa0452c..7eacc08 100644
--- a/core/modules/views/src/Tests/ViewsTemplateTest.php
+++ b/core/modules/views/src/Tests/ViewsTemplateTest.php
@@ -11,8 +11,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the views custom templates.
+ * Tests the template retrieval of views.
  *
+ * @group views
  * @see \Drupal\views_test_data\Plugin\views\style\StyleTemplateTest
  */
 class ViewsTemplateTest extends ViewTestBase {
@@ -24,14 +25,6 @@ class ViewsTemplateTest extends ViewTestBase {
    */
   public static $testViews = array('test_view_display_template');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View template tests',
-      'description' => 'Tests the template retrieval of views.',
-      'group' => 'Views'
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/ViewsThemeIntegrationTest.php b/core/modules/views/src/Tests/ViewsThemeIntegrationTest.php
index 3860216..a73523c 100644
--- a/core/modules/views/src/Tests/ViewsThemeIntegrationTest.php
+++ b/core/modules/views/src/Tests/ViewsThemeIntegrationTest.php
@@ -8,9 +8,11 @@
 namespace Drupal\views\Tests;
 
 /**
- * As views uses a lot of theme related functionality we need to test these too.
+ * Tests the Views theme integration.
  *
  * We test against test_basetheme and test_subtheme provided by theme_test
+ *
+ * @group views
  */
 class ViewsThemeIntegrationTest extends ViewTestBase {
 
@@ -36,17 +38,6 @@ class ViewsThemeIntegrationTest extends ViewTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Views theme integration test',
-      'description' => 'Tests the Views theme integration.',
-      'group' => 'Views',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Wizard/BasicTest.php b/core/modules/views/src/Tests/Wizard/BasicTest.php
index feec03f..493a49f 100644
--- a/core/modules/views/src/Tests/Wizard/BasicTest.php
+++ b/core/modules/views/src/Tests/Wizard/BasicTest.php
@@ -12,17 +12,11 @@
 
 /**
  * Tests creating views with the wizard and viewing them on the listing page.
+ *
+ * @group views
  */
 class BasicTest extends WizardTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Basic functionality',
-      'description' => 'Test creating basic views with the wizard and viewing them on the listing page.',
-      'group' => 'Views Wizard',
-    );
-  }
-
   function testViewsWizardAndListing() {
     $this->drupalCreateContentType(array('type' => 'article'));
     $this->drupalCreateContentType(array('type' => 'page'));
diff --git a/core/modules/views/src/Tests/Wizard/ItemsPerPageTest.php b/core/modules/views/src/Tests/Wizard/ItemsPerPageTest.php
index 97accc8..0a8fc28 100644
--- a/core/modules/views/src/Tests/Wizard/ItemsPerPageTest.php
+++ b/core/modules/views/src/Tests/Wizard/ItemsPerPageTest.php
@@ -8,18 +8,13 @@
 namespace Drupal\views\Tests\Wizard;
 
 /**
- * Tests the ability of the views wizard to specify the number of items per page.
+ * Tests the ability of the views wizard to specify the number of items per
+ * page.
+ *
+ * @group views
  */
 class ItemsPerPageTest extends WizardTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Items per page functionality',
-      'description' => 'Test the ability of the views wizard to specify the number of items per page.',
-      'group' => 'Views Wizard',
-    );
-  }
-
   /**
    * Tests the number of items per page.
    */
diff --git a/core/modules/views/src/Tests/Wizard/MenuTest.php b/core/modules/views/src/Tests/Wizard/MenuTest.php
index f294a89..3e9b8be 100644
--- a/core/modules/views/src/Tests/Wizard/MenuTest.php
+++ b/core/modules/views/src/Tests/Wizard/MenuTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests the ability of the views wizard to put views in a menu.
+ *
+ * @group views
  */
 class MenuTest extends WizardTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Menu functionality',
-      'description' => 'Test the ability of the views wizard to put views in a menu.',
-      'group' => 'Views Wizard',
-    );
-  }
-
   /**
    * Tests the menu functionality.
    */
diff --git a/core/modules/views/src/Tests/Wizard/SortingTest.php b/core/modules/views/src/Tests/Wizard/SortingTest.php
index 13b20d3..f05ae42 100644
--- a/core/modules/views/src/Tests/Wizard/SortingTest.php
+++ b/core/modules/views/src/Tests/Wizard/SortingTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests the ability of the views wizard to create views with sorts.
+ *
+ * @group views
  */
 class SortingTest extends WizardTestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Sorting functionality',
-      'description' => 'Test the ability of the views wizard to create views with sorts.',
-      'group' => 'Views Wizard',
-    );
-  }
-
   /**
    * Tests the sorting functionality.
    */
diff --git a/core/modules/views/src/Tests/Wizard/TaggedWithTest.php b/core/modules/views/src/Tests/Wizard/TaggedWithTest.php
index 47fedaa..c46a0f0 100644
--- a/core/modules/views/src/Tests/Wizard/TaggedWithTest.php
+++ b/core/modules/views/src/Tests/Wizard/TaggedWithTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the ability of the views wizard to create views filtered by taxonomy.
+ *
+ * @group views
  */
 class TaggedWithTest extends WizardTestBase {
 
@@ -31,14 +33,6 @@ class TaggedWithTest extends WizardTestBase {
 
   protected $tag_instance;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Taxonomy functionality',
-      'description' => 'Test the ability of the views wizard to create views filtered by taxonomy.',
-      'group' => 'Views Wizard',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/src/Tests/Wizard/WizardPluginBaseUnitTest.php b/core/modules/views/src/Tests/Wizard/WizardPluginBaseUnitTest.php
index 78bb214..37880d4 100644
--- a/core/modules/views/src/Tests/Wizard/WizardPluginBaseUnitTest.php
+++ b/core/modules/views/src/Tests/Wizard/WizardPluginBaseUnitTest.php
@@ -12,8 +12,9 @@
 use Drupal\views_ui\ViewUI;
 
 /**
- * Tests the wizard code.
+ * Tests the wizard base plugin class.
  *
+ * @group views
  * @see \Drupal\views\Plugin\views\wizard\WizardPluginBase
  */
 class WizardPluginBaseUnitTest extends ViewUnitTestBase {
@@ -32,14 +33,6 @@ class WizardPluginBaseUnitTest extends ViewUnitTestBase {
    */
   protected $wizard;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Wizard Plugin Base',
-      'description' => 'Test the wizard base plugin class',
-      'group' => 'Views Wizard',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/tests/src/Controller/ViewAjaxControllerTest.php b/core/modules/views/tests/src/Controller/ViewAjaxControllerTest.php
index 588eec7..8b685af 100644
--- a/core/modules/views/tests/src/Controller/ViewAjaxControllerTest.php
+++ b/core/modules/views/tests/src/Controller/ViewAjaxControllerTest.php
@@ -14,12 +14,8 @@
 
 
 /**
- * Tests the views ajax controller.
- *
- * @group Drupal
- * @group Views
- *
- * @see \Drupal\views\Controller\ViewAjaxController
+ * @coversDefaultClass \Drupal\views\Controller\ViewAjaxController
+ * @group views
  */
 class ViewAjaxControllerTest extends UnitTestCase {
 
@@ -44,14 +40,6 @@ class ViewAjaxControllerTest extends UnitTestCase {
    */
   protected $viewAjaxController;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View: Ajax controller',
-      'description' => 'Tests the views ajax controller.',
-      'group' => 'Views'
-    );
-  }
-
   protected function setUp() {
     $this->viewStorage = $this->getMock('Drupal\Core\Entity\EntityStorageInterface');
     $this->executableFactory = $this->getMockBuilder('Drupal\views\ViewExecutableFactory')
diff --git a/core/modules/views/tests/src/Entity/ViewTest.php b/core/modules/views/tests/src/Entity/ViewTest.php
index 20e0bf4..520c6a2 100644
--- a/core/modules/views/tests/src/Entity/ViewTest.php
+++ b/core/modules/views/tests/src/Entity/ViewTest.php
@@ -13,26 +13,14 @@
 use Drupal\views\Entity\View;
 
 /**
- * Tests the view entity.
- *
  * @coversDefaultClass \Drupal\views\Entity\View
+ * @group views
  */
 class ViewTest extends UnitTestCase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'View entity test',
-      'description' => 'Tests the \Drupal\views\Entity\View class.',
-      'group' => 'Views',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
 
     // Setup the entity manager.
diff --git a/core/modules/views/tests/src/EventSubscriber/RouteSubscriberTest.php b/core/modules/views/tests/src/EventSubscriber/RouteSubscriberTest.php
index 0510cd0..e27a5fe 100644
--- a/core/modules/views/tests/src/EventSubscriber/RouteSubscriberTest.php
+++ b/core/modules/views/tests/src/EventSubscriber/RouteSubscriberTest.php
@@ -14,9 +14,8 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Tests the views route subscriber.
- *
  * @coversDefaultClass \Drupal\views\EventSubscriber\RouteSubscriber
+ * @group views
  */
 class RouteSubscriberTest extends UnitTestCase {
 
@@ -48,17 +47,6 @@ class RouteSubscriberTest extends UnitTestCase {
    */
   protected $state;
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Views route subscriber',
-      'description' => 'Tests the views route subscriber.',
-      'group' => 'Views plugins',
-    );
-  }
-
   protected function setUp() {
     $this->entityManager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
     $this->viewStorage = $this->getMockBuilder('Drupal\Core\Config\Entity\ConfigEntityStorage')
diff --git a/core/modules/views/tests/src/Plugin/Block/ViewsBlockTest.php b/core/modules/views/tests/src/Plugin/Block/ViewsBlockTest.php
index c1029dd..b3cb73b 100644
--- a/core/modules/views/tests/src/Plugin/Block/ViewsBlockTest.php
+++ b/core/modules/views/tests/src/Plugin/Block/ViewsBlockTest.php
@@ -18,9 +18,8 @@
 }
 
 /**
- * Tests the views block plugin.
- *
- * @see \Drupal\views\Plugin\block\ViewsBlock
+ * @coversDefaultClass \Drupal\views\Plugin\block\ViewsBlock
+ * @group views
  */
 class ViewsBlockTest extends UnitTestCase {
 
@@ -59,14 +58,6 @@ class ViewsBlockTest extends UnitTestCase {
    */
   protected $account;
 
-  public static function getInfo() {
-    return array(
-      'name' => ' Block: Views block',
-      'description' => 'Tests the views block plugin.',
-      'group' => 'Views module integration',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views/tests/src/Plugin/Derivative/ViewsLocalTaskTest.php b/core/modules/views/tests/src/Plugin/Derivative/ViewsLocalTaskTest.php
index 359ae7c..8a67303 100644
--- a/core/modules/views/tests/src/Plugin/Derivative/ViewsLocalTaskTest.php
+++ b/core/modules/views/tests/src/Plugin/Derivative/ViewsLocalTaskTest.php
@@ -13,9 +13,8 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Tests the views local task derivative.
- *
- * @see \Drupal\views\Plugin\Derivative\ViewsLocalTask
+ * @coversDefaultClass \Drupal\views\Plugin\Derivative\ViewsLocalTask
+ * @group views
  */
 class ViewsLocalTaskTest extends UnitTestCase {
 
@@ -45,14 +44,6 @@ class ViewsLocalTaskTest extends UnitTestCase {
    */
   protected $localTaskDerivative;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Views local task derivative',
-      'description' => 'Tests the views local task derivative.',
-      'group' => 'Views plugin',
-    );
-  }
-
   protected function setUp() {
     $this->routeProvider = $this->getMock('Drupal\Core\Routing\RouteProviderInterface');
     $this->state = $this->getMock('Drupal\Core\State\StateInterface');
diff --git a/core/modules/views/tests/src/Plugin/area/MessagesTest.php b/core/modules/views/tests/src/Plugin/area/MessagesTest.php
index ccbf60c..3f57d90 100644
--- a/core/modules/views/tests/src/Plugin/area/MessagesTest.php
+++ b/core/modules/views/tests/src/Plugin/area/MessagesTest.php
@@ -11,12 +11,8 @@
 use Drupal\views\Plugin\views\area\Messages;
 
 /**
- * Tests the messages area handler
- *
- * @group Views
- * @group Handlers
- *
  * @coversDefaultClass \Drupal\views\Plugin\views\area\Messages
+ * @group views
  */
 class MessagesTest extends UnitTestCase {
 
@@ -37,17 +33,6 @@ class MessagesTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Area: Messages',
-      'description' => 'Tests the Drupal\views\Plugin\views\area\Messages handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/tests/src/Plugin/area/ResultTest.php b/core/modules/views/tests/src/Plugin/area/ResultTest.php
index 8751de0..49820a2 100644
--- a/core/modules/views/tests/src/Plugin/area/ResultTest.php
+++ b/core/modules/views/tests/src/Plugin/area/ResultTest.php
@@ -12,9 +12,8 @@
 use Drupal\views\Plugin\views\area\Result;
 
 /**
- * Tests the result area handler.
- *
- * @see \Drupal\views\Plugin\views\area\Result
+ * @coversDefaultClass \Drupal\views\Plugin\views\area\Result
+ * @group views
  */
 class ResultTest extends UnitTestCase {
 
@@ -32,14 +31,6 @@ class ResultTest extends UnitTestCase {
    */
   protected $resultHandler;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Area: Result',
-      'description' => 'Tests the Drupal\views\Plugin\views\area\Result handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/tests/src/Plugin/argument_default/QueryParameterTest.php b/core/modules/views/tests/src/Plugin/argument_default/QueryParameterTest.php
index 9699816..f402f67 100644
--- a/core/modules/views/tests/src/Plugin/argument_default/QueryParameterTest.php
+++ b/core/modules/views/tests/src/Plugin/argument_default/QueryParameterTest.php
@@ -12,24 +12,12 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the query parameter argument_default plugin.
- *
  * @coversDefaultClass \Drupal\views\Plugin\views\argument_default\QueryParameter
+ * @group views
  */
 class QueryParameterTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Tests \Drupal\views\Plugin\views\argument_default\QueryParameter',
-      'description' => '',
-      'group' => 'Views Plugin',
-    );
-  }
-
-  /**
    * Test the getArgument() method.
    *
    * @covers ::getArgument()
diff --git a/core/modules/views/tests/src/Plugin/argument_default/RawTest.php b/core/modules/views/tests/src/Plugin/argument_default/RawTest.php
index a6437a2..5553f8e 100644
--- a/core/modules/views/tests/src/Plugin/argument_default/RawTest.php
+++ b/core/modules/views/tests/src/Plugin/argument_default/RawTest.php
@@ -12,20 +12,11 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the raw argument default plugin.
- *
- * @see \Drupal\views\Plugin\views\argument_default\Raw
+ * @coversDefaultClass \Drupal\views\Plugin\views\argument_default\Raw
+ * @group views
  */
 class RawTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Argument default: Raw',
-      'description' => 'Tests the raw argument default plugin.',
-      'group' => 'Views Plugin',
-    );
-  }
-
   /**
    * Test the getArgument() method.
    *
diff --git a/core/modules/views/tests/src/Plugin/argument_validator/EntityTest.php b/core/modules/views/tests/src/Plugin/argument_validator/EntityTest.php
index fe96e66..f79edaa 100644
--- a/core/modules/views/tests/src/Plugin/argument_validator/EntityTest.php
+++ b/core/modules/views/tests/src/Plugin/argument_validator/EntityTest.php
@@ -11,12 +11,8 @@
 use Drupal\views\Plugin\views\argument_validator\Entity;
 
 /**
- * Tests the generic entity argument validator.
- *
- * @group Drupal
- * @group Views
- *
- * @see \Drupal\views\Plugin\views\argument_validator\Entity
+ * @coversDefaultClass \Drupal\views\Plugin\views\argument_validator\Entity
+ * @group views
  */
 class EntityTest extends UnitTestCase {
 
@@ -48,14 +44,6 @@ class EntityTest extends UnitTestCase {
    */
   protected $argumentValidator;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Argument validator: Entity',
-      'description' => 'Tests the generic entity argument validator.',
-      'group' => 'Views Plugin',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views/tests/src/Plugin/display/PathPluginBaseTest.php b/core/modules/views/tests/src/Plugin/display/PathPluginBaseTest.php
index 596b805..eec11c1 100644
--- a/core/modules/views/tests/src/Plugin/display/PathPluginBaseTest.php
+++ b/core/modules/views/tests/src/Plugin/display/PathPluginBaseTest.php
@@ -13,9 +13,8 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Tests the abstract base class for path based display plugins.
- *
- * @see \Drupal\views\Plugin\views\display\PathPluginBase
+ * @coversDefaultClass \Drupal\views\Plugin\views\display\PathPluginBase
+ * @group views
  */
 class PathPluginBaseTest extends UnitTestCase {
 
@@ -54,14 +53,6 @@ class PathPluginBaseTest extends UnitTestCase {
    */
   protected $formError;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display: Path plugin base.',
-      'description' => 'Tests the abstract base class for path based display plugins.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views/tests/src/Plugin/field/CounterTest.php b/core/modules/views/tests/src/Plugin/field/CounterTest.php
index 50028a4..151b80e 100644
--- a/core/modules/views/tests/src/Plugin/field/CounterTest.php
+++ b/core/modules/views/tests/src/Plugin/field/CounterTest.php
@@ -15,9 +15,8 @@
 use Drupal\views\Tests\ViewTestData;
 
 /**
- * Tests the counter field plugin.
- *
- * @see \Drupal\views\Plugin\views\field\Counter
+ * @coversDefaultClass \Drupal\views\Plugin\views\field\Counter
+ * @group views
  */
 class CounterTest extends UnitTestCase {
 
@@ -57,14 +56,6 @@ class CounterTest extends UnitTestCase {
    */
   protected $definition;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: Counter (Unit)',
-      'description' => 'Tests the \Drupal\views\Plugin\views\field\Counter handler.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views/tests/src/Plugin/pager/PagerPluginBaseTest.php b/core/modules/views/tests/src/Plugin/pager/PagerPluginBaseTest.php
index bdeb1b4..24a458b 100644
--- a/core/modules/views/tests/src/Plugin/pager/PagerPluginBaseTest.php
+++ b/core/modules/views/tests/src/Plugin/pager/PagerPluginBaseTest.php
@@ -11,11 +11,8 @@
 use Drupal\Core\Database\StatementInterface;
 
 /**
- * Tests the PagerPluginBase class
- *
- * @group Views
- *
- * @see \Drupal\views\Plugin\views\pager\PagerPluginBase
+ * @coversDefaultClass \Drupal\views\Plugin\views\pager\PagerPluginBase
+ * @group views
  */
 class PagerPluginBaseTest extends UnitTestCase {
 
@@ -26,14 +23,6 @@ class PagerPluginBaseTest extends UnitTestCase {
    */
   protected $pager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'PagerPluginBase test',
-      'description' => 'Tests the \Drupal\views\Plugin\views\pager\PagerPluginBase class.',
-      'group' => 'Views Handlers',
-    );
-  }
-
   public function setUp() {
     $this->pager = $this->getMockBuilder('Drupal\views\Plugin\views\pager\PagerPluginBase')
       ->disableOriginalConstructor()
diff --git a/core/modules/views/tests/src/PluginBaseTest.php b/core/modules/views/tests/src/PluginBaseTest.php
index ca4e106..e48dd00 100644
--- a/core/modules/views/tests/src/PluginBaseTest.php
+++ b/core/modules/views/tests/src/PluginBaseTest.php
@@ -11,9 +11,8 @@
 use Drupal\views\Tests\TestHelperPlugin;
 
 /**
- * Tests code of the views plugin base class.
- *
- * @see \Drupal\views\Plugin\views\PluginBase.
+ * @coversDefaultClass \Drupal\views\Plugin\views\PluginBase.
+ * @group views
  */
 class PluginBaseTest extends UnitTestCase {
 
@@ -24,14 +23,6 @@ class PluginBaseTest extends UnitTestCase {
    */
   protected $testHelperPlugin;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Plugin base test',
-      'description' => 'Tests code of the views plugin base class.',
-      'group' => 'Views Plugins',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views/tests/src/PluginTypeListTest.php b/core/modules/views/tests/src/PluginTypeListTest.php
index abe8150..5d842f6 100644
--- a/core/modules/views/tests/src/PluginTypeListTest.php
+++ b/core/modules/views/tests/src/PluginTypeListTest.php
@@ -10,18 +10,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Class for plugin list testing.
+ * Tests that list of plugin is correct.
+ *
+ * @group views
  */
 class PluginTypeListTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Plugin list',
-      'description' => 'Tests that list of plugin is correct.',
-      'group' => 'Views',
-    );
-  }
-
   /**
    * Tests the plugins list is correct.
    */
diff --git a/core/modules/views/tests/src/Routing/ViewPageControllerTest.php b/core/modules/views/tests/src/Routing/ViewPageControllerTest.php
index 94ce9a7..2811735 100644
--- a/core/modules/views/tests/src/Routing/ViewPageControllerTest.php
+++ b/core/modules/views/tests/src/Routing/ViewPageControllerTest.php
@@ -16,12 +16,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the page controller but not the actual execution/rendering of a view.
- *
- * @group Drupal
- * @group Views
- *
- * @see \Drupal\views\Routing\ViewPageController
+ * @coversDefaultClass \Drupal\views\Routing\ViewPageController
+ * @group views
  */
 class ViewPageControllerTest extends UnitTestCase {
 
@@ -46,14 +42,6 @@ class ViewPageControllerTest extends UnitTestCase {
    */
   protected $executableFactory;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View page controller test',
-      'description' => 'Tests views page controller.',
-      'group' => 'Views'
-    );
-  }
-
   protected function setUp() {
     $this->storage = $this->getMockBuilder('Drupal\Core\Config\Entity\ConfigEntityStorage')
       ->disableOriginalConstructor()
diff --git a/core/modules/views/tests/src/ViewExecutableFactoryTest.php b/core/modules/views/tests/src/ViewExecutableFactoryTest.php
index f4cc82b..8e1c38a 100644
--- a/core/modules/views/tests/src/ViewExecutableFactoryTest.php
+++ b/core/modules/views/tests/src/ViewExecutableFactoryTest.php
@@ -13,9 +13,8 @@
 use Symfony\Component\HttpFoundation\RequestStack;
 
 /**
- * Tests the ViewExecutableFactory class.
- *
  * @coversDefaultClass \Drupal\views\ViewExecutableFactory
+ * @group views
  */
 class ViewExecutableFactoryTest extends UnitTestCase {
 
@@ -50,17 +49,6 @@ class ViewExecutableFactoryTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'View executable factory test',
-      'description' => 'Tests methods on the \Drupal\views\ViewExecutableFactory class',
-      'group' => 'Views',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views/tests/src/ViewExecutableUnitTest.php b/core/modules/views/tests/src/ViewExecutableUnitTest.php
index 6a18691..c6ea1bb 100644
--- a/core/modules/views/tests/src/ViewExecutableUnitTest.php
+++ b/core/modules/views/tests/src/ViewExecutableUnitTest.php
@@ -12,20 +12,11 @@
 use Drupal\views\ViewExecutable;
 
 /**
- * Tests methods on the ViewExecutable class.
- *
- * @see \Drupal\views\ViewExecutable
+ * @coversDefaultClass \Drupal\views\ViewExecutable
+ * @group views
  */
 class ViewExecutableUnitTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View executable test',
-      'description' => 'Tests methods on the \Drupal\views\ViewExecutable class',
-      'group' => 'Views',
-    );
-  }
-
   /**
    * Tests the buildThemeFunctions() method.
    */
diff --git a/core/modules/views/tests/src/ViewsDataHelperTest.php b/core/modules/views/tests/src/ViewsDataHelperTest.php
index 5fca8fe..260fee7 100644
--- a/core/modules/views/tests/src/ViewsDataHelperTest.php
+++ b/core/modules/views/tests/src/ViewsDataHelperTest.php
@@ -12,20 +12,11 @@
 use Drupal\views\ViewsDataHelper;
 
 /**
- * Tests the views data helper class.
- *
- * @see \Drupal\views\ViewsDataHelper
+ * @coversDefaultClass \Drupal\views\ViewsDataHelper
+ * @group views
  */
 class ViewsDataHelperTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Views data helper',
-      'description' => 'Tests the views data helper class.',
-      'group' => 'Views',
-    );
-  }
-
   /**
    * Returns the views data definition.
    *
diff --git a/core/modules/views/tests/src/ViewsDataTest.php b/core/modules/views/tests/src/ViewsDataTest.php
index 432e846..826faa7 100644
--- a/core/modules/views/tests/src/ViewsDataTest.php
+++ b/core/modules/views/tests/src/ViewsDataTest.php
@@ -12,11 +12,8 @@
 use Drupal\views\ViewsData;
 
 /**
- * Tests the fetching of views data.
- *
- * @see hook_views_data
- *
  * @coversDefaultClass \Drupal\views\ViewsData
+ * @group views
  */
 class ViewsDataTest extends UnitTestCase {
 
@@ -58,17 +55,6 @@ class ViewsDataTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Views data',
-      'description' => 'Tests the fetching of views data.',
-      'group' => 'Views',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->cacheBackend = $this->getMock('Drupal\Core\Cache\CacheBackendInterface');
     $this->getContainerWithCacheBins($this->cacheBackend);
diff --git a/core/modules/views/tests/src/ViewsTest.php b/core/modules/views/tests/src/ViewsTest.php
index 462cb28..cb2be61 100644
--- a/core/modules/views/tests/src/ViewsTest.php
+++ b/core/modules/views/tests/src/ViewsTest.php
@@ -17,17 +17,10 @@
 
 /**
  * @coversDefaultClass \Drupal\views\Views
+ * @group views
  */
 class ViewsTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Views test',
-      'description' => 'Tests the Drupal\views\Views class.',
-      'group' => 'Views',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/views_ui/src/Tests/AnalyzeTest.php b/core/modules/views_ui/src/Tests/AnalyzeTest.php
index 14cf275..29b7f52 100644
--- a/core/modules/views_ui/src/Tests/AnalyzeTest.php
+++ b/core/modules/views_ui/src/Tests/AnalyzeTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the views analyze system.
+ *
+ * @group views_ui
  */
 class AnalyzeTest extends ViewTestBase {
 
@@ -28,14 +30,6 @@ class AnalyzeTest extends ViewTestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Views Analyze',
-      'description' => 'Tests the views analyze system.',
-      'group' => 'Views',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views_ui/src/Tests/CachedDataUITest.php b/core/modules/views_ui/src/Tests/CachedDataUITest.php
index 9bfde8e..f6ca040 100644
--- a/core/modules/views_ui/src/Tests/CachedDataUITest.php
+++ b/core/modules/views_ui/src/Tests/CachedDataUITest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests the user tempstore cache in the UI.
+ *
+ * @group views_ui
  */
 class CachedDataUITest extends UITestBase {
 
@@ -19,14 +21,6 @@ class CachedDataUITest extends UITestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Cached data',
-      'description' => 'Tests the user tempstore object caching in the UI.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests the user tempstore views data in the UI.
    */
diff --git a/core/modules/views_ui/src/Tests/CustomBooleanTest.php b/core/modules/views_ui/src/Tests/CustomBooleanTest.php
index 1b40d9f..ebf989b 100644
--- a/core/modules/views_ui/src/Tests/CustomBooleanTest.php
+++ b/core/modules/views_ui/src/Tests/CustomBooleanTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the UI and functionality for the Custom boolean field handler options.
  *
+ * @group views_ui
  * @see \Drupal\views\Plugin\views\field\Boolean
  */
 class CustomBooleanTest extends UITestBase {
@@ -23,14 +24,6 @@ class CustomBooleanTest extends UITestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Boolean custom options: UI',
-      'description' => 'Tests the UI and functionality for the Custom boolean field handler options',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * \Drupal\views\Tests\ViewTestBase::viewsData().
    */
diff --git a/core/modules/views_ui/src/Tests/DefaultViewsTest.php b/core/modules/views_ui/src/Tests/DefaultViewsTest.php
index edabbf8..4692e66 100644
--- a/core/modules/views_ui/src/Tests/DefaultViewsTest.php
+++ b/core/modules/views_ui/src/Tests/DefaultViewsTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests enabling, disabling, and reverting default views via the listing page.
+ *
+ * @group views_ui
  */
 class DefaultViewsTest extends UITestBase {
 
@@ -19,14 +21,6 @@ class DefaultViewsTest extends UITestBase {
    */
   public static $testViews = array('test_view_status', 'test_page_display_menu', 'test_page_display_arguments');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Default views functionality',
-      'description' => 'Test enabling, disabling, and reverting default views via the listing page.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests default views.
    */
diff --git a/core/modules/views_ui/src/Tests/DisplayAttachmentTest.php b/core/modules/views_ui/src/Tests/DisplayAttachmentTest.php
index 5d71210..68fa2b3 100644
--- a/core/modules/views_ui/src/Tests/DisplayAttachmentTest.php
+++ b/core/modules/views_ui/src/Tests/DisplayAttachmentTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the UI for the attachment display plugin.
  *
+ * @group views_ui
  * @see \Drupal\views\Plugin\views\display\Attachment
  */
 class DisplayAttachmentTest extends UITestBase {
@@ -23,14 +24,6 @@ class DisplayAttachmentTest extends UITestBase {
    */
   public static $testViews = array('test_attachment_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display: Attachment',
-      'description' => 'Tests the UI for the attachment display plugin.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests the attachment UI.
    */
diff --git a/core/modules/views_ui/src/Tests/DisplayExtenderUITest.php b/core/modules/views_ui/src/Tests/DisplayExtenderUITest.php
index 388eb38..12c8ee0 100644
--- a/core/modules/views_ui/src/Tests/DisplayExtenderUITest.php
+++ b/core/modules/views_ui/src/Tests/DisplayExtenderUITest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests the display extender UI.
+ *
+ * @group views_ui
  */
 class DisplayExtenderUITest extends UITestBase {
 
@@ -21,14 +23,6 @@ class DisplayExtenderUITest extends UITestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display extender: UI',
-      'description' => 'Tests the display extender UI.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests the display extender UI.
    */
diff --git a/core/modules/views_ui/src/Tests/DisplayFeedTest.php b/core/modules/views_ui/src/Tests/DisplayFeedTest.php
index 3f0dc5f..f190164 100644
--- a/core/modules/views_ui/src/Tests/DisplayFeedTest.php
+++ b/core/modules/views_ui/src/Tests/DisplayFeedTest.php
@@ -10,6 +10,7 @@
 /**
  * Tests the UI for feed display plugin.
  *
+ * @group views_ui
  * @see \Drupal\views\Plugin\views\display\Feed
  */
 class DisplayFeedTest extends UITestBase {
@@ -28,14 +29,6 @@ class DisplayFeedTest extends UITestBase {
    */
   public static $modules = array('views_ui', 'aggregator');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display: Feed',
-      'description' => 'Tests the UI for Feed display plugin.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests feed display admin UI.
    */
diff --git a/core/modules/views_ui/src/Tests/DisplayPath.php b/core/modules/views_ui/src/Tests/DisplayPath.php
index 8eb3e6d..7013b34 100644
--- a/core/modules/views_ui/src/Tests/DisplayPath.php
+++ b/core/modules/views_ui/src/Tests/DisplayPath.php
@@ -10,6 +10,7 @@
 /**
  * Tests the UI of generic display path plugin.
  *
+ * @group views_ui
  * @see \Drupal\views\Plugin\views\display\PathPluginBase
  */
 class DisplayPath extends UITestBase {
@@ -21,14 +22,6 @@ class DisplayPath extends UITestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display Path: UI',
-      'description' => 'Tests the UI of generic display path plugin.',
-      'group' => 'Views UI',
-    );
-  }
-
   public function testPathUI() {
     $this->doBasicPathUITest();
     $this->doAdvancedPathsValidationTest();
diff --git a/core/modules/views_ui/src/Tests/DisplayTest.php b/core/modules/views_ui/src/Tests/DisplayTest.php
index 061c4d3..e717c3c 100644
--- a/core/modules/views_ui/src/Tests/DisplayTest.php
+++ b/core/modules/views_ui/src/Tests/DisplayTest.php
@@ -14,7 +14,9 @@
 use Drupal\Core\Template\Attribute;
 
 /**
- * Tests the handling of displays in the UI, adding removing etc.
+ * Tests the display UI.
+ *
+ * @group views_ui
  */
 class DisplayTest extends UITestBase {
 
@@ -32,14 +34,6 @@ class DisplayTest extends UITestBase {
    */
   public static $modules = array('contextual');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display element tests',
-      'description' => 'Tests the display UI.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests reordering of displays.
    */
diff --git a/core/modules/views_ui/src/Tests/DisplayTestCRUD.php b/core/modules/views_ui/src/Tests/DisplayTestCRUD.php
index f8fb839..8558ca1 100644
--- a/core/modules/views_ui/src/Tests/DisplayTestCRUD.php
+++ b/core/modules/views_ui/src/Tests/DisplayTestCRUD.php
@@ -10,7 +10,9 @@
 use Drupal\views\Views;
 
 /**
- * Tests the handling of displays in the UI, adding removing etc.
+ * Tests creation, retrieval, updating, and deletion of displays in the Web UI.
+ *
+ * @group views_ui
  */
 class DisplayTestCRUD extends UITestBase {
 
@@ -28,14 +30,6 @@ class DisplayTestCRUD extends UITestBase {
    */
   public static $modules = array('contextual');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Display CRUD UI tests',
-      'description' => 'Tests creation, retrieval, updating, and deletion of displays in the Web UI.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests adding a display.
    */
diff --git a/core/modules/views_ui/src/Tests/ExposedFormUITest.php b/core/modules/views_ui/src/Tests/ExposedFormUITest.php
index a17ffce..8668b53 100644
--- a/core/modules/views_ui/src/Tests/ExposedFormUITest.php
+++ b/core/modules/views_ui/src/Tests/ExposedFormUITest.php
@@ -8,7 +8,9 @@
 namespace Drupal\views_ui\Tests;
 
 /**
- * Tests exposed form UI.
+ * Tests exposed forms UI functionality.
+ *
+ * @group views_ui
  */
 class ExposedFormUITest extends UITestBase {
 
@@ -19,14 +21,6 @@ class ExposedFormUITest extends UITestBase {
    */
   public static $testViews = array('test_exposed_admin_ui');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Exposed forms',
-      'description' => 'Test exposed forms UI functionality.',
-      'group' => 'Views UI',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/views_ui/src/Tests/FieldUITest.php b/core/modules/views_ui/src/Tests/FieldUITest.php
index 4bcddc0..9c3e43b 100644
--- a/core/modules/views_ui/src/Tests/FieldUITest.php
+++ b/core/modules/views_ui/src/Tests/FieldUITest.php
@@ -10,6 +10,7 @@
 /**
  * Tests the UI of field handlers.
  *
+ * @group views_ui
  * @see \Drupal\views\Plugin\views\field\FieldPluginBase
  */
 class FieldUITest extends UITestBase {
@@ -21,14 +22,6 @@ class FieldUITest extends UITestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field: UI',
-      'description' => 'Tests the UI of field handlers.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests the UI of field handlers.
    */
diff --git a/core/modules/views_ui/src/Tests/FilterBooleanWebTest.php b/core/modules/views_ui/src/Tests/FilterBooleanWebTest.php
index 24b0f39..ac400e0 100644
--- a/core/modules/views_ui/src/Tests/FilterBooleanWebTest.php
+++ b/core/modules/views_ui/src/Tests/FilterBooleanWebTest.php
@@ -10,6 +10,7 @@
 /**
  * Tests the boolean filter UI.
  *
+ * @group views_ui
  * @see \Drupal\views\Plugin\views\filter\BooleanOperator
  */
 class FilterBooleanWebTest extends UITestBase {
@@ -21,14 +22,6 @@ class FilterBooleanWebTest extends UITestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Filter: Boolean',
-      'description' => 'Tests the boolean filter UI.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests the filter boolean UI.
    */
diff --git a/core/modules/views_ui/src/Tests/GroupByTest.php b/core/modules/views_ui/src/Tests/GroupByTest.php
index 7a5d615..04db69c 100644
--- a/core/modules/views_ui/src/Tests/GroupByTest.php
+++ b/core/modules/views_ui/src/Tests/GroupByTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests UI of aggregate functionality..
+ *
+ * @group views_ui
  */
 class GroupByTest extends UITestBase {
 
@@ -19,14 +21,6 @@ class GroupByTest extends UITestBase {
    */
   public static $testViews = array('test_views_groupby_save');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Group By functionality',
-      'description' => 'Tests UI of aggregate functionality.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests whether basic saving works.
    *
diff --git a/core/modules/views_ui/src/Tests/HandlerTest.php b/core/modules/views_ui/src/Tests/HandlerTest.php
index 5a00b03..4eaac1e 100644
--- a/core/modules/views_ui/src/Tests/HandlerTest.php
+++ b/core/modules/views_ui/src/Tests/HandlerTest.php
@@ -11,8 +11,9 @@
 use Drupal\views\ViewExecutable;
 
 /**
- * Tests some generic handler UI functionality.
+ * Tests handler UI for views.
  *
+ * @group views_ui
  * @see \Drupal\views\Plugin\views\HandlerBase
  */
 class HandlerTest extends UITestBase {
@@ -24,14 +25,6 @@ class HandlerTest extends UITestBase {
    */
   public static $testViews = array('test_view_empty', 'test_view_broken', 'test_view_optional');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Handler test',
-      'description' => 'Tests handler UI for views.',
-      'group' => 'Views UI'
-    );
-  }
-
   /**
    * Overrides \Drupal\views\Tests\ViewTestBase::schemaDefinition().
    *
diff --git a/core/modules/views_ui/src/Tests/OverrideDisplaysTest.php b/core/modules/views_ui/src/Tests/OverrideDisplaysTest.php
index 1a405d9..c758ecb 100644
--- a/core/modules/views_ui/src/Tests/OverrideDisplaysTest.php
+++ b/core/modules/views_ui/src/Tests/OverrideDisplaysTest.php
@@ -9,17 +9,11 @@
 
 /**
  * Tests that displays can be correctly overridden via the user interface.
+ *
+ * @group views_ui
  */
 class OverrideDisplaysTest extends UITestBase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Overridden displays functionality',
-      'description' => 'Test that displays can be correctly overridden via the user interface.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests that displays can be overridden via the UI.
    */
diff --git a/core/modules/views_ui/src/Tests/PreviewTest.php b/core/modules/views_ui/src/Tests/PreviewTest.php
index 01feff6..0a85b00 100644
--- a/core/modules/views_ui/src/Tests/PreviewTest.php
+++ b/core/modules/views_ui/src/Tests/PreviewTest.php
@@ -10,7 +10,9 @@
 use Drupal\Component\Serialization\Json;
 
 /**
- * Tests the preview form in the UI.
+ * Tests the UI preview functionality.
+ *
+ * @group views_ui
  */
 class PreviewTest extends UITestBase {
 
@@ -21,14 +23,6 @@ class PreviewTest extends UITestBase {
    */
   public static $testViews = array('test_preview', 'test_pager_full', 'test_mini_pager');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Preview functionality',
-      'description' => 'Tests the UI preview functionality.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests contextual links in the preview form.
    */
diff --git a/core/modules/views_ui/src/Tests/QueryTest.php b/core/modules/views_ui/src/Tests/QueryTest.php
index 0013b78..c9eca9b 100644
--- a/core/modules/views_ui/src/Tests/QueryTest.php
+++ b/core/modules/views_ui/src/Tests/QueryTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests query plugins.
+ *
+ * @group views_ui
  */
 class QueryTest extends UITestBase {
 
@@ -23,14 +25,6 @@ class QueryTest extends UITestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Query: UI',
-      'description' => 'Tests query plugins UI.',
-      'group' => 'Views UI'
-    );
-  }
-
   /**
    * Overrides \Drupal\views\Tests\ViewTestBase::viewsData().
    */
diff --git a/core/modules/views_ui/src/Tests/RearrangeFieldsTest.php b/core/modules/views_ui/src/Tests/RearrangeFieldsTest.php
index b7bd570..f2d3d21 100644
--- a/core/modules/views_ui/src/Tests/RearrangeFieldsTest.php
+++ b/core/modules/views_ui/src/Tests/RearrangeFieldsTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the reordering of fields via AJAX.
  *
+ * @group views_ui
  * @see \Drupal\views_ui\Form\Ajax\Rearrange
  */
 class RearrangeFieldsTest extends UITestBase {
@@ -23,14 +24,6 @@ class RearrangeFieldsTest extends UITestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Rearrange fields',
-      'description' => 'Tests the reordering of fields',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Gets the fields from the View.
    */
diff --git a/core/modules/views_ui/src/Tests/RedirectTest.php b/core/modules/views_ui/src/Tests/RedirectTest.php
index 08483f6..f8e0e2a 100644
--- a/core/modules/views_ui/src/Tests/RedirectTest.php
+++ b/core/modules/views_ui/src/Tests/RedirectTest.php
@@ -9,6 +9,8 @@
 
 /**
  * Tests the redirecting after saving a views.
+ *
+ * @group views_ui
  */
 class RedirectTest extends UITestBase {
 
@@ -19,14 +21,6 @@ class RedirectTest extends UITestBase {
    */
   public static $testViews = array('test_view', 'test_redirect_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Redirect',
-      'description' => 'Tests the redirecting after saving a views',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests the redirecting.
    */
diff --git a/core/modules/views_ui/src/Tests/RowUITest.php b/core/modules/views_ui/src/Tests/RowUITest.php
index cc8c5c3..ab32782 100644
--- a/core/modules/views_ui/src/Tests/RowUITest.php
+++ b/core/modules/views_ui/src/Tests/RowUITest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the UI of row plugins.
  *
+ * @group views_ui
  * @see \Drupal\views_test_data\Plugin\views\row\RowTest.
  */
 class RowUITest extends UITestBase {
@@ -23,14 +24,6 @@ class RowUITest extends UITestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Row: UI',
-      'description' => 'Tests the UI of row plugins.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests changing the row plugin and changing some options of a row.
    */
diff --git a/core/modules/views_ui/src/Tests/SettingsTest.php b/core/modules/views_ui/src/Tests/SettingsTest.php
index a4e5f76..cfb918b 100644
--- a/core/modules/views_ui/src/Tests/SettingsTest.php
+++ b/core/modules/views_ui/src/Tests/SettingsTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\views_ui\Tests;
 
 /**
- * Tests the various settings in the views UI.
+ * Tests all ui related settings under admin/structure/views/settings.
+ *
+ * @group views_ui
  */
 class SettingsTest extends UITestBase {
 
@@ -19,14 +21,6 @@ class SettingsTest extends UITestBase {
    */
   protected $adminUser;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Settings functionality',
-      'description' => 'Tests all ui related settings under admin/structure/views/settings.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests the settings for the edit ui.
    */
diff --git a/core/modules/views_ui/src/Tests/StorageTest.php b/core/modules/views_ui/src/Tests/StorageTest.php
index 4a99d2a..06db9fe 100644
--- a/core/modules/views_ui/src/Tests/StorageTest.php
+++ b/core/modules/views_ui/src/Tests/StorageTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the UI of storage properties of views.
+ *
+ * @group views_ui
  */
 class StorageTest extends UITestBase {
 
@@ -29,14 +31,6 @@ class StorageTest extends UITestBase {
    */
   public static $modules = array('views_ui', 'language');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Storage properties',
-      'description' => 'Tests the UI of storage properties of views.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests changing label, description and tag.
    *
diff --git a/core/modules/views_ui/src/Tests/StyleUITest.php b/core/modules/views_ui/src/Tests/StyleUITest.php
index c58d1a5..f129c6e 100644
--- a/core/modules/views_ui/src/Tests/StyleUITest.php
+++ b/core/modules/views_ui/src/Tests/StyleUITest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the UI of style plugins.
  *
+ * @group views_ui
  * @see \Drupal\views_test_data\Plugin\views\style\StyleTest.
  */
 class StyleUITest extends UITestBase {
@@ -23,14 +24,6 @@ class StyleUITest extends UITestBase {
    */
   public static $testViews = array('test_view');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Style: UI',
-      'description' => 'Tests the UI of style plugins.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests changing the style plugin and changing some options of a style.
    */
diff --git a/core/modules/views_ui/src/Tests/TagTest.php b/core/modules/views_ui/src/Tests/TagTest.php
index db2df4f..2e99440 100644
--- a/core/modules/views_ui/src/Tests/TagTest.php
+++ b/core/modules/views_ui/src/Tests/TagTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the views ui tagging functionality.
+ *
+ * @group views_ui
  */
 class TagTest extends ViewUnitTestBase {
 
@@ -22,14 +24,6 @@ class TagTest extends ViewUnitTestBase {
    */
   public static $modules = array('views', 'views_ui', 'user');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Tag',
-      'description' => 'Tests the views ui tagging functionality.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests the views_ui_autocomplete_tag function.
    */
diff --git a/core/modules/views_ui/src/Tests/ViewEditTest.php b/core/modules/views_ui/src/Tests/ViewEditTest.php
index 6652337..b88ed43 100644
--- a/core/modules/views_ui/src/Tests/ViewEditTest.php
+++ b/core/modules/views_ui/src/Tests/ViewEditTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Tests some general functionality of editing views, like deleting a view.
+ *
+ * @group views_ui
  */
 class ViewEditTest extends UITestBase {
 
@@ -23,14 +25,6 @@ class ViewEditTest extends UITestBase {
    */
   public static $testViews = array('test_view', 'test_display');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'General views edit test',
-      'description' => 'Tests some general functionality of editing views, like deleting a view.',
-      'group' => 'Views UI'
-    );
-  }
-
   /**
    * Tests the delete link on a views UI.
    */
diff --git a/core/modules/views_ui/src/Tests/ViewsUITourTest.php b/core/modules/views_ui/src/Tests/ViewsUITourTest.php
index 5808cde..1b82060 100644
--- a/core/modules/views_ui/src/Tests/ViewsUITourTest.php
+++ b/core/modules/views_ui/src/Tests/ViewsUITourTest.php
@@ -10,7 +10,9 @@
 use Drupal\tour\Tests\TourTestBase;
 
 /**
- * Tests tour functionality.
+ * Tests the Views UI tour.
+ *
+ * @group views_ui
  */
 class ViewsUITourTest extends TourTestBase {
 
@@ -28,14 +30,6 @@ class ViewsUITourTest extends TourTestBase {
    */
   public static $modules = array('views_ui', 'tour');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Views UI tour tests',
-      'description' => 'Tests the Views UI tour.',
-      'group' => 'Tour',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
     $this->adminUser = $this->drupalCreateUser(array('administer views', 'access tour'));
diff --git a/core/modules/views_ui/src/Tests/WizardTest.php b/core/modules/views_ui/src/Tests/WizardTest.php
index bb8e201..515b57a 100644
--- a/core/modules/views_ui/src/Tests/WizardTest.php
+++ b/core/modules/views_ui/src/Tests/WizardTest.php
@@ -12,6 +12,7 @@
 /**
  * Tests the wizard.
  *
+ * @group views_ui
  * @see \Drupal\views\Plugin\views\display\DisplayPluginBase
  * @see \Drupal\views\Plugin\views\display\PathPluginBase
  * @see \Drupal\views\Plugin\views\wizard\WizardPluginBase
@@ -19,17 +20,6 @@
 class WizardTest extends WizardTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Views UI: Wizard',
-      'description' => 'Tests the wizard.',
-      'group' => 'Views Wizard',
-    );
-  }
-
-  /**
    * Tests filling in the wizard with really long strings.
    */
   public function testWizardFieldLength() {
diff --git a/core/modules/views_ui/tests/src/Form/Ajax/RearrangeFilterTest.php b/core/modules/views_ui/tests/src/Form/Ajax/RearrangeFilterTest.php
index bed95df..0166fef 100644
--- a/core/modules/views_ui/tests/src/Form/Ajax/RearrangeFilterTest.php
+++ b/core/modules/views_ui/tests/src/Form/Ajax/RearrangeFilterTest.php
@@ -11,20 +11,12 @@
 use Drupal\views_ui\Form\Ajax\RearrangeFilter;
 
 /**
- * Tests RearrangeFilter's methods.
+ * Unit tests for Views UI module functions.
  *
- * @group Views UI
+ * @group views_ui
  */
 class RearrangeFilterTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Module tests',
-      'description' => 'Unit tests for Views UI module functions.',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests static methods.
    */
diff --git a/core/modules/views_ui/tests/src/ViewListBuilderTest.php b/core/modules/views_ui/tests/src/ViewListBuilderTest.php
index fb4a73a..38af039 100644
--- a/core/modules/views_ui/tests/src/ViewListBuilderTest.php
+++ b/core/modules/views_ui/tests/src/ViewListBuilderTest.php
@@ -18,17 +18,10 @@
 
 /**
  * @coversDefaultClass \Drupal\views_ui\ViewListBuilder
+ * @group views_ui
  */
 class ViewListBuilderTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Views List Builder Unit Test',
-      'description' => 'Unit tests the views list builder',
-      'group' => 'Views UI',
-    );
-  }
-
   /**
    * Tests the listing of displays on a views list builder.
    *
diff --git a/core/modules/views_ui/tests/src/ViewUIObjectTest.php b/core/modules/views_ui/tests/src/ViewUIObjectTest.php
index f105b3a..1828f76 100644
--- a/core/modules/views_ui/tests/src/ViewUIObjectTest.php
+++ b/core/modules/views_ui/tests/src/ViewUIObjectTest.php
@@ -15,20 +15,11 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 /**
- * Tests the ViewUI class.
- *
- * @see \Drupal\views_ui\ViewUI
+ * @coversDefaultClass \Drupal\views_ui\ViewUI
+ * @group views_ui
  */
 class ViewUIObjectTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'View UI Object',
-      'description' => 'Test the ViewUI class.',
-      'group' => 'Views UI'
-    );
-  }
-
   /**
    * Tests entity method decoration.
    */
diff --git a/core/modules/xmlrpc/src/Tests/XmlRpcBasicTest.php b/core/modules/xmlrpc/src/Tests/XmlRpcBasicTest.php
index 60f812d..ae57107 100644
--- a/core/modules/xmlrpc/src/Tests/XmlRpcBasicTest.php
+++ b/core/modules/xmlrpc/src/Tests/XmlRpcBasicTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Perform basic XML-RPC tests that do not require addition callbacks.
+ *
+ * @group xmlrpc
  */
 class XmlRpcBasicTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class XmlRpcBasicTest extends WebTestBase {
    */
   public static $modules = array('xmlrpc');
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'XML-RPC basic',
-      'description'  => 'Perform basic XML-RPC tests that do not require additional callbacks.',
-      'group' => 'XML-RPC',
-    );
-  }
-
   /**
    * Ensure that a basic XML-RPC call with no parameters works.
    */
diff --git a/core/modules/xmlrpc/src/Tests/XmlRpcMessagesTest.php b/core/modules/xmlrpc/src/Tests/XmlRpcMessagesTest.php
index 637d7a2..46ea73b 100644
--- a/core/modules/xmlrpc/src/Tests/XmlRpcMessagesTest.php
+++ b/core/modules/xmlrpc/src/Tests/XmlRpcMessagesTest.php
@@ -10,7 +10,9 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * XML-RPC message and alteration tests.
+ * Tests large messages and method alterations.
+ *
+ * @group xmlrpc
  */
 class XmlRpcMessagesTest extends WebTestBase {
 
@@ -21,14 +23,6 @@ class XmlRpcMessagesTest extends WebTestBase {
    */
   public static $modules = array('xmlrpc', 'xmlrpc_test');
 
-  public static function getInfo() {
-    return array(
-      'name'  => 'XML-RPC message and alteration',
-      'description' => 'Test large messages and method alterations.',
-      'group' => 'XML-RPC',
-    );
-  }
-
   /**
    * Make sure that XML-RPC can transfer large messages.
    */
diff --git a/core/modules/xmlrpc/src/Tests/XmlRpcValidatorTest.php b/core/modules/xmlrpc/src/Tests/XmlRpcValidatorTest.php
index b1a9fa8..1af8c06 100644
--- a/core/modules/xmlrpc/src/Tests/XmlRpcValidatorTest.php
+++ b/core/modules/xmlrpc/src/Tests/XmlRpcValidatorTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * XML-RPC validator1 specification.
+ * See <a href="http://www.xmlrpc.com/validator1Docs">the xmlrpc validator1
+ * specification</a>.
+ *
+ * @group xmlrpc
  */
 class XmlRpcValidatorTest extends WebTestBase {
 
@@ -21,14 +24,6 @@ class XmlRpcValidatorTest extends WebTestBase {
    */
   public static $modules = array('xmlrpc', 'xmlrpc_test');
 
-  public static function getInfo() {
-    return array(
-      'name' => 'XML-RPC validator',
-      'description' => 'See <a href="http://www.xmlrpc.com/validator1Docs">the xmlrpc validator1 specification</a>.',
-      'group' => 'XML-RPC',
-    );
-  }
-
   /**
    * Run validator1 tests.
    */
diff --git a/core/profiles/minimal/src/Tests/MinimalTest.php b/core/profiles/minimal/src/Tests/MinimalTest.php
index fbfb65b..4666e4b 100644
--- a/core/profiles/minimal/src/Tests/MinimalTest.php
+++ b/core/profiles/minimal/src/Tests/MinimalTest.php
@@ -11,19 +11,13 @@
 
 /**
  * Tests Minimal installation profile expectations.
+ *
+ * @group minimal
  */
 class MinimalTest extends WebTestBase {
 
   protected $profile = 'minimal';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Minimal installation profile',
-      'description' => 'Tests Minimal installation profile expectations.',
-      'group' => 'Minimal',
-    );
-  }
-
   /**
    * Tests Minimal installation profile.
    */
diff --git a/core/profiles/standard/src/Tests/StandardTest.php b/core/profiles/standard/src/Tests/StandardTest.php
index 9857b83..1f81850 100644
--- a/core/profiles/standard/src/Tests/StandardTest.php
+++ b/core/profiles/standard/src/Tests/StandardTest.php
@@ -11,19 +11,13 @@
 
 /**
  * Tests Standard installation profile expectations.
+ *
+ * @group standard
  */
 class StandardTest extends WebTestBase {
 
   protected $profile = 'standard';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Standard installation profile',
-      'description' => 'Tests Standard installation profile expectations.',
-      'group' => 'Standard',
-    );
-  }
-
   /**
    * Tests Standard installation profile.
    */
diff --git a/core/profiles/testing/modules/drupal_system_listing_compatible_test/src/Tests/SystemListingCompatibleTest.php b/core/profiles/testing/modules/drupal_system_listing_compatible_test/src/Tests/SystemListingCompatibleTest.php
index 3df9188..5fb0932 100644
--- a/core/profiles/testing/modules/drupal_system_listing_compatible_test/src/Tests/SystemListingCompatibleTest.php
+++ b/core/profiles/testing/modules/drupal_system_listing_compatible_test/src/Tests/SystemListingCompatibleTest.php
@@ -10,7 +10,10 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Helper to verify tests in installation profile modules.
+ * Verifies that tests in installation profile modules are found and may use
+ * another profile for running tests.
+ *
+ * @group drupal_system_listing_compatible_test
  */
 class SystemListingCompatibleTest extends WebTestBase {
 
@@ -34,14 +37,6 @@ class SystemListingCompatibleTest extends WebTestBase {
    */
   protected $profile = 'minimal';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Installation profile module tests helper',
-      'description' => 'Verifies that tests in installation profile modules are found and may use another profile for running tests.',
-      'group' => 'Installation profile',
-    );
-  }
-
   /**
    * Non-empty test* method required to executed the test case class.
    */
diff --git a/core/scripts/run-tests.sh b/core/scripts/run-tests.sh
index 8eff2a2..b99ef44 100755
--- a/core/scripts/run-tests.sh
+++ b/core/scripts/run-tests.sh
@@ -58,7 +58,7 @@
   foreach ($groups as $group => $tests) {
     echo $group . "\n";
     foreach ($tests as $class => $info) {
-      echo " - " . $info['name'] . ' (' . $class . ')' . "\n";
+      echo " - $class\n";
     }
   }
   exit;
@@ -561,7 +561,6 @@ function simpletest_script_setup_database($new = FALSE) {
  */
 function simpletest_script_get_all_tests($module = NULL) {
   $tests = simpletest_test_get_all($module);
-  $tests['PHPUnit'] = simpletest_phpunit_get_available_tests($module);
   return $tests;
 }
 
diff --git a/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php b/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php
index 7ae0c79..0f8e738 100644
--- a/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php
+++ b/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php
@@ -11,24 +11,12 @@
 use Drupal\Component\Datetime\DateTimePlus;
 
 /**
- * Tests the DateTimePlus component.
- *
- * @see \Drupal\Component\Datetime\DateTimePlus
+ * @coversDefaultClass \Drupal\Component\Datetime\DateTimePlus
+ * @group Datetime
  */
 class DateTimePlusTest extends UnitTestCase {
 
   /**
-   * Test information.
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'DateTimePlus',
-      'description' => 'Test DateTimePlus functionality.',
-      'group' => 'Datetime',
-    );
-  }
-
-  /**
    * Test creating dates from string and array input.
    *
    * @param mixed $input
diff --git a/core/tests/Drupal/Tests/Component/Discovery/YamlDiscoveryTest.php b/core/tests/Drupal/Tests/Component/Discovery/YamlDiscoveryTest.php
index 325ef01..a546992 100644
--- a/core/tests/Drupal/Tests/Component/Discovery/YamlDiscoveryTest.php
+++ b/core/tests/Drupal/Tests/Component/Discovery/YamlDiscoveryTest.php
@@ -11,18 +11,12 @@
 use Drupal\Component\Discovery\YamlDiscovery;
 
 /**
- * Tests the YamlDiscovery component class.
+ * YamlDiscovery component unit tests.
+ *
+ * @group Discovery
  */
 class YamlDiscoveryTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'YamlDiscovery',
-      'description' => 'YamlDiscovery component unit tests.',
-      'group' => 'Discovery',
-    );
-  }
-
   /**
    * Tests the YAML file discovery.
    */
diff --git a/core/tests/Drupal/Tests/Component/Graph/GraphTest.php b/core/tests/Drupal/Tests/Component/Graph/GraphTest.php
index 4d9b373..4049a26 100644
--- a/core/tests/Drupal/Tests/Component/Graph/GraphTest.php
+++ b/core/tests/Drupal/Tests/Component/Graph/GraphTest.php
@@ -11,21 +11,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Unit tests for the graph handling features.
- *
- * @see \Drupal\Component\Graph\Graph
+ * @coversDefaultClass \Drupal\Component\Graph\Graph
  * @group Graph
  */
 class GraphTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Directed acyclic graph manipulation',
-      'description' => 'Depth first search and sort unit tests.',
-      'group' => 'Graph',
-    );
-  }
-
   /**
    * Test depth-first-search features.
    */
diff --git a/core/tests/Drupal/Tests/Component/Image/ImageUtilityTest.php b/core/tests/Drupal/Tests/Component/Image/ImageUtilityTest.php
index e31f8bb..3c51ca9 100644
--- a/core/tests/Drupal/Tests/Component/Image/ImageUtilityTest.php
+++ b/core/tests/Drupal/Tests/Component/Image/ImageUtilityTest.php
@@ -11,20 +11,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the Image utility component.
- *
- * @see \Drupal\Component\Utility\Image
+ * @coversDefaultClass \Drupal\Component\Utility\Image
+ * @group Image
  */
 class ImageUtilityTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Tests for the Image component',
-      'description' => 'Tests all control flow branches in \Drupal\Component\Utility\Image.',
-      'group' => 'Image',
-    );
-  }
-
   /**
    * Tests all control flow branches in image_dimensions_scale().
    *
diff --git a/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageReadOnlyTest.php b/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageReadOnlyTest.php
index a907a07..e0497b8 100644
--- a/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageReadOnlyTest.php
+++ b/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageReadOnlyTest.php
@@ -11,12 +11,8 @@
 use Drupal\Component\PhpStorage\FileReadOnlyStorage;
 
 /**
- * Tests the simple file storage.
- *
- * @group Drupal
- * @group PhpStorage
- *
  * @coversDefaultClass \Drupal\Component\PhpStorage\FileReadOnlyStorage
+ * @group PhpStorage
  */
 class FileStorageReadOnlyTest extends PhpStorageTestBase {
 
@@ -37,17 +33,6 @@ class FileStorageReadOnlyTest extends PhpStorageTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Simple read only file storage',
-      'description' => 'Tests the FileStorageReadOnly implementation.',
-      'group' => 'PHP Storage',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php b/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php
index 93015a4..80dac1b 100644
--- a/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php
+++ b/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php
@@ -10,12 +10,8 @@
 use Drupal\Component\PhpStorage\FileStorage;
 
 /**
- * Tests the simple file storage.
- *
- * @group Drupal
- * @group PhpStorage
- *
  * @coversDefaultClass \Drupal\Component\PhpStorage\FileStorage
+ * @group PhpStorage
  */
 class FileStorageTest extends PhpStorageTestBase {
 
@@ -29,17 +25,6 @@ class FileStorageTest extends PhpStorageTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Simple file storage',
-      'description' => 'Tests the FileStorage implementation.',
-      'group' => 'PHP Storage',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Component/PhpStorage/MTimeProtectedFastFileStorageTest.php b/core/tests/Drupal/Tests/Component/PhpStorage/MTimeProtectedFastFileStorageTest.php
index 306ff14..2fad11a 100644
--- a/core/tests/Drupal/Tests/Component/PhpStorage/MTimeProtectedFastFileStorageTest.php
+++ b/core/tests/Drupal/Tests/Component/PhpStorage/MTimeProtectedFastFileStorageTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\Tests\Component\PhpStorage;
 
 /**
- * Tests the directory mtime based PHP loader implementation.
+ * Tests the MTimeProtectedFastFileStorage implementation.
+ *
+ * @group PhpStorage
  */
 class MTimeProtectedFastFileStorageTest extends MTimeProtectedFileStorageBase {
 
@@ -26,15 +28,4 @@ class MTimeProtectedFastFileStorageTest extends MTimeProtectedFileStorageBase {
    */
   protected $storageClass = 'Drupal\Component\PhpStorage\MTimeProtectedFastFileStorage';
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'MTime protected fast file storage',
-      'description' => 'Tests the MTimeProtectedFastFileStorage implementation.',
-      'group' => 'PHP Storage',
-    );
-  }
-
 }
diff --git a/core/tests/Drupal/Tests/Component/PhpStorage/MTimeProtectedFileStorageTest.php b/core/tests/Drupal/Tests/Component/PhpStorage/MTimeProtectedFileStorageTest.php
index 58cd7ca..edf9e32 100644
--- a/core/tests/Drupal/Tests/Component/PhpStorage/MTimeProtectedFileStorageTest.php
+++ b/core/tests/Drupal/Tests/Component/PhpStorage/MTimeProtectedFileStorageTest.php
@@ -8,7 +8,9 @@
 namespace Drupal\Tests\Component\PhpStorage;
 
 /**
- * Tests the directory mtime based PHP loader implementation.
+ * Tests the MTimeProtectedFileStorage implementation.
+ *
+ * @group PhpStorage
  */
 class MTimeProtectedFileStorageTest extends MTimeProtectedFileStorageBase {
 
@@ -25,15 +27,4 @@ class MTimeProtectedFileStorageTest extends MTimeProtectedFileStorageBase {
    */
   protected $storageClass = 'Drupal\Component\PhpStorage\MTimeProtectedFileStorage';
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'MTime protected file storage',
-      'description' => 'Tests the MTimeProtectedFileStorage implementation.',
-      'group' => 'PHP Storage',
-    );
-  }
-
 }
diff --git a/core/tests/Drupal/Tests/Component/Plugin/PluginBaseTest.php b/core/tests/Drupal/Tests/Component/Plugin/PluginBaseTest.php
index 431499b..94e85f2 100644
--- a/core/tests/Drupal/Tests/Component/Plugin/PluginBaseTest.php
+++ b/core/tests/Drupal/Tests/Component/Plugin/PluginBaseTest.php
@@ -11,22 +11,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the plugin base.
- *
- * @group Drupal
- *
- * @see \Drupal\Component\Plugin\PluginBase
+ * @coversDefaultClass \Drupal\Component\Plugin\PluginBase
+ * @group Plugin
  */
 class PluginBaseTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Plugin base test',
-      'description' => 'Tests the plugin base',
-      'group' => 'Plugin',
-    );
-  }
-
   /**
    * Tests the getPluginId method.
    *
diff --git a/core/tests/Drupal/Tests/Component/Serialization/JsonTest.php b/core/tests/Drupal/Tests/Component/Serialization/JsonTest.php
index 015a14a..bb2d27a3 100644
--- a/core/tests/Drupal/Tests/Component/Serialization/JsonTest.php
+++ b/core/tests/Drupal/Tests/Component/Serialization/JsonTest.php
@@ -11,9 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the Json::encode() and Json::decode() functions.
- *
- * @see \Drupal\Component\Serialization\Json
+ * @coversDefaultClass \Drupal\Component\Serialization\Json
+ * @group Serialization
  */
 class JsonTest extends UnitTestCase {
 
@@ -39,14 +38,6 @@ class JsonTest extends UnitTestCase {
   protected $htmlUnsafeEscaped;
 
 
-  public static function getInfo() {
-    return array(
-      'name' => 'JSON',
-      'description' => 'Tests the Json::encode() and Json::decode() functions to convert PHP variables to JSON strings and back.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Component/Utility/BytesTest.php b/core/tests/Drupal/Tests/Component/Utility/BytesTest.php
index 34f0be2..bfacd6c 100644
--- a/core/tests/Drupal/Tests/Component/Utility/BytesTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/BytesTest.php
@@ -11,26 +11,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests bytes size parsing helper methods.
- *
- * @group Drupal
- * @group Utility
  * @coversDefaultClass \Drupal\Component\Utility\Bytes
+ * @group Utility
  */
 class BytesTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Bytes utility helpers',
-      'description' => '',
-      'group' => 'Utility',
-    );
-  }
-
-  /**
    * Tests \Drupal\Component\Utility\Bytes::toInt().
    *
    * @param int $size
diff --git a/core/tests/Drupal/Tests/Component/Utility/CryptTest.php b/core/tests/Drupal/Tests/Component/Utility/CryptTest.php
index ee0d602..94929ee 100644
--- a/core/tests/Drupal/Tests/Component/Utility/CryptTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/CryptTest.php
@@ -11,22 +11,11 @@
 use Drupal\Component\Utility\Crypt;
 
 /**
- * Tests random bytes generation.
- *
- * @see \Drupal\Component\Utility\Crypt
- *
- * @group Drupal
- * @group Crypt
+ * @coversDefaultClass \Drupal\Component\Utility\Crypt
+ * @group Utility
  */
 class CryptTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Crypt generator tests',
-      'description' => 'Test functionality of Crypt component.',
-    );
-  }
-
   /**
    * Tests \Drupal\Component\Utility\Crypt::randomBytes().
    */
diff --git a/core/tests/Drupal/Tests/Component/Utility/EnvironmentTest.php b/core/tests/Drupal/Tests/Component/Utility/EnvironmentTest.php
index 158278d..d7713e0 100644
--- a/core/tests/Drupal/Tests/Component/Utility/EnvironmentTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/EnvironmentTest.php
@@ -11,26 +11,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests PHP environment helper class.
- *
- * @group Drupal
- * @group Utility
  * @coversDefaultClass \Drupal\Component\Utility\Environment
+ * @group Utility
  */
 class EnvironmentTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'PHP environment utility helpers',
-      'description' => '',
-      'group' => 'Utility',
-    );
-  }
-
-  /**
    * Tests \Drupal\Component\Utility\Environment::checkMemoryLimit().
    *
    * @param string $required
diff --git a/core/tests/Drupal/Tests/Component/Utility/NestedArrayTest.php b/core/tests/Drupal/Tests/Component/Utility/NestedArrayTest.php
index 08c9f78..ee1e305 100644
--- a/core/tests/Drupal/Tests/Component/Utility/NestedArrayTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/NestedArrayTest.php
@@ -11,11 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the NestedArray helper class.
- *
- * @group System
- *
  * @coversDefaultClass \Drupal\Component\Utility\NestedArray
+ * @group Utility
  */
 class NestedArrayTest extends UnitTestCase {
 
@@ -36,17 +33,6 @@ class NestedArrayTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'NestedArray functionality',
-      'description' => 'Tests the NestedArray helper class.',
-      'group' => 'System',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Component/Utility/NumberAlphadecimalTest.php b/core/tests/Drupal/Tests/Component/Utility/NumberAlphadecimalTest.php
index d1c9d83..01d2c2b 100644
--- a/core/tests/Drupal/Tests/Component/Utility/NumberAlphadecimalTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/NumberAlphadecimalTest.php
@@ -11,26 +11,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Unit tests for the number alphadecimal functions.
- *
- * @see \Drupal\Component\Utility\Number
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Component\Utility\Number
+ * @group Utility
  */
 class NumberAlphadecimalTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Number alphadecimal functions',
-      'description' => 'Tests alphadecimal number conversion functions.',
-      'group' => 'Common',
-    );
-  }
-
-  /**
    * Tests the alphadecimal conversion functions.
    *
    * @param int $value
diff --git a/core/tests/Drupal/Tests/Component/Utility/NumberTest.php b/core/tests/Drupal/Tests/Component/Utility/NumberTest.php
index 06daa25..d1d1ea2 100644
--- a/core/tests/Drupal/Tests/Component/Utility/NumberTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/NumberTest.php
@@ -14,17 +14,11 @@
 
 /**
  * Tests number step validation by Number::validStep().
+ *
+ * @group Utility
  */
 class NumberTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Number step validation',
-      'description' => 'Tests number step validation by Number::validStep()',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests Number::validStep() without offset.
    *
diff --git a/core/tests/Drupal/Tests/Component/Utility/RandomTest.php b/core/tests/Drupal/Tests/Component/Utility/RandomTest.php
index a3e7b8c..cda119e 100644
--- a/core/tests/Drupal/Tests/Component/Utility/RandomTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/RandomTest.php
@@ -12,9 +12,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests random data generation.
- *
- * @see \Drupal\Component\Utility\Random
+ * @coversDefaultClass \Drupal\Component\Utility\Random
+ * @group Utility
  */
 class RandomTest extends UnitTestCase {
 
@@ -27,14 +26,6 @@ class RandomTest extends UnitTestCase {
    */
   protected $firstStringGenerated = '';
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Random data generation tests',
-      'description' => 'Confirm that Random::name() and Random::string() work correctly.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests unique random string generation.
    *
diff --git a/core/tests/Drupal/Tests/Component/Utility/SortArrayTest.php b/core/tests/Drupal/Tests/Component/Utility/SortArrayTest.php
index 6a5d5a1..ed1357b 100644
--- a/core/tests/Drupal/Tests/Component/Utility/SortArrayTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/SortArrayTest.php
@@ -11,20 +11,11 @@
 use Drupal\Component\Utility\SortArray;
 
 /**
- * Tests the SortArray component.
- *
- * @see \Drupal\Component\Utility\SortArray
+ * @coversDefaultClass \Drupal\Component\Utility\SortArray
+ * @group Utility
  */
 class SortArrayTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'SortArray test',
-      'description' => 'Test that the SortArray functions work properly.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests SortArray::sortByWeightElement() input against expected output.
    *
diff --git a/core/tests/Drupal/Tests/Component/Utility/StringTest.php b/core/tests/Drupal/Tests/Component/Utility/StringTest.php
index 10e3af7..21127b5 100644
--- a/core/tests/Drupal/Tests/Component/Utility/StringTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/StringTest.php
@@ -11,20 +11,11 @@
 use Drupal\Component\Utility\String;
 
 /**
- * Tests string filtering.
- *
- * @see \Drupal\Component\Utility\String
+ * @coversDefaultClass \Drupal\Component\Utility\String
+ * @group Utility
  */
 class StringTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'String filtering tests',
-      'description' => 'Confirm that String::checkPlain() and String::format() work correctly, including invalid multi-byte sequences.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests String::checkPlain().
    *
diff --git a/core/tests/Drupal/Tests/Component/Utility/TimerTest.php b/core/tests/Drupal/Tests/Component/Utility/TimerTest.php
index cc6aca7..f306896 100644
--- a/core/tests/Drupal/Tests/Component/Utility/TimerTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/TimerTest.php
@@ -11,20 +11,11 @@
 use Drupal\Component\Utility\Timer;
 
 /**
- * Tests the Timer system.
- *
- * @see \Drupal\Component\Utility\Timer
+ * @coversDefaultClass \Drupal\Component\Utility\Timer
+ * @group Utility
  */
 class TimerTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Timer test',
-      'description' => 'Test that Timer::read() works both when a timer is running and when a timer is stopped.',
-      'group' => 'Bootstrap',
-    );
-  }
-
   /**
    * Tests Timer::read() time accumulation accuracy across multiple restarts.
    *
diff --git a/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php b/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php
index 350fa25..1900967 100644
--- a/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php
@@ -11,23 +11,11 @@
 use Drupal\Component\Utility\Unicode;
 
 /**
- * Test unicode handling features implemented in Unicode component.
- *
- * @see \Drupal\Component\Utility\Unicode
- *
- * @group Drupal
- * @group Unicode
+ * @coversDefaultClass \Drupal\Component\Utility\Unicode
+ * @group Utility
  */
 class UnicodeTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Unicode handling',
-      'description' => 'Tests Drupal Unicode handling.',
-      'group' => 'System',
-    );
-  }
-
   public function setUp() {
     // Initialize unicode component.
     Unicode::check();
diff --git a/core/tests/Drupal/Tests/Component/Utility/UrlHelperTest.php b/core/tests/Drupal/Tests/Component/Utility/UrlHelperTest.php
index 6fa2e4e..34baf57 100644
--- a/core/tests/Drupal/Tests/Component/Utility/UrlHelperTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/UrlHelperTest.php
@@ -13,20 +13,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the http query methods.
- *
- * @see \Drupal\Component\Utility\Url
+ * @coversDefaultClass \Drupal\Component\Utility\Url
+ * @group Utility
  */
 class UrlHelperTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'UrlHelper Tests',
-      'description' => 'Tests the UrlHelper utility class.',
-      'group' => 'Path API',
-    );
-  }
-
   /**
    * Provides test data for testBuildQuery().
    *
diff --git a/core/tests/Drupal/Tests/Component/Utility/XssTest.php b/core/tests/Drupal/Tests/Component/Utility/XssTest.php
index 72aade4..a682fb1 100644
--- a/core/tests/Drupal/Tests/Component/Utility/XssTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/XssTest.php
@@ -13,26 +13,17 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the Xss utility.
+ * @coversDefaultClass \Drupal\Component\Utility\Xss
+ * @group Utility
  *
  * Script injection vectors mostly adopted from http://ha.ckers.org/xss.html.
  *
  * Relevant CVEs:
  * - CVE-2002-1806, ~CVE-2005-0682, ~CVE-2005-2106, CVE-2005-3973,
  *   CVE-2006-1226 (= rev. 1.112?), CVE-2008-0273, CVE-2008-3740.
- *
- * @see \Drupal\Component\Utility\Xss
  */
 class XssTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Xss filter tests',
-      'description' => 'Confirm that Xss::filter() works as expected.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php b/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php
index 17349e1..1f00819 100644
--- a/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php
+++ b/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php
@@ -16,21 +16,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the Drupal\Component\Uuid\Uuid class.
+ * Tests the handling of Universally Unique Identifiers (UUIDs).
  *
- * @group Drupal
- * @group UUID
+ * @group Uuid
  */
 class UuidTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'UUID handling',
-      'description' => "Test the handling of Universally Unique Identifiers (UUIDs).",
-      'group' => 'UUID',
-    );
-  }
-
   /**
    * Tests generating valid UUIDs.
    *
diff --git a/core/tests/Drupal/Tests/Core/Access/AccessArgumentsResolverTest.php b/core/tests/Drupal/Tests/Core/Access/AccessArgumentsResolverTest.php
index 1aa8171..2a46556 100644
--- a/core/tests/Drupal/Tests/Core/Access/AccessArgumentsResolverTest.php
+++ b/core/tests/Drupal/Tests/Core/Access/AccessArgumentsResolverTest.php
@@ -15,9 +15,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the access arguments resolver.
- *
  * @coversDefaultClass \Drupal\Core\Access\AccessArgumentsResolver
+ * @group Access
  */
 class AccessArgumentsResolverTest extends UnitTestCase {
 
@@ -38,17 +37,6 @@ class AccessArgumentsResolverTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Access arguments resolver tests',
-      'description' => 'Test for the AccessArgumentsResolver object.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $this->account = $this->getMock('Drupal\Core\Session\AccountInterface');
diff --git a/core/tests/Drupal/Tests/Core/Access/AccessManagerTest.php b/core/tests/Drupal/Tests/Core/Access/AccessManagerTest.php
index bb43565..004067c 100644
--- a/core/tests/Drupal/Tests/Core/Access/AccessManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Access/AccessManagerTest.php
@@ -21,9 +21,8 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Tests the access manager.
- *
- * @see \Drupal\Core\Access\AccessManager
+ * @coversDefaultClass \Drupal\Core\Access\AccessManager
+ * @group Access
  */
 class AccessManagerTest extends UnitTestCase {
 
@@ -83,14 +82,6 @@ class AccessManagerTest extends UnitTestCase {
    */
   protected $argumentsResolver;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Access manager tests',
-      'description' => 'Test for the AccessManager object.',
-      'group' => 'Routing',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Access/CsrfAccessCheckTest.php b/core/tests/Drupal/Tests/Core/Access/CsrfAccessCheckTest.php
index de621887..a4319db 100644
--- a/core/tests/Drupal/Tests/Core/Access/CsrfAccessCheckTest.php
+++ b/core/tests/Drupal/Tests/Core/Access/CsrfAccessCheckTest.php
@@ -14,12 +14,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the CSRF access checker.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\Access\CsrfAccessCheck
  * @group Access
- *
- * @see \Drupal\Core\Access\CsrfAccessCheck
  */
 class CsrfAccessCheckTest extends UnitTestCase {
 
@@ -44,14 +40,6 @@ class CsrfAccessCheckTest extends UnitTestCase {
    */
   protected $account;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CSRF access checker',
-      'description' => 'Tests CSRF access control for routes.',
-      'group' => 'Routing',
-    );
-  }
-
   public function setUp() {
     $this->csrfToken = $this->getMockBuilder('Drupal\Core\Access\CsrfTokenGenerator')
       ->disableOriginalConstructor()
diff --git a/core/tests/Drupal/Tests/Core/Access/CsrfTokenGeneratorTest.php b/core/tests/Drupal/Tests/Core/Access/CsrfTokenGeneratorTest.php
index ca8c59d..cb8330f 100644
--- a/core/tests/Drupal/Tests/Core/Access/CsrfTokenGeneratorTest.php
+++ b/core/tests/Drupal/Tests/Core/Access/CsrfTokenGeneratorTest.php
@@ -14,7 +14,9 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the CSRF token generator.
+ * Tests the CsrfTokenGenerator class.
+ *
+ * @group Access
  */
 class CsrfTokenGeneratorTest extends UnitTestCase {
 
@@ -32,14 +34,6 @@ class CsrfTokenGeneratorTest extends UnitTestCase {
    */
   protected $privateKey;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CsrfTokenGenerator test',
-      'description' => 'Tests the CsrfTokenGenerator class.',
-      'group' => 'Access'
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Access/CustomAccessCheckTest.php b/core/tests/Drupal/Tests/Core/Access/CustomAccessCheckTest.php
index dca5620..23f500d 100644
--- a/core/tests/Drupal/Tests/Core/Access/CustomAccessCheckTest.php
+++ b/core/tests/Drupal/Tests/Core/Access/CustomAccessCheckTest.php
@@ -14,9 +14,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the custom access checker.
- *
- * @see \Drupal\Core\Access\CustomAccessCheck
+ * @coversDefaultClass \Drupal\Core\Access\CustomAccessCheck
+ * @group Access
  */
 class CustomAccessCheckTest extends UnitTestCase {
 
@@ -41,14 +40,6 @@ class CustomAccessCheckTest extends UnitTestCase {
    */
   protected $argumentsResolver;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Custom access check',
-      'description' => 'Tests the custom access checker.',
-      'group' => 'Access'
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Access/DefaultAccessCheckTest.php b/core/tests/Drupal/Tests/Core/Access/DefaultAccessCheckTest.php
index d452aa1..0af32a4 100644
--- a/core/tests/Drupal/Tests/Core/Access/DefaultAccessCheckTest.php
+++ b/core/tests/Drupal/Tests/Core/Access/DefaultAccessCheckTest.php
@@ -14,9 +14,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Defines a test to check the default access checker.
- *
- * @see \Drupal\Core\Access\DefaultAccessCheck
+ * @coversDefaultClass \Drupal\Core\Access\DefaultAccessCheck
+ * @group Access
  */
 class DefaultAccessCheckTest extends UnitTestCase {
 
@@ -34,14 +33,6 @@ class DefaultAccessCheckTest extends UnitTestCase {
    */
   protected $account;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'DefaultAccessCheck access checker',
-      'description' => 'Tests the DefaultAccessCheck class.',
-      'group' => 'Routing',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Access/RouteProcessorCsrfTest.php b/core/tests/Drupal/Tests/Core/Access/RouteProcessorCsrfTest.php
index 3cf0803..5ade935 100644
--- a/core/tests/Drupal/Tests/Core/Access/RouteProcessorCsrfTest.php
+++ b/core/tests/Drupal/Tests/Core/Access/RouteProcessorCsrfTest.php
@@ -12,12 +12,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the CSRF route processor.
- *
- * @see Drupal
- * @see Routing
- *
- * @see \Drupal\Core\Access\RouteProcessorCsrf
+ * @coversDefaultClass \Drupal\Core\Access\RouteProcessorCsrf
+ * @group Access
  */
 class RouteProcessorCsrfTest extends UnitTestCase {
 
@@ -35,14 +31,6 @@ class RouteProcessorCsrfTest extends UnitTestCase {
    */
   protected $processor;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CSRF access checker',
-      'description' => 'Tests CSRF access control for routes.',
-      'group' => 'Routing',
-    );
-  }
-
   public function setUp() {
     $this->csrfToken = $this->getMockBuilder('Drupal\Core\Access\CsrfTokenGenerator')
       ->disableOriginalConstructor()
diff --git a/core/tests/Drupal/Tests/Core/Ajax/AjaxCommandsTest.php b/core/tests/Drupal/Tests/Core/Ajax/AjaxCommandsTest.php
index 0384148..8e61768 100644
--- a/core/tests/Drupal/Tests/Core/Ajax/AjaxCommandsTest.php
+++ b/core/tests/Drupal/Tests/Core/Ajax/AjaxCommandsTest.php
@@ -33,21 +33,12 @@
 use Drupal\Core\Ajax\RedirectCommand;
 
 /**
- * Tests for all AJAX Commands.
+ * Tests that each AJAX command object can be created and rendered.
  *
- * @group Drupal
  * @group Ajax
  */
 class AjaxCommandsTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Ajax Command Objects',
-      'description' => 'Test that each AJAX command object can be created and rendered',
-      'group' => 'AJAX',
-    );
-  }
-
   /**
    * Tests that AddCssCommand objects can be constructed and rendered.
    */
diff --git a/core/tests/Drupal/Tests/Core/Ajax/AjaxResponseRendererTest.php b/core/tests/Drupal/Tests/Core/Ajax/AjaxResponseRendererTest.php
index bfc6c9c..035c1e4 100644
--- a/core/tests/Drupal/Tests/Core/Ajax/AjaxResponseRendererTest.php
+++ b/core/tests/Drupal/Tests/Core/Ajax/AjaxResponseRendererTest.php
@@ -14,9 +14,8 @@
 use Symfony\Component\HttpFoundation\JsonResponse;
 
 /**
- * Tests \Drupal\Core\Ajax\AjaxResponseRenderer.
- *
- * @coversClass \Drupal\Core\Ajax\AjaxResponseRenderer
+ * @coversDefaultClass \Drupal\Core\Ajax\AjaxResponseRenderer
+ * @group Ajax
  */
 class AjaxResponseRendererTest extends UnitTestCase {
 
@@ -30,17 +29,6 @@ class AjaxResponseRendererTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Tests \Drupal\Core\Ajax\AjaxResponseRenderer.',
-      'description' => '',
-      'group' => 'Ajax',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->ajaxResponseRenderer = new TestAjaxResponseRenderer();
   }
diff --git a/core/tests/Drupal/Tests/Core/Ajax/AjaxResponseTest.php b/core/tests/Drupal/Tests/Core/Ajax/AjaxResponseTest.php
index fae9080..0ddb9a4 100644
--- a/core/tests/Drupal/Tests/Core/Ajax/AjaxResponseTest.php
+++ b/core/tests/Drupal/Tests/Core/Ajax/AjaxResponseTest.php
@@ -11,9 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the AJAX response object.
- *
- * @see \Drupal\Core\Ajax\AjaxResponse
+ * @coversDefaultClass \Drupal\Core\Ajax\AjaxResponse
+ * @group Ajax
  */
 class AjaxResponseTest extends UnitTestCase {
 
@@ -24,14 +23,6 @@ class AjaxResponseTest extends UnitTestCase {
    */
   protected $ajaxResponse;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Ajax Response Object',
-      'description' => 'Tests the AJAX response object.',
-      'group' => 'Ajax',
-    );
-  }
-
   protected function setUp() {
     $this->ajaxResponse = new AjaxResponse();
   }
diff --git a/core/tests/Drupal/Tests/Core/Annotation/TranslationTest.php b/core/tests/Drupal/Tests/Core/Annotation/TranslationTest.php
index bcfe00d..5255791 100644
--- a/core/tests/Drupal/Tests/Core/Annotation/TranslationTest.php
+++ b/core/tests/Drupal/Tests/Core/Annotation/TranslationTest.php
@@ -11,9 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the Translation annotation.
- *
- * @covers \Drupal\Core\Annotation\Translation
+ * @coversDefaultClass \Drupal\Core\Annotation\Translation
+ * @group Annotation
  */
 class TranslationTest extends UnitTestCase {
 
@@ -27,17 +26,6 @@ class TranslationTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\Core\Annotation\Translation unit test',
-      'group' => 'System',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->translationManager = $this->getStringTranslationStub();
   }
diff --git a/core/tests/Drupal/Tests/Core/Asset/CssCollectionGrouperUnitTest.php b/core/tests/Drupal/Tests/Core/Asset/CssCollectionGrouperUnitTest.php
index adf5e88..ff250af 100644
--- a/core/tests/Drupal/Tests/Core/Asset/CssCollectionGrouperUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Asset/CssCollectionGrouperUnitTest.php
@@ -12,7 +12,7 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the CssCollectionGrouper class.
+ * Tests the CSS asset collection grouper.
  *
  * @group Asset
  */
@@ -25,14 +25,6 @@ class CssCollectionGrouperUnitTest extends UnitTestCase {
    */
   protected $grouper;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CSS asset collection grouper functionality',
-      'description' => 'Tests the CSS asset collection grouper.',
-      'group' => 'Asset handling',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php b/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php
index 6cd69c6..c04be0a 100644
--- a/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php
@@ -36,7 +36,7 @@ function file_create_url($uri) {
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the CssCollectionRenderer class.
+ * Tests the CSS asset collection renderer.
  *
  * @group Asset
  */
@@ -70,14 +70,6 @@ class CssCollectionRendererUnitTest extends UnitTestCase {
    */
   protected $state;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CSS asset collection renderer functionality',
-      'description' => 'Tests the CSS asset collection renderer.',
-      'group' => 'Asset handling',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php b/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php
index 2fbf619..da5f590 100644
--- a/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php
@@ -42,7 +42,7 @@ function file_uri_scheme($uri) {
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the CssOptimizer class.
+ * Tests the CSS asset optimizer.
  *
  * @group Asset
  */
@@ -69,14 +69,6 @@ class CssOptimizerUnitTest extends UnitTestCase {
    */
   protected $inline_css_group;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CSS asset optimizer functionality',
-      'description' => 'Tests the CSS asset optimizer.',
-      'group' => 'Asset handling',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryCollectorTest.php b/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryCollectorTest.php
index 5406648..8a0935e 100644
--- a/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryCollectorTest.php
+++ b/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryCollectorTest.php
@@ -7,9 +7,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the library discovery parser.
- *
  * @coversDefaultClass \Drupal\Core\Asset\LibraryDiscoveryCollector
+ * @group Asset
  */
 class LibraryDiscoveryCollectorTest extends UnitTestCase {
 
@@ -60,17 +59,6 @@ class LibraryDiscoveryCollectorTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Tests \Drupal\Core\Asset\LibraryDiscoveryCollector',
-      'description' => '',
-      'group' => 'Asset handling',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->cache = $this->getMock('Drupal\Core\Cache\CacheBackendInterface');
     $this->lock = $this->getMock('Drupal\Core\Lock\LockBackendInterface');
diff --git a/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryParserTest.php b/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryParserTest.php
index ccf9aa9..15b323d 100644
--- a/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryParserTest.php
+++ b/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryParserTest.php
@@ -29,9 +29,8 @@
 }
 
 /**
- * Tests the library discovery parser.
- *
  * @coversDefaultClass \Drupal\Core\Asset\LibraryDiscoveryParser
+ * @group Asset
  */
 class LibraryDiscoveryParserTest extends UnitTestCase {
 
@@ -66,17 +65,6 @@ class LibraryDiscoveryParserTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Tests \Drupal\Core\Asset\LibraryDiscoveryParser',
-      'description' => '',
-      'group' => 'Asset handling',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->moduleHandler = $this->getMock('Drupal\Core\Extension\ModuleHandlerInterface');
     $this->libraryDiscoveryParser = new TestLibraryDiscoveryParser($this->moduleHandler);
diff --git a/core/tests/Drupal/Tests/Core/Batch/PercentagesTest.php b/core/tests/Drupal/Tests/Core/Batch/PercentagesTest.php
index dd6f48f..d415d0b 100644
--- a/core/tests/Drupal/Tests/Core/Batch/PercentagesTest.php
+++ b/core/tests/Drupal/Tests/Core/Batch/PercentagesTest.php
@@ -11,24 +11,15 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Unit tests of progress percentage rounding.
+ * @coversDefaultClass \Drupal\Component\Batch\Batch
+ * @group Batch
  *
  * Tests the Batch helper object to make sure that the rounding works properly
  * in all cases.
- *
- * @see \Drupal\Component\Batch\Batch
  */
 class PercentagesTest extends UnitTestCase {
   protected $testCases = array();
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Batch percentages',
-      'description' => 'Unit tests of progress percentage rounding.',
-      'group' => 'Batch API',
-    );
-  }
-
   /**
    * Tests the format() function.
    *
diff --git a/core/tests/Drupal/Tests/Core/Breadcrumb/BreadcrumbManagerTest.php b/core/tests/Drupal/Tests/Core/Breadcrumb/BreadcrumbManagerTest.php
index 49dcad8..2aa22f0 100644
--- a/core/tests/Drupal/Tests/Core/Breadcrumb/BreadcrumbManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Breadcrumb/BreadcrumbManagerTest.php
@@ -11,12 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the breadcrumb manager.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Tests\Core\Breadcrumb\BreadcrumbManagerTest
  * @group Breadcrumb
- *
- * @covers \Drupal\Tests\Core\Breadcrumb\BreadcrumbManagerTest
  */
 class BreadcrumbManagerTest extends UnitTestCase {
 
@@ -43,17 +39,6 @@ protected function setUp() {
   }
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Breadcrumb manager',
-      'description' => 'Tests the breadcrumb manager.',
-      'group' => 'Menu'
-    );
-  }
-
-  /**
    * Tests the breadcrumb manager without any set breadcrumb.
    */
   public function testBuildWithoutBuilder() {
diff --git a/core/tests/Drupal/Tests/Core/Cache/BackendChainImplementationUnitTest.php b/core/tests/Drupal/Tests/Core/Cache/BackendChainImplementationUnitTest.php
index 1cf617b..8a9ad35 100644
--- a/core/tests/Drupal/Tests/Core/Cache/BackendChainImplementationUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Cache/BackendChainImplementationUnitTest.php
@@ -13,20 +13,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests implementation-specific functionality of the BackendChain backend.
+ * Unit test of backend chain implementation specifics.
  *
  * @group Cache
  */
 class BackendChainImplementationUnitTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Backend chain implementation',
-      'description' => 'Unit test of backend chain implementation specifics.',
-      'group' => 'Cache'
-    );
-  }
-
   /**
    * Chain that will be heavily tested.
    *
diff --git a/core/tests/Drupal/Tests/Core/Cache/CacheCollectorTest.php b/core/tests/Drupal/Tests/Core/Cache/CacheCollectorTest.php
index 05a987c..f584719 100644
--- a/core/tests/Drupal/Tests/Core/Cache/CacheCollectorTest.php
+++ b/core/tests/Drupal/Tests/Core/Cache/CacheCollectorTest.php
@@ -11,11 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the cache CacheCollector.
- *
+ * @coversDefaultClass \Drupal\Core\Cache\CacheCollector
  * @group Cache
- *
- * @see \Drupal\Core\Cache\CacheCollector
  */
 class CacheCollectorTest extends UnitTestCase {
 
@@ -47,14 +44,6 @@ class CacheCollectorTest extends UnitTestCase {
    */
   protected $collector;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CacheCollector test',
-      'description' => 'Tests the cache collector base implementaion',
-      'group' => 'Cache',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Cache/CacheContextsTest.php b/core/tests/Drupal/Tests/Core/Cache/CacheContextsTest.php
index 9a005ff..ca868e3 100644
--- a/core/tests/Drupal/Tests/Core/Cache/CacheContextsTest.php
+++ b/core/tests/Drupal/Tests/Core/Cache/CacheContextsTest.php
@@ -12,22 +12,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the CacheContexts service.
- *
+ * @coversDefaultClass \Drupal\Core\Cache\CacheContexts
  * @group Cache
- *
- * @see \Drupal\Core\Cache\CacheContexts
  */
 class CacheContextsTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'CacheContext test',
-      'description' => 'Tests cache contexts.',
-      'group' => 'Cache',
-    );
-  }
-
   public function testContextPlaceholdersAreReplaced() {
     $container = $this->getMockContainer();
     $container->expects($this->once())
diff --git a/core/tests/Drupal/Tests/Core/Cache/CacheFactoryTest.php b/core/tests/Drupal/Tests/Core/Cache/CacheFactoryTest.php
index 0f61907..4869bea 100644
--- a/core/tests/Drupal/Tests/Core/Cache/CacheFactoryTest.php
+++ b/core/tests/Drupal/Tests/Core/Cache/CacheFactoryTest.php
@@ -13,26 +13,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the cache CacheFactory.
- *
- * @group Cache
- *
  * @coversDefaultClass \Drupal\Core\Cache\CacheFactory
+ * @group Cache
  */
 class CacheFactoryTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Cache factory test',
-      'description' => 'Tests the cache CacheFactory.',
-      'group' => 'Cache',
-    );
-  }
-
-  /**
    * Test that the cache factory falls back to the built-in default service.
    *
    * @covers ::__construct
diff --git a/core/tests/Drupal/Tests/Core/Cache/NullBackendTest.php b/core/tests/Drupal/Tests/Core/Cache/NullBackendTest.php
index bb7e6ac..e9d448e 100644
--- a/core/tests/Drupal/Tests/Core/Cache/NullBackendTest.php
+++ b/core/tests/Drupal/Tests/Core/Cache/NullBackendTest.php
@@ -17,14 +17,6 @@
  */
 class NullBackendTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Cache NullBackend test',
-      'description' => 'Tests the cache NullBackend.',
-      'group' => 'Cache',
-    );
-  }
-
   /**
    * Tests that the NullBackend does not actually store variables.
    */
diff --git a/core/tests/Drupal/Tests/Core/Common/AttributesTest.php b/core/tests/Drupal/Tests/Core/Common/AttributesTest.php
index a354acd..1dafef9 100644
--- a/core/tests/Drupal/Tests/Core/Common/AttributesTest.php
+++ b/core/tests/Drupal/Tests/Core/Common/AttributesTest.php
@@ -12,17 +12,11 @@
 
 /**
  * Tests the Drupal\Core\Template\Attribute functionality.
+ *
+ * @group Common
  */
 class AttributesTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'HTML Attributes',
-      'description' => 'Tests the Drupal\Core\Template\Attribute functionality.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Provides data for the Attribute test.
    *
diff --git a/core/tests/Drupal/Tests/Core/Common/DiffArrayTest.php b/core/tests/Drupal/Tests/Core/Common/DiffArrayTest.php
index b4fc6c3..03a6080 100644
--- a/core/tests/Drupal/Tests/Core/Common/DiffArrayTest.php
+++ b/core/tests/Drupal/Tests/Core/Common/DiffArrayTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the DiffArray helper class.
+ *
+ * @group Common
  */
 class DiffArrayTest extends UnitTestCase {
 
@@ -29,14 +31,6 @@ class DiffArrayTest extends UnitTestCase {
    */
   protected $array2;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'DiffArray functionality',
-      'description' => 'Tests the DiffArray helper class.',
-      'group' => 'System',
-    );
-  }
-
   function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Common/RenderWrapperTest.php b/core/tests/Drupal/Tests/Core/Common/RenderWrapperTest.php
index 1a1b568..f0e84e1 100644
--- a/core/tests/Drupal/Tests/Core/Common/RenderWrapperTest.php
+++ b/core/tests/Drupal/Tests/Core/Common/RenderWrapperTest.php
@@ -11,18 +11,12 @@
 use Drupal\Core\Template\RenderWrapper;
 
 /**
- * Tests the \Drupal\Core\Template\RenderWrapper functionality.
+ * Tests the RenderWrapper class used for late rendering.
+ *
+ * @group Common
  */
 class RenderWrapperTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Render wrapper',
-      'description' => 'Tests the RenderWrapper class used for late rendering.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Provides data for the RenderWrapper test.
    *
diff --git a/core/tests/Drupal/Tests/Core/Common/TagsTest.php b/core/tests/Drupal/Tests/Core/Common/TagsTest.php
index 7106d73..d93ab72 100644
--- a/core/tests/Drupal/Tests/Core/Common/TagsTest.php
+++ b/core/tests/Drupal/Tests/Core/Common/TagsTest.php
@@ -11,7 +11,9 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests Tags::explodeTags and Tags::implodeTags().
+ * Tests explosion and implosion of autocomplete tags.
+ *
+ * @group Common
  */
 class TagsTest extends UnitTestCase {
 
@@ -22,14 +24,6 @@ class TagsTest extends UnitTestCase {
     '"Drupal, although it rhymes with sloopal, is as awesome as a troopal!"' => 'Drupal, although it rhymes with sloopal, is as awesome as a troopal!',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Autocomplete tags',
-      'description' => 'Tests explosion and implosion of autocomplete tags.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Explodes a series of tags.
    */
diff --git a/core/tests/Drupal/Tests/Core/Condition/ConditionAccessResolverTraitTest.php b/core/tests/Drupal/Tests/Core/Condition/ConditionAccessResolverTraitTest.php
index dc676c5..eb57beb 100644
--- a/core/tests/Drupal/Tests/Core/Condition/ConditionAccessResolverTraitTest.php
+++ b/core/tests/Drupal/Tests/Core/Condition/ConditionAccessResolverTraitTest.php
@@ -12,27 +12,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests resolving a set of conditions.
- *
  * @coversDefaultClass \Drupal\Core\Condition\ConditionAccessResolverTrait
- *
- * @group Drupal
  * @group Condition
  */
 class ConditionAccessResolverTraitTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Tests resolving a set of conditions',
-      'description' => '',
-      'group' => 'Condition',
-    );
-  }
-
-  /**
    * Tests the resolveConditions() method.
    *
    * @covers ::resolveConditions
diff --git a/core/tests/Drupal/Tests/Core/Config/CachedStorageTest.php b/core/tests/Drupal/Tests/Core/Config/CachedStorageTest.php
index a66d55b..619d57d 100644
--- a/core/tests/Drupal/Tests/Core/Config/CachedStorageTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/CachedStorageTest.php
@@ -19,14 +19,6 @@ class CachedStorageTest extends UnitTestCase {
    */
   protected $cacheFactory;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Config cached storage test',
-      'description' => 'Tests the interaction of cache and file storage in CachedStorage.',
-      'group' => 'Configuration'
-    );
-  }
-
   public function setUp() {
     $this->cacheFactory = $this->getMock('Drupal\Core\Cache\CacheFactoryInterface');
   }
diff --git a/core/tests/Drupal/Tests/Core/Config/Entity/ConfigDependencyManagerTest.php b/core/tests/Drupal/Tests/Core/Config/Entity/ConfigDependencyManagerTest.php
index b802c16..ff50e9c 100644
--- a/core/tests/Drupal/Tests/Core/Config/Entity/ConfigDependencyManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/Entity/ConfigDependencyManagerTest.php
@@ -13,19 +13,10 @@
 /**
  * Tests the ConfigDependencyManager class.
  *
- * @group Drupal
  * @group Config
  */
 class ConfigDependencyManagerTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'ConfigDependencyManager test',
-      'description' => 'Tests the ConfigDependencyManager class.',
-      'group' => 'Configuration'
-    );
-  }
-
   public function testNoConfiguration() {
     $dep_manger = new ConfigDependencyManager();
     $this->assertEmpty($dep_manger->getDependentEntities('entity', 'config_test.dynamic.entity_id:745b0ce0-aece-42dd-a800-ade5b8455e84'));
diff --git a/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityBaseUnitTest.php b/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityBaseUnitTest.php
index a824b3a..e5dea6d 100644
--- a/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityBaseUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityBaseUnitTest.php
@@ -16,8 +16,6 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\Config\Entity\ConfigEntityBase
- *
- * @group Drupal
  * @group Config
  */
 class ConfigEntityBaseUnitTest extends UnitTestCase {
@@ -95,17 +93,6 @@ class ConfigEntityBaseUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\Core\Config\Entity\ConfigEntityBase unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->id = $this->randomName();
     $values = array(
diff --git a/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityDependencyTest.php b/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityDependencyTest.php
index 6591a14..98a9d31 100644
--- a/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityDependencyTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityDependencyTest.php
@@ -13,19 +13,10 @@
 /**
  * Tests the ConfigEntityDependency class.
  *
- * @group Drupal
  * @group Config
  */
 class ConfigEntityDependencyTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'ConfigEntityDependency test',
-      'description' => 'Tests the ConfigEntityDependency class.',
-      'group' => 'Configuration'
-    );
-  }
-
   public function testEmptyDependencies() {
     $dep = new ConfigEntityDependency('config_test.dynamic.entity_id', array());
 
diff --git a/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityStorageTest.php b/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityStorageTest.php
index 12c4823..73c558f 100644
--- a/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityStorageTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityStorageTest.php
@@ -15,8 +15,7 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\Config\Entity\ConfigEntityStorage
- *
- * @group Drupal
+ * @group Config
  */
 class ConfigEntityStorageTest extends UnitTestCase {
 
@@ -106,17 +105,6 @@ class ConfigEntityStorageTest extends UnitTestCase {
 
   /**
    * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'ConfigEntityStorage unit test',
-      'description' => 'Tests \Drupal\Core\Config\Entity\ConfigEntityStorage',
-      'group' => 'Configuration',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
    *
    * @covers ::__construct()
    */
diff --git a/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityTypeTest.php b/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityTypeTest.php
index 3db843a..207315c 100644
--- a/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityTypeTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityTypeTest.php
@@ -13,24 +13,11 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\Config\Entity\ConfigEntityType
- *
- * @group Drupal
  * @group Config
  */
 class ConfigEntityTypeTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\Core\Config\Entity\ConfigEntityType unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
    * Sets up a ConfigEntityType object for a given set of values.
    *
    * @param array $definition
diff --git a/core/tests/Drupal/Tests/Core/Config/Entity/EntityDisplayModeBaseUnitTest.php b/core/tests/Drupal/Tests/Core/Config/Entity/EntityDisplayModeBaseUnitTest.php
index 314e044..63c5ae0 100644
--- a/core/tests/Drupal/Tests/Core/Config/Entity/EntityDisplayModeBaseUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/Entity/EntityDisplayModeBaseUnitTest.php
@@ -12,8 +12,6 @@
 
 /**
  * @coversDefaultClass \Drupal\entity\EntityDisplayModeBase
- *
- * @group Drupal
  * @group Config
  */
 class EntityDisplayModeBaseUnitTest extends UnitTestCase {
@@ -56,17 +54,6 @@ class EntityDisplayModeBaseUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\entity\EntityDisplayModeBase unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityType = $this->randomName();
 
diff --git a/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php b/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php
index 178be29..15962fe 100644
--- a/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php
@@ -13,8 +13,6 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\Config\StorageComparer
- *
- * @group Drupal
  * @group Config
  */
 class StorageComparerTest extends UnitTestCase {
@@ -48,14 +46,6 @@ class StorageComparerTest extends UnitTestCase {
    */
   protected $configData;
 
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\Core\Config\StorageComparer unit test',
-      'group' => 'Configuration',
-    );
-  }
-
   public function setUp() {
     $this->sourceStorage = $this->getMock('Drupal\Core\Config\StorageInterface');
     $this->targetStorage = $this->getMock('Drupal\Core\Config\StorageInterface');
diff --git a/core/tests/Drupal/Tests/Core/Controller/ControllerBaseTest.php b/core/tests/Drupal/Tests/Core/Controller/ControllerBaseTest.php
index 0345f0e..23b3950 100644
--- a/core/tests/Drupal/Tests/Core/Controller/ControllerBaseTest.php
+++ b/core/tests/Drupal/Tests/Core/Controller/ControllerBaseTest.php
@@ -11,6 +11,8 @@
 
 /**
  * Tests that the base controller class.
+ *
+ * @group Controller
  */
 class ControllerBaseTest extends UnitTestCase {
 
@@ -21,14 +23,6 @@ class ControllerBaseTest extends UnitTestCase {
    */
   protected $controllerBase;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Controller Base tests',
-      'description' => 'Tests that the base controller class.',
-      'group' => 'Routing',
-    );
-  }
-
   protected function setUp() {
     $this->controllerBase = $this->getMockForAbstractClass('Drupal\Core\Controller\ControllerBase');
   }
diff --git a/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php b/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php
index 923c94b..d245f1c 100644
--- a/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php
+++ b/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php
@@ -19,12 +19,8 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests that the Drupal-extended ControllerResolver is functioning properly.
- *
- * @see \Drupal\Core\Controller\ControllerResolver
- *
- * @group Drupal
- * @group Routing
+ * @coversDefaultClass \Drupal\Core\Controller\ControllerResolver
+ * @group Controller
  */
 class ControllerResolverTest extends UnitTestCase {
 
@@ -45,17 +41,6 @@ class ControllerResolverTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Controller Resolver tests',
-      'description' => 'Tests that the Drupal-extended ControllerResolver is functioning properly.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Controller/ExceptionControllerTest.php b/core/tests/Drupal/Tests/Core/Controller/ExceptionControllerTest.php
index 50d0172..7307780 100644
--- a/core/tests/Drupal/Tests/Core/Controller/ExceptionControllerTest.php
+++ b/core/tests/Drupal/Tests/Core/Controller/ExceptionControllerTest.php
@@ -13,22 +13,11 @@
 use Symfony\Component\Debug\Exception\FlattenException;
 
 /**
- * Tests exception controller.
- *
- * @see \Drupal\Core\Controller\ExceptionController
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\Controller\ExceptionController
+ * @group Controller
  */
 class ExceptionControllerTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Exception controller',
-      'description' => 'Performs tests on the exception handler controller class.',
-      'group' => 'System',
-    );
-  }
-
   /**
    * Ensure the execute() method returns a valid response on 405 exceptions.
    */
diff --git a/core/tests/Drupal/Tests/Core/Controller/TitleResolverTest.php b/core/tests/Drupal/Tests/Core/Controller/TitleResolverTest.php
index 94f24ca..b153d9f 100644
--- a/core/tests/Drupal/Tests/Core/Controller/TitleResolverTest.php
+++ b/core/tests/Drupal/Tests/Core/Controller/TitleResolverTest.php
@@ -15,9 +15,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the title resolver.
- *
- * @see \Drupal\Core\Controller\TitleResolver
+ * @coversDefaultClass \Drupal\Core\Controller\TitleResolver
+ * @group Controller
  */
 class TitleResolverTest extends UnitTestCase {
 
@@ -42,14 +41,6 @@ class TitleResolverTest extends UnitTestCase {
    */
   protected $titleResolver;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Title resolver',
-      'description' => 'Tests the title resolver.',
-      'group' => 'Routing',
-    );
-  }
-
   protected function setUp() {
     $this->controllerResolver = $this->getMock('\Drupal\Core\Controller\ControllerResolverInterface');
     $this->translationManager = $this->getMock('\Drupal\Core\StringTranslation\TranslationInterface');
diff --git a/core/tests/Drupal/Tests/Core/Database/ConnectionTest.php b/core/tests/Drupal/Tests/Core/Database/ConnectionTest.php
index 20667ee..cba899b 100644
--- a/core/tests/Drupal/Tests/Core/Database/ConnectionTest.php
+++ b/core/tests/Drupal/Tests/Core/Database/ConnectionTest.php
@@ -12,25 +12,13 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests Drupal\Core\Database\Connection.
+ * Tests the Connection class.
  *
- * @group Drupal
  * @group Database
  */
 class ConnectionTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Connection Test',
-      'description' => 'Test the Connection class.',
-      'group' => 'Database',
-    );
-  }
-
-  /**
    * Dataprovider for testPrefixRoundTrip().
    *
    * @return array
diff --git a/core/tests/Drupal/Tests/Core/Database/EmptyStatementTest.php b/core/tests/Drupal/Tests/Core/Database/EmptyStatementTest.php
index e1360af..693775a 100644
--- a/core/tests/Drupal/Tests/Core/Database/EmptyStatementTest.php
+++ b/core/tests/Drupal/Tests/Core/Database/EmptyStatementTest.php
@@ -13,16 +13,10 @@
 
 /**
  * Tests the empty pseudo-statement class.
+ *
+ * @group Database
  */
 class EmptyStatementTest extends UnitTestCase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Empty statement',
-      'description' => 'Test the empty pseudo-statement class.',
-      'group' => 'Database',
-    );
-  }
-
   /**
    * Tests that the empty result set behaves as empty.
    */
diff --git a/core/tests/Drupal/Tests/Core/Database/OrderByTest.php b/core/tests/Drupal/Tests/Core/Database/OrderByTest.php
index e69b11a..7152593 100644
--- a/core/tests/Drupal/Tests/Core/Database/OrderByTest.php
+++ b/core/tests/Drupal/Tests/Core/Database/OrderByTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the orderBy() method of select queries.
+ *
+ * @group Database
  */
 class OrderByTest extends UnitTestCase {
 
@@ -25,17 +27,6 @@ class OrderByTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Order by',
-      'description' => 'Tests the orderBy() method of select queries.',
-      'group' => 'Database',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $connection = $this->getMockBuilder('Drupal\Core\Database\Connection')
       ->disableOriginalConstructor()
diff --git a/core/tests/Drupal/Tests/Core/Datetime/DateTest.php b/core/tests/Drupal/Tests/Core/Datetime/DateTest.php
index 57cfe00..55a59a1 100644
--- a/core/tests/Drupal/Tests/Core/Datetime/DateTest.php
+++ b/core/tests/Drupal/Tests/Core/Datetime/DateTest.php
@@ -11,11 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the date service.
- *
- * @group Drupal
- *
- * @see \Drupal\Core\Datetime\Date
+ * @coversDefaultClass \Drupal\Core\Datetime\Date
+ * @group Datetime
  */
 class DateTest extends UnitTestCase {
 
@@ -47,17 +44,6 @@ class DateTest extends UnitTestCase {
    */
   protected $date;
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Date service test.',
-      'description' => 'Tests the date service.',
-      'group' => 'System'
-    );
-  }
-
   protected function setUp() {
     $this->entityManager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
     $this->languageManager = $this->getMock('Drupal\Core\Language\LanguageManagerInterface');
diff --git a/core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/TaggedHandlersPassTest.php b/core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/TaggedHandlersPassTest.php
index a9955bf..dd03a1f 100644
--- a/core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/TaggedHandlersPassTest.php
+++ b/core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/TaggedHandlersPassTest.php
@@ -13,26 +13,11 @@
 use Symfony\Component\DependencyInjection\Reference;
 
 /**
- * Tests the tagged handler compiler pass.
- *
- * @group Drupal
- * @group DependencyInjection
- *
  * @coversDefaultClass \Drupal\Core\DependencyInjection\Compiler\TaggedHandlersPass
+ * @group DependencyInjection
  */
 class TaggedHandlersPassTest extends UnitTestCase {
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Tests \Drupal\Core\DependencyInjection\Compiler\TaggedHandlersPass',
-      'description' => '',
-      'group' => 'Dependency injection',
-    );
-  }
-
   protected function buildContainer($environment = 'dev') {
     $container = new ContainerBuilder();
     $container->setParameter('kernel.environment', $environment);
diff --git a/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerBuilderTest.php b/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerBuilderTest.php
index fcc898f..83bae60 100644
--- a/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerBuilderTest.php
+++ b/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerBuilderTest.php
@@ -14,24 +14,12 @@
 require_once __DIR__ . '../../../../../../vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php';
 
 /**
- * Tests the dependency injection container builder overrides of Drupal.
- *
- * @see \Drupal\Core\DependencyInjection\ContainerBuilder
+ * @coversDefaultClass \Drupal\Core\DependencyInjection\ContainerBuilder
+ * @group DependencyInjection
  */
 class ContainerBuilderTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Dependency injection container builder',
-      'description' => 'Tests the dependency injection container builder overrides of Drupal.',
-      'group' => 'System'
-    );
-  }
-
-  /**
    * Tests set with a synchronized service.
    */
   public function testSetOnSynchronizedService() {
diff --git a/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerTest.php b/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerTest.php
index ff1afed..e892f22 100644
--- a/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerTest.php
+++ b/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerTest.php
@@ -11,9 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the dependency injection container overrides of Drupal.
- *
- * @see \Drupal\Core\DependencyInjection\Container
+ * @coversDefaultClass \Drupal\Core\DependencyInjection\Container
+ * @group DependencyInjection
  */
 class ContainerTest extends UnitTestCase {
 
@@ -27,17 +26,6 @@ class ContainerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Dependency injection container',
-      'description' => 'Tests the dependency injection container overrides of Drupal.',
-      'group' => 'System'
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->container = new Container();
   }
diff --git a/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php b/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php
index 2c85256..ad05400 100644
--- a/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php
+++ b/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php
@@ -14,24 +14,12 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Tests the dependency serialization trait.
- *
  * @coversDefaultClass \Drupal\Core\DependencyInjection\DependencySerializationTrait
+ * @group DependencyInjection
  */
 class DependencySerializationTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => '\Drupal\Core\DependencyInjection\DependencySerializationTrait unit test',
-      'description' => '',
-      'group' => 'System'
-    );
-  }
-
-  /**
    * @covers ::__sleep
    * @covers ::__wakeup
    */
diff --git a/core/tests/Drupal/Tests/Core/DrupalTest.php b/core/tests/Drupal/Tests/Core/DrupalTest.php
index 5ace241..9e4c4b3 100644
--- a/core/tests/Drupal/Tests/Core/DrupalTest.php
+++ b/core/tests/Drupal/Tests/Core/DrupalTest.php
@@ -12,9 +12,7 @@
 /**
  * Tests the Drupal class.
  *
- * @group Drupal
- *
- * @see \Drupal
+ * @group DrupalTest
  */
 class DrupalTest extends UnitTestCase {
 
@@ -25,14 +23,6 @@ class DrupalTest extends UnitTestCase {
    */
   protected $container;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Drupal test',
-      'description' => 'Tests the Drupal class.',
-      'group' => 'System'
-    );
-  }
-
   public function setUp() {
     $this->container = $this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerBuilder')
       ->setMethods(array('get'))
diff --git a/core/tests/Drupal/Tests/Core/Enhancer/ParamConversionEnhancerTest.php b/core/tests/Drupal/Tests/Core/Enhancer/ParamConversionEnhancerTest.php
index 5106ff7..bfc089e 100644
--- a/core/tests/Drupal/Tests/Core/Enhancer/ParamConversionEnhancerTest.php
+++ b/core/tests/Drupal/Tests/Core/Enhancer/ParamConversionEnhancerTest.php
@@ -15,9 +15,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the parameter conversion enhancer.
- *
  * @coversDefaultClass \Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
+ * @group Enhancer
  */
 class ParamConversionEnhancerTest extends UnitTestCase {
 
@@ -34,17 +33,6 @@ class ParamConversionEnhancerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Parameter conversion enhancer',
-      'description' => 'Tests the parameter conversion enhancer.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php b/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php
index 08fa85c..adb8979 100644
--- a/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php
@@ -15,8 +15,7 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\Entity\ContentEntityBase
- *
- * @group Drupal
+ * @group Entity
  */
 class ContentEntityBaseUnitTest extends UnitTestCase {
 
@@ -100,17 +99,6 @@ class ContentEntityBaseUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\Core\Entity\ContentEntityBase unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->id = 1;
     $values = array(
diff --git a/core/tests/Drupal/Tests/Core/Entity/ContentEntityDatabaseStorageTest.php b/core/tests/Drupal/Tests/Core/Entity/ContentEntityDatabaseStorageTest.php
index 49efb66..da756c6 100644
--- a/core/tests/Drupal/Tests/Core/Entity/ContentEntityDatabaseStorageTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/ContentEntityDatabaseStorageTest.php
@@ -13,11 +13,7 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 /**
- * Tests the fieldable database storage.
- *
  * @coversDefaultClass \Drupal\Core\Entity\ContentEntityDatabaseStorage
- *
- * @group Drupal
  * @group Entity
  */
 class ContentEntityDatabaseStorageTest extends UnitTestCase {
@@ -53,17 +49,6 @@ class ContentEntityDatabaseStorageTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Fieldable database storage',
-      'description' => 'Tests the fieldable database storage enhancer for entities.',
-      'group' => 'Entity'
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityType = $this->getMock('Drupal\Core\Entity\ContentEntityTypeInterface');
     $this->entityType->expects($this->any())
diff --git a/core/tests/Drupal/Tests/Core/Entity/Controller/EntityViewControllerTest.php b/core/tests/Drupal/Tests/Core/Entity/Controller/EntityViewControllerTest.php
index ac6c886..6539a2b 100644
--- a/core/tests/Drupal/Tests/Core/Entity/Controller/EntityViewControllerTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/Controller/EntityViewControllerTest.php
@@ -11,23 +11,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the entity view controller.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\Entity\Controller\EntityViewController
  * @group Entity
- *
- * @see \Drupal\Core\Entity\Controller\EntityViewController
  */
 class EntityViewControllerTest extends UnitTestCase{
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity view controller test',
-      'description' => 'Tests the entity view controller.',
-      'group' => 'Entity'
-    );
-  }
-
   /**
    * Tests the enhancer method.
    *
diff --git a/core/tests/Drupal/Tests/Core/Entity/Enhancer/EntityRouteEnhancerTest.php b/core/tests/Drupal/Tests/Core/Entity/Enhancer/EntityRouteEnhancerTest.php
index a2903a9..3727a06 100644
--- a/core/tests/Drupal/Tests/Core/Entity/Enhancer/EntityRouteEnhancerTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/Enhancer/EntityRouteEnhancerTest.php
@@ -13,23 +13,11 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the entity route enhancer.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
  * @group Entity
- *
- * @see \Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
  */
 class EntityRouteEnhancerTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity route enhancer test',
-      'description' => 'Tests the entity route enhancer.',
-      'group' => 'Entity'
-    );
-  }
-
   /**
    * Tests the enhancer method.
    *
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityAccessCheckTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityAccessCheckTest.php
index bba4419..ba5ffcf 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityAccessCheckTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityAccessCheckTest.php
@@ -14,20 +14,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the entity access controller.
+ * Unit test of entity access checking system.
  *
  * @group Entity
  */
 class EntityAccessCheckTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity access check test',
-      'description' => 'Unit test of entity access checking system.',
-      'group' => 'Entity'
-    );
-  }
-
   /**
    * Tests the method for checking access to routes.
    */
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityCreateAccessCheckTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityCreateAccessCheckTest.php
index fdf5675..e195e4c 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityCreateAccessCheckTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityCreateAccessCheckTest.php
@@ -14,11 +14,8 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the entity-create access controller.
- *
+ * @coversDefaultClass \Drupal\Core\Entity\EntityCreateAccessCheck
  * @group Entity
- *
- * @see \Drupal\Core\Entity\EntityCreateAccessCheck
  */
 class EntityCreateAccessCheckTest extends UnitTestCase {
 
@@ -29,14 +26,6 @@ class EntityCreateAccessCheckTest extends UnitTestCase {
    */
   public $entityManager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity create access check test',
-      'description' => 'Unit test of entity create access checking system.',
-      'group' => 'Entity'
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityFormBuilderTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityFormBuilderTest.php
index 42b6191..0242a44 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityFormBuilderTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityFormBuilderTest.php
@@ -7,6 +7,7 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\Entity\EntityFormBuilder
+ * @group Entity
  */
 class EntityFormBuilderTest extends UnitTestCase {
 
@@ -34,17 +35,6 @@ class EntityFormBuilderTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Form Builder test',
-      'description' => 'Unit test the entity form builder.',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityListBuilderTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityListBuilderTest.php
index 121d745..a7e0792 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityListBuilderTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityListBuilderTest.php
@@ -14,11 +14,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the entity list builder.
- *
+ * @coversDefaultClass \Drupal\entity_test\EntityTestListBuilder
  * @group Entity
- *
- * @see \Drupal\entity_test\EntityTestListBuilder
  */
 class EntityListBuilderTest extends UnitTestCase {
 
@@ -71,14 +68,6 @@ class EntityListBuilderTest extends UnitTestCase {
    */
   protected $entityListBuilder;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity list builder test',
-      'description' => 'Unit test of entity list builder system.',
-      'group' => 'Entity'
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityManagerTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityManagerTest.php
index c65883c..0a7acf4 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityManagerTest.php
@@ -24,11 +24,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Tests the \Drupal\Core\Entity\EntityManager class.
- *
  * @coversDefaultClass \Drupal\Core\Entity\EntityManager
- *
- * @group Drupal
  * @group Entity
  */
 class EntityManagerTest extends UnitTestCase {
@@ -99,17 +95,6 @@ class EntityManagerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity Manager test',
-      'description' => 'Unit test the entity manager.',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php
index 4df611c..1b1340a 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php
@@ -16,12 +16,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Provides a test for the entity resolver.
- *
- * @group Drupal
- * @group Entity
- *
  * @coversDefaultClass \Drupal\Core\Entity\EntityResolverManager
+ * @group Entity
  */
 class EntityResolverManagerTest extends UnitTestCase {
 
@@ -62,17 +58,6 @@ class EntityResolverManagerTest extends UnitTestCase {
 
   /**
    * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => '\Drupal\Core\Entity\EntityResolverManager unit test',
-      'description' => '',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
    *
    * @covers ::__construct()
    * @covers ::setContainer()
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityTypeTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityTypeTest.php
index ac29654..046744d 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityTypeTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityTypeTest.php
@@ -12,24 +12,11 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\Entity\EntityType
- *
- * @group Drupal
  * @group Entity
  */
 class EntityTypeTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Entity type test',
-      'description' => 'Unit test entity type info.',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
    * Sets up an EntityType object for a given set of values.
    *
    * @param array $definition
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php
index 3ecc8de..0ca1e85 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php
@@ -16,8 +16,7 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\Entity\Entity
- *
- * @group Drupal
+ * @group Entity
  */
 class EntityUnitTest extends UnitTestCase {
 
@@ -87,17 +86,6 @@ class EntityUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\Core\Entity\Entity unit test',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->values = array(
       'id' => 1,
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php
index bd8e53f..7f6ff8f 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php
@@ -12,11 +12,7 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the \Drupal\Core\Entity\EntityInterface URL methods.
- *
  * @coversDefaultClass \Drupal\Core\Entity\Entity
- *
- * @group Drupal
  * @group Entity
  */
 class EntityUrlTest extends UnitTestCase {
@@ -36,17 +32,6 @@ class EntityUrlTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'EntityInterface URL test',
-      'description' => 'Unit test the EntityInterface URL methods.',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Entity/FieldDefinitionTest.php b/core/tests/Drupal/Tests/Core/Entity/FieldDefinitionTest.php
index abf8505..5368574 100644
--- a/core/tests/Drupal/Tests/Core/Entity/FieldDefinitionTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/FieldDefinitionTest.php
@@ -13,7 +13,7 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests \Drupal\Core\Field\FieldDefinition.
+ * Unit test for FieldDefinition.
  *
  * @group Entity
  */
@@ -34,14 +34,6 @@ class FieldDefinitionTest extends UnitTestCase {
   protected $fieldTypeDefinition;
 
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Field definition test',
-      'description' => 'Unit test for FieldDefinition.',
-      'group' => 'Entity'
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Entity/KeyValueStore/KeyValueEntityStorageTest.php b/core/tests/Drupal/Tests/Core/Entity/KeyValueStore/KeyValueEntityStorageTest.php
index bc21d8a..f3447ba 100644
--- a/core/tests/Drupal/Tests/Core/Entity/KeyValueStore/KeyValueEntityStorageTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/KeyValueStore/KeyValueEntityStorageTest.php
@@ -16,9 +16,7 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\Entity\KeyValueStore\KeyValueEntityStorage
- *
- * @group Drupal
- * @group KeyValueEntityStorage
+ * @group Entity
  */
 class KeyValueEntityStorageTest extends UnitTestCase {
 
@@ -79,17 +77,6 @@ class KeyValueEntityStorageTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'KeyValueEntityStorage',
-      'description' => 'Tests \Drupal\Core\Entity\KeyValueStore\KeyValueEntityStorage',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $this->entityType = $this->getMock('Drupal\Core\Entity\EntityTypeInterface');
diff --git a/core/tests/Drupal/Tests/Core/Entity/Schema/ContentEntitySchemaHandlerTest.php b/core/tests/Drupal/Tests/Core/Entity/Schema/ContentEntitySchemaHandlerTest.php
index 0b91716..83b3509 100644
--- a/core/tests/Drupal/Tests/Core/Entity/Schema/ContentEntitySchemaHandlerTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/Schema/ContentEntitySchemaHandlerTest.php
@@ -13,11 +13,7 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the content entity schema handler.
- *
  * @coversDefaultClass \Drupal\Core\Entity\Schema\ContentEntitySchemaHandler
- *
- * @group Drupal
  * @group Entity
  */
 class ContentEntitySchemaHandlerTest extends UnitTestCase {
@@ -60,17 +56,6 @@ class ContentEntitySchemaHandlerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Content entity schema handler',
-      'description' => 'Tests the schema generation for content entities.',
-      'group' => 'Entity',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->entityManager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
     $this->storage = $this->getMockBuilder('Drupal\Core\Entity\ContentEntityDatabaseStorage')
diff --git a/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php b/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php
index 196ff77..18802c7 100644
--- a/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php
@@ -10,27 +10,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the default table mapping class.
- *
  * @coversDefaultClass \Drupal\Core\Entity\Sql\DefaultTableMapping
- *
- * @group Drupal
  * @group Entity
  */
 class DefaultTableMappingTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return [
-      'name' => 'Default table mapping',
-      'description' => 'Check that the default table mapping works.',
-      'group' => 'Entity',
-    ];
-  }
-
-  /**
    * Tests DefaultTableMapping::getTableNames().
    *
    * @covers ::getTableNames()
diff --git a/core/tests/Drupal/Tests/Core/EventSubscriber/AccessSubscriberTest.php b/core/tests/Drupal/Tests/Core/EventSubscriber/AccessSubscriberTest.php
index 5ec7f81..11f3565 100644
--- a/core/tests/Drupal/Tests/Core/EventSubscriber/AccessSubscriberTest.php
+++ b/core/tests/Drupal/Tests/Core/EventSubscriber/AccessSubscriberTest.php
@@ -20,12 +20,8 @@
 
 
 /**
- * Tests the AccessSubscriber class.
- *
- * @see \Drupal\Core\EventSubscriber\AccessSubscriber
- *
- * @group System
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\EventSubscriber\AccessSubscriber
+ * @group EventSubscriber
  */
 class AccessSubscriberTest extends UnitTestCase {
 
@@ -62,17 +58,6 @@ class AccessSubscriberTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Access subscriber',
-      'description' => 'Tests the access subscriber',
-      'group' => 'System',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->event = $this->getMockBuilder('Symfony\Component\HttpKernel\Event\GetResponseEvent')
       ->disableOriginalConstructor()
diff --git a/core/tests/Drupal/Tests/Core/EventSubscriber/ExceptionListenerTest.php b/core/tests/Drupal/Tests/Core/EventSubscriber/ExceptionListenerTest.php
index 6469199..5815ee1 100644
--- a/core/tests/Drupal/Tests/Core/EventSubscriber/ExceptionListenerTest.php
+++ b/core/tests/Drupal/Tests/Core/EventSubscriber/ExceptionListenerTest.php
@@ -15,12 +15,8 @@
 use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
 
 /**
- * Tests the exception listener.
- *
- * @group Drupal
- * @group Routing
- *
- * @see \Drupal\Core\EventSubscriber\ExceptionListener
+ * @coversDefaultClass \Drupal\Core\EventSubscriber\ExceptionListener
+ * @group EventSubscriber
  */
 class ExceptionListenerTest extends UnitTestCase {
 
@@ -48,17 +44,6 @@ class ExceptionListenerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Exception listener',
-      'description' => 'Tests the exception listener',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->exceptionListener = new ExceptionListener('example');
     $this->kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
diff --git a/core/tests/Drupal/Tests/Core/EventSubscriber/ModuleRouteSubscriberTest.php b/core/tests/Drupal/Tests/Core/EventSubscriber/ModuleRouteSubscriberTest.php
index 0018ffd..57607a8 100644
--- a/core/tests/Drupal/Tests/Core/EventSubscriber/ModuleRouteSubscriberTest.php
+++ b/core/tests/Drupal/Tests/Core/EventSubscriber/ModuleRouteSubscriberTest.php
@@ -14,11 +14,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the ModuleRouteSubscriber class.
- *
- * @group Drupal
- *
- * @see \Drupal\Core\EventSubscriber\ModuleRouteSubscriber
+ * @coversDefaultClass \Drupal\Core\EventSubscriber\ModuleRouteSubscriber
+ * @group EventSubscriber
  */
 class ModuleRouteSubscriberTest extends UnitTestCase {
 
@@ -29,14 +26,6 @@ class ModuleRouteSubscriberTest extends UnitTestCase {
    */
   protected $moduleHandler;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Module route subscriber',
-      'description' => 'Unit test the \Drupal\Core\EventSubscriber\ModuleRouteSubscriber class.',
-      'group' => 'System'
-    );
-  }
-
   public function setUp() {
     $this->moduleHandler = $this->getMock('Drupal\Core\Extension\ModuleHandlerInterface');
 
diff --git a/core/tests/Drupal/Tests/Core/EventSubscriber/PathRootsSubscriberTest.php b/core/tests/Drupal/Tests/Core/EventSubscriber/PathRootsSubscriberTest.php
index 565a575..02acb66 100644
--- a/core/tests/Drupal/Tests/Core/EventSubscriber/PathRootsSubscriberTest.php
+++ b/core/tests/Drupal/Tests/Core/EventSubscriber/PathRootsSubscriberTest.php
@@ -14,12 +14,8 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Tests Drupal\Core\EventSubscriber\PathRootsSubscriber.
- *
- * @group Drupal
- * @group Routing
- *
  * @coversDefaultClass \Drupal\Core\EventSubscriber\PathRootsSubscriber
+ * @group EventSubscriber
  */
 class PathRootsSubscriberTest extends UnitTestCase {
 
@@ -40,17 +36,6 @@ class PathRootsSubscriberTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Drupal\Core\EventSubscriber\PathRootsSubscriber',
-      'description' => '',
-      'group' => 'Routing'
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->state = $this->getMock('Drupal\Core\State\StateInterface');
     $this->pathRootsSubscriber = new PathRootsSubscriber($this->state);
diff --git a/core/tests/Drupal/Tests/Core/EventSubscriber/ReverseProxySubscriberUnitTest.php b/core/tests/Drupal/Tests/Core/EventSubscriber/ReverseProxySubscriberUnitTest.php
index a4570e6..2b19788 100644
--- a/core/tests/Drupal/Tests/Core/EventSubscriber/ReverseProxySubscriberUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/EventSubscriber/ReverseProxySubscriberUnitTest.php
@@ -13,20 +13,12 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the ReverseProxySubscriber.
+ * Unit test the reverse proxy event subscriber.
  *
- * @group System
+ * @group EventSubscriber
  */
 class ReverseProxySubscriberUnitTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Reverse proxy implementation',
-      'description' => 'Unit test the reverse proxy event subscriber.',
-      'group' => 'System'
-    );
-  }
-
   /**
    * Tests that subscriber does not act when reverse proxy is not set.
    */
diff --git a/core/tests/Drupal/Tests/Core/EventSubscriber/SpecialAttributesRouteSubscriberTest.php b/core/tests/Drupal/Tests/Core/EventSubscriber/SpecialAttributesRouteSubscriberTest.php
index 65ba07d..cdab44f 100644
--- a/core/tests/Drupal/Tests/Core/EventSubscriber/SpecialAttributesRouteSubscriberTest.php
+++ b/core/tests/Drupal/Tests/Core/EventSubscriber/SpecialAttributesRouteSubscriberTest.php
@@ -15,9 +15,8 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Tests the special attributes route subscriber.
- *
- * @see \Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
+ * @coversDefaultClass \Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
+ * @group EventSubscriber
  */
 class SpecialAttributesRouteSubscriberTest extends UnitTestCase {
 
@@ -28,14 +27,6 @@ class SpecialAttributesRouteSubscriberTest extends UnitTestCase {
    */
   protected  $specialAttributesRouteSubscriber;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Special attributes route subscriber',
-      'description' => 'Tests the special attributes route subscriber.',
-      'group' => 'System'
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Extension/ModuleHandlerTest.php b/core/tests/Drupal/Tests/Core/Extension/ModuleHandlerTest.php
index cfb86f2..bc5da97 100644
--- a/core/tests/Drupal/Tests/Core/Extension/ModuleHandlerTest.php
+++ b/core/tests/Drupal/Tests/Core/Extension/ModuleHandlerTest.php
@@ -12,12 +12,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the module handler.
- *
- * @group Drupal
- * @group Module
- *
  * @coversDefaultClass \Drupal\Core\Extension\ModuleHandler
+ * @group Extension
  */
 class ModuleHandlerTest extends UnitTestCase {
 
@@ -38,17 +34,6 @@ class ModuleHandlerTest extends UnitTestCase {
 
   /**
    * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Module handler',
-      'description' => 'Tests the module handler.',
-      'group' => 'Module',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
    *
    * @covers ::__construct
    */
diff --git a/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php b/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php
index 077150b..79833b8 100644
--- a/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php
+++ b/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php
@@ -16,12 +16,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the theme handler.
- *
- * @group Drupal
- * @group Theme
- *
- * @see \Drupal\Core\Extension\ThemeHandler
+ * @coversDefaultClass \Drupal\Core\Extension\ThemeHandler
+ * @group Extension
  */
 class ThemeHandlerTest extends UnitTestCase {
 
@@ -84,17 +80,6 @@ class ThemeHandlerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme handler',
-      'description' => 'Tests the theme handler.',
-      'group' => 'Theme',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->configFactory = $this->getConfigFactoryStub(array(
       'core.extension' => array(
diff --git a/core/tests/Drupal/Tests/Core/ExternalUrlTest.php b/core/tests/Drupal/Tests/Core/ExternalUrlTest.php
index c44e302..ce0fb84 100644
--- a/core/tests/Drupal/Tests/Core/ExternalUrlTest.php
+++ b/core/tests/Drupal/Tests/Core/ExternalUrlTest.php
@@ -14,12 +14,8 @@
 use Symfony\Component\Routing\Exception\ResourceNotFoundException;
 
 /**
- * Tests the \Drupal\Core\Url class for external paths.
- *
- * @group Drupal
- * @group Url
- *
  * @coversDefaultClass \Drupal\Core\Url
+ * @group ExternalUrlTest
  */
 class ExternalUrlTest extends UnitTestCase {
 
@@ -47,17 +43,6 @@ class ExternalUrlTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Url object (external)',
-      'description' => 'Tests the \Drupal\Core\Url class with external paths.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Form/ConfirmFormHelperTest.php b/core/tests/Drupal/Tests/Core/Form/ConfirmFormHelperTest.php
index f7d142c..06a4802 100644
--- a/core/tests/Drupal/Tests/Core/Form/ConfirmFormHelperTest.php
+++ b/core/tests/Drupal/Tests/Core/Form/ConfirmFormHelperTest.php
@@ -13,27 +13,12 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the confirm form helper class.
- *
  * @coversDefaultClass \Drupal\Core\Form\ConfirmFormHelper
- *
- * @group Drupal
  * @group Form
  */
 class ConfirmFormHelperTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Confirm form helper test',
-      'description' => 'Tests the confirm form helper class.',
-      'group' => 'Form API',
-    );
-  }
-
-  /**
    * @covers ::buildCancelLink
    *
    * Tests the cancel link title.
diff --git a/core/tests/Drupal/Tests/Core/Form/FormBuilderTest.php b/core/tests/Drupal/Tests/Core/Form/FormBuilderTest.php
index 03ba5eb..fbef067 100644
--- a/core/tests/Drupal/Tests/Core/Form/FormBuilderTest.php
+++ b/core/tests/Drupal/Tests/Core/Form/FormBuilderTest.php
@@ -12,27 +12,12 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Tests the form builder.
- *
  * @coversDefaultClass \Drupal\Core\Form\FormBuilder
- *
- * @group Drupal
  * @group Form
  */
 class FormBuilderTest extends FormTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Form builder test',
-      'description' => 'Tests the form builder.',
-      'group' => 'Form API',
-    );
-  }
-
-  /**
    * Tests the getFormId() method with a string based form ID.
    */
   public function testGetFormIdWithString() {
diff --git a/core/tests/Drupal/Tests/Core/Form/FormSubmitterTest.php b/core/tests/Drupal/Tests/Core/Form/FormSubmitterTest.php
index 5dcc668..40a3083 100644
--- a/core/tests/Drupal/Tests/Core/Form/FormSubmitterTest.php
+++ b/core/tests/Drupal/Tests/Core/Form/FormSubmitterTest.php
@@ -15,11 +15,7 @@
 use Symfony\Component\HttpFoundation\RequestStack;
 
 /**
- * Tests the form submission handler.
- *
  * @coversDefaultClass \Drupal\Core\Form\FormSubmitter
- *
- * @group Drupal
  * @group Form
  */
 class FormSubmitterTest extends UnitTestCase {
@@ -34,17 +30,6 @@ class FormSubmitterTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Form submission test',
-      'description' => 'Tests the form submission handler.',
-      'group' => 'Form API',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
     $this->urlGenerator = $this->getMock('Drupal\Core\Routing\UrlGeneratorInterface');
diff --git a/core/tests/Drupal/Tests/Core/Form/FormValidatorTest.php b/core/tests/Drupal/Tests/Core/Form/FormValidatorTest.php
index efb06c4..0870788 100644
--- a/core/tests/Drupal/Tests/Core/Form/FormValidatorTest.php
+++ b/core/tests/Drupal/Tests/Core/Form/FormValidatorTest.php
@@ -13,27 +13,12 @@
 use Symfony\Component\HttpFoundation\RequestStack;
 
 /**
- * Tests the form validator.
- *
  * @coversDefaultClass \Drupal\Core\Form\FormValidator
- *
- * @group Drupal
  * @group Form
  */
 class FormValidatorTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Form validator test',
-      'description' => 'Tests the form validator.',
-      'group' => 'Form API',
-    );
-  }
-
-  /**
    * Tests that form errors during submission throw an exception.
    *
    * @covers ::setErrorByName
diff --git a/core/tests/Drupal/Tests/Core/Form/OptGroupTest.php b/core/tests/Drupal/Tests/Core/Form/OptGroupTest.php
index febc6c6..6f353b9 100644
--- a/core/tests/Drupal/Tests/Core/Form/OptGroupTest.php
+++ b/core/tests/Drupal/Tests/Core/Form/OptGroupTest.php
@@ -11,27 +11,12 @@
 use Drupal\Core\Form\OptGroup;
 
 /**
- * Tests the OptGroup class.
- *
  * @coversDefaultClass \Drupal\Core\Form\OptGroup
- *
- * @group Drupal
  * @group Form
  */
 class OptGroupTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'OptGroup test',
-      'description' => 'Tests the OptGroup class.',
-      'group' => 'Form API',
-    );
-  }
-
-  /**
    * Tests the flattenOptions() method.
    *
    * @dataProvider providerTestFlattenOptions
diff --git a/core/tests/Drupal/Tests/Core/HttpKernelTest.php b/core/tests/Drupal/Tests/Core/HttpKernelTest.php
index 8115ada..4e5509c 100644
--- a/core/tests/Drupal/Tests/Core/HttpKernelTest.php
+++ b/core/tests/Drupal/Tests/Core/HttpKernelTest.php
@@ -19,20 +19,11 @@
 use Symfony\Component\HttpKernel\KernelEvents;
 
 /**
- * Tests the custom http kernel of drupal.
- *
- * @see \Drupal\Core\HttpKernel
+ * @coversDefaultClass \Drupal\Core\HttpKernel
+ * @group HttpKernelTest
  */
 class HttpKernelTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'HttpKernel (Unit)',
-      'description' => 'Tests the HttpKernel.',
-      'group' => 'Routing',
-    );
-  }
-
   /**
    * Tests the forward method.
    *
diff --git a/core/tests/Drupal/Tests/Core/Image/ImageTest.php b/core/tests/Drupal/Tests/Core/Image/ImageTest.php
index e2542ed..8e0f599 100644
--- a/core/tests/Drupal/Tests/Core/Image/ImageTest.php
+++ b/core/tests/Drupal/Tests/Core/Image/ImageTest.php
@@ -12,6 +12,8 @@
 
 /**
  * Tests the image class.
+ *
+ * @group Image
  */
 class ImageTest extends UnitTestCase {
 
@@ -29,14 +31,6 @@ class ImageTest extends UnitTestCase {
    */
   protected $toolkit;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Image class functionality',
-      'description' => 'Tests the Image class.',
-      'group' => 'Image',
-    );
-  }
-
   protected function setUp() {
     // Use the Druplicon image.
     $this->source = __DIR__ . '/../../../../../misc/druplicon.png';
diff --git a/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php b/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php
index 2533330..7abed94 100644
--- a/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php
@@ -13,8 +13,6 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\Language\Language
- *
- * @group Drupal
  * @group Language
  */
 class LanguageUnitTest extends UnitTestCase {
@@ -29,17 +27,6 @@ class LanguageUnitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\Core\Language\Language unit test',
-      'group' => 'System',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->language = new Language();
   }
diff --git a/core/tests/Drupal/Tests/Core/Lock/LockBackendAbstractTest.php b/core/tests/Drupal/Tests/Core/Lock/LockBackendAbstractTest.php
index 2ce4ef7..d044ef4 100644
--- a/core/tests/Drupal/Tests/Core/Lock/LockBackendAbstractTest.php
+++ b/core/tests/Drupal/Tests/Core/Lock/LockBackendAbstractTest.php
@@ -10,12 +10,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the LockBackendAbstract class.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Tests\Core\Lock\LockBackendAbstractTest
  * @group Lock
- *
- * @see \Drupal\Tests\Core\Lock\LockBackendAbstractTest
  */
 class LockBackendAbstractTest extends UnitTestCase {
 
@@ -26,14 +22,6 @@ class LockBackendAbstractTest extends UnitTestCase {
    */
   protected $lock;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'LockBackendAbstract test',
-      'description' => 'Test the LockBackendAbstract class.',
-      'group' => 'Lock',
-    );
-  }
-
   public function setUp() {
     $this->lock = $this->getMockForAbstractClass('Drupal\Core\Lock\LockBackendAbstract');
   }
diff --git a/core/tests/Drupal/Tests/Core/Logger/LogMessageParserTest.php b/core/tests/Drupal/Tests/Core/Logger/LogMessageParserTest.php
index 2fa198e..2ef2d08 100644
--- a/core/tests/Drupal/Tests/Core/Logger/LogMessageParserTest.php
+++ b/core/tests/Drupal/Tests/Core/Logger/LogMessageParserTest.php
@@ -11,24 +11,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the log message parser.
- *
- * @see \Drupal\Core\Logger\LogMessageParser
  * @coversDefaultClass \Drupal\Core\Logger\LogMessageParser
- *
- * @group Drupal
  * @group Logger
  */
 class LogMessageParserTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Log message parser',
-      'description' => 'Unit tests for the log message parser.',
-      'group' => 'Logger',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Logger/LoggerChannelFactoryTest.php b/core/tests/Drupal/Tests/Core/Logger/LoggerChannelFactoryTest.php
index 7cdcb60..9f78641 100644
--- a/core/tests/Drupal/Tests/Core/Logger/LoggerChannelFactoryTest.php
+++ b/core/tests/Drupal/Tests/Core/Logger/LoggerChannelFactoryTest.php
@@ -31,24 +31,11 @@
 }
 
 /**
- * Tests the logger channel factory.
- *
- * @see \Drupal\Core\Logger\LoggerChannelFactory
  * @coversDefaultClass \Drupal\Core\Logger\LoggerChannelFactory
- *
- * @group Drupal
  * @group Logger
  */
 class LoggerChannelFactoryTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Logger channel factory',
-      'description' => 'Unit tests for the logger channel factory object.',
-      'group' => 'Logger',
-    );
-  }
-
   /**
    * Tests LoggerChannelFactory::get().
    *
diff --git a/core/tests/Drupal/Tests/Core/Logger/LoggerChannelTest.php b/core/tests/Drupal/Tests/Core/Logger/LoggerChannelTest.php
index 51c7e86..00360c2 100644
--- a/core/tests/Drupal/Tests/Core/Logger/LoggerChannelTest.php
+++ b/core/tests/Drupal/Tests/Core/Logger/LoggerChannelTest.php
@@ -31,24 +31,11 @@
 }
 
 /**
- * Tests the logger channel.
- *
- * @see \Drupal\Core\Logger\LoggerChannel
  * @coversDefaultClass \Drupal\Core\Logger\LoggerChannel
- *
- * @group Drupal
  * @group Logger
  */
 class LoggerChannelTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Logger channel',
-      'description' => 'Unit tests for the logger channel object.',
-      'group' => 'Logger',
-    );
-  }
-
   /**
    * Tests LoggerChannel::log().
    *
diff --git a/core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php b/core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php
index f85f444..b40db1d 100644
--- a/core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php
@@ -11,12 +11,8 @@
 use Drupal\Component\Plugin\Discovery\DiscoveryInterface;
 
 /**
- * Tests the mail plugin manager.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\Mail\MailManager
  * @group Mail
- *
- * @see \Drupal\Core\Mail\MailManager
  */
 class MailManagerTest extends UnitTestCase {
 
@@ -67,17 +63,6 @@ class MailManagerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Mail manager test',
-      'description' => 'Tests the mail plugin manager.',
-      'group' => 'Mail',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     // Prepare the default constructor arguments required by MailManager.
diff --git a/core/tests/Drupal/Tests/Core/Menu/ContextualLinkDefaultTest.php b/core/tests/Drupal/Tests/Core/Menu/ContextualLinkDefaultTest.php
index 9b1b4e7..24e58c0 100644
--- a/core/tests/Drupal/Tests/Core/Menu/ContextualLinkDefaultTest.php
+++ b/core/tests/Drupal/Tests/Core/Menu/ContextualLinkDefaultTest.php
@@ -15,7 +15,6 @@
 /**
  * Tests the contextual link default class.
  *
- * @group Drupal
  * @group Menu
  */
 class ContextualLinkDefaultTest extends UnitTestCase {
@@ -57,14 +56,6 @@ class ContextualLinkDefaultTest extends UnitTestCase {
    */
   protected $stringTranslation;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Contextual links default.',
-      'description' => 'Tests the contextual link default class.',
-      'group' => 'Menu',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Menu/ContextualLinkManagerTest.php b/core/tests/Drupal/Tests/Core/Menu/ContextualLinkManagerTest.php
index 7ca082a..0858c14 100644
--- a/core/tests/Drupal/Tests/Core/Menu/ContextualLinkManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Menu/ContextualLinkManagerTest.php
@@ -12,12 +12,8 @@
 use Symfony\Component\HttpFoundation\RequestStack;
 
 /**
- * Tests the contextual links manager.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\Menu\ContextualLinkManager
  * @group Menu
- *
- * @see \Drupal\Core\Menu\ContextualLinkManager
  */
 class ContextualLinkManagerTest extends UnitTestCase {
 
@@ -70,14 +66,6 @@ class ContextualLinkManagerTest extends UnitTestCase {
    */
   protected $accessManager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Contextual links manager.',
-      'description' => 'Tests the contextual links manager.',
-      'group' => 'Menu',
-    );
-  }
-
   protected function setUp() {
     $this->contextualLinkManager = $this
       ->getMockBuilder('Drupal\Core\Menu\ContextualLinkManager')
diff --git a/core/tests/Drupal/Tests/Core/Menu/LocalActionDefaultTest.php b/core/tests/Drupal/Tests/Core/Menu/LocalActionDefaultTest.php
index 70bddbc..dade254 100644
--- a/core/tests/Drupal/Tests/Core/Menu/LocalActionDefaultTest.php
+++ b/core/tests/Drupal/Tests/Core/Menu/LocalActionDefaultTest.php
@@ -13,9 +13,8 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the local action default class.
- *
- * @see \Drupal\Core\Menu\LocalActionDefault
+ * @coversDefaultClass \Drupal\Core\Menu\LocalActionDefault
+ * @group Menu
  */
 class LocalActionDefaultTest extends UnitTestCase {
 
@@ -63,14 +62,6 @@ class LocalActionDefaultTest extends UnitTestCase {
    */
   protected $routeProvider;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Local actions default plugin.',
-      'description' => 'Tests the local action default class.',
-      'group' => 'Menu',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Menu/LocalActionManagerTest.php b/core/tests/Drupal/Tests/Core/Menu/LocalActionManagerTest.php
index 16bf072..0f67a1d 100644
--- a/core/tests/Drupal/Tests/Core/Menu/LocalActionManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Menu/LocalActionManagerTest.php
@@ -22,12 +22,8 @@
 use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
 
 /**
- * Tests the local action manager.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\Menu\LocalActionManager
  * @group Menu
- *
- * @covers \Drupal\Core\Menu\LocalActionManager
  */
 class LocalActionManagerTest extends UnitTestCase {
 
@@ -104,17 +100,6 @@ class LocalActionManagerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Local actions manager',
-      'description' => 'Tests the local action manager.',
-      'group' => 'Menu',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->controllerResolver = $this->getMock('Drupal\Core\Controller\ControllerResolverInterface');
     $this->request = $this->getMock('Symfony\Component\HttpFoundation\Request');
diff --git a/core/tests/Drupal/Tests/Core/Menu/LocalTaskDefaultTest.php b/core/tests/Drupal/Tests/Core/Menu/LocalTaskDefaultTest.php
index 9cd7210..530b8a1 100644
--- a/core/tests/Drupal/Tests/Core/Menu/LocalTaskDefaultTest.php
+++ b/core/tests/Drupal/Tests/Core/Menu/LocalTaskDefaultTest.php
@@ -15,9 +15,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the local task default class.
- *
- * @see \Drupal\Core\Menu\LocalTaskDefaultTest
+ * @coversDefaultClass \Drupal\Core\Menu\LocalTaskDefaultTest
+ * @group Menu
  */
 class LocalTaskDefaultTest extends UnitTestCase {
 
@@ -65,14 +64,6 @@ class LocalTaskDefaultTest extends UnitTestCase {
    */
   protected $routeProvider;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Local tasks default plugin.',
-      'description' => 'Tests the local task default class.',
-      'group' => 'Menu',
-    );
-  }
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Menu/LocalTaskManagerTest.php b/core/tests/Drupal/Tests/Core/Menu/LocalTaskManagerTest.php
index b612cf5..5966e51 100644
--- a/core/tests/Drupal/Tests/Core/Menu/LocalTaskManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Menu/LocalTaskManagerTest.php
@@ -15,9 +15,8 @@
 use Zend\Stdlib\ArrayObject;
 
 /**
- * Tests local tasks manager.
- *
- * @see \Drupal\Core\Menu\LocalTaskManager
+ * @coversDefaultClass \Drupal\Core\Menu\LocalTaskManager
+ * @group Menu
  */
 class LocalTaskManagerTest extends UnitTestCase {
 
@@ -84,14 +83,6 @@ class LocalTaskManagerTest extends UnitTestCase {
    */
   protected $accessManager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Local tasks manager.',
-      'description' => 'Tests local tasks manager.',
-      'group' => 'Menu',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Page/HtmlPageTest.php b/core/tests/Drupal/Tests/Core/Page/HtmlPageTest.php
index ed73bad..f2305db 100644
--- a/core/tests/Drupal/Tests/Core/Page/HtmlPageTest.php
+++ b/core/tests/Drupal/Tests/Core/Page/HtmlPageTest.php
@@ -12,24 +12,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the HTML page object.
- *
  * @coversDefaultClass \Drupal\Core\Page\HtmlPage
+ * @group Page
  */
 class HtmlPageTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Tests \Drupal\Core\Page\HtmlPage',
-      'description' => '',
-      'group' => 'Page',
-    );
-  }
-
-  /**
    * Ensures that a single metatags can be changed.
    */
   public function testMetatagAlterability() {
diff --git a/core/tests/Drupal/Tests/Core/ParamConverter/ParamConverterManagerTest.php b/core/tests/Drupal/Tests/Core/ParamConverter/ParamConverterManagerTest.php
index d308a5d..df308fd 100644
--- a/core/tests/Drupal/Tests/Core/ParamConverter/ParamConverterManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/ParamConverter/ParamConverterManagerTest.php
@@ -15,9 +15,8 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Tests the typed data resolver manager.
- *
  * @coversDefaultClass \Drupal\Core\ParamConverter\ParamConverterManager
+ * @group ParamConverter
  */
 class ParamConverterManagerTest extends UnitTestCase {
 
@@ -29,17 +28,6 @@ class ParamConverterManagerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Parameter converter manager',
-      'description' => 'Tests the parameter converter manager.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Path/AliasManagerTest.php b/core/tests/Drupal/Tests/Core/Path/AliasManagerTest.php
index bffc88d..eeaa60b 100644
--- a/core/tests/Drupal/Tests/Core/Path/AliasManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Path/AliasManagerTest.php
@@ -17,10 +17,8 @@
 use Symfony\Component\Routing\Exception\ResourceNotFoundException;
 
 /**
- * @group Drupal
- * @group Path
- *
  * @coversDefaultClass \Drupal\Core\Path\AliasManager
+ * @group Path
  */
 class AliasManagerTest extends UnitTestCase {
 
@@ -76,17 +74,6 @@ class AliasManagerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Url object (external)',
-      'description' => 'Tests the \Drupal\Core\Url class with external paths.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Path/PathMatcherTest.php b/core/tests/Drupal/Tests/Core/Path/PathMatcherTest.php
index 6c43478..91e80eb 100644
--- a/core/tests/Drupal/Tests/Core/Path/PathMatcherTest.php
+++ b/core/tests/Drupal/Tests/Core/Path/PathMatcherTest.php
@@ -12,8 +12,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * @group Drupal
- * @see \Drupal\Core\Path\PathMatcher
+ * @coversDefaultClass \Drupal\Core\Path\PathMatcher
+ * @group Path
  */
 class PathMatcherTest extends UnitTestCase {
 
@@ -27,17 +27,6 @@ class PathMatcherTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Path Matcher tests',
-      'description' => 'Tests that path matching is working properly.',
-      'group' => 'Path',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     // Create a stub config factory with all config settings that will be
     // checked during this test.
diff --git a/core/tests/Drupal/Tests/Core/PathProcessor/PathProcessorAliasTest.php b/core/tests/Drupal/Tests/Core/PathProcessor/PathProcessorAliasTest.php
index b02a967..de652c0 100644
--- a/core/tests/Drupal/Tests/Core/PathProcessor/PathProcessorAliasTest.php
+++ b/core/tests/Drupal/Tests/Core/PathProcessor/PathProcessorAliasTest.php
@@ -12,11 +12,8 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Tests the path alias path processor.
- *
- * @group Drupal
- *
- * @see \Drupal\Core\PathProcessor\PathProcessorAlias
+ * @coversDefaultClass \Drupal\Core\PathProcessor\PathProcessorAlias
+ * @group PathProcessor
  */
 class PathProcessorAliasTest extends UnitTestCase {
 
@@ -34,14 +31,6 @@ class PathProcessorAliasTest extends UnitTestCase {
    */
   protected $pathProcessor;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Path Processor alias',
-      'description' => 'Tests the path alias path processor.',
-      'group' => 'Path API',
-    );
-  }
-
   protected function setUp() {
     $this->aliasManager = $this->getMock('Drupal\Core\Path\AliasManagerInterface');
     $this->pathProcessor = new PathProcessorAlias($this->aliasManager);
diff --git a/core/tests/Drupal/Tests/Core/PathProcessor/PathProcessorTest.php b/core/tests/Drupal/Tests/Core/PathProcessor/PathProcessorTest.php
index 6b0c34e..776a54a 100644
--- a/core/tests/Drupal/Tests/Core/PathProcessor/PathProcessorTest.php
+++ b/core/tests/Drupal/Tests/Core/PathProcessor/PathProcessorTest.php
@@ -20,23 +20,15 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests path processor functionality.
+ * Tests processing of the inbound path.
  *
- * @group PathApi
+ * @group PathProcessor
  */
 class PathProcessorTest extends UnitTestCase {
 
   protected $languages;
   protected $languageManager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Path Processor Unit Tests',
-      'description' => 'Tests processing of the inbound path.',
-      'group' => 'Path API',
-    );
-  }
-
   public function setUp() {
 
     // Set up some languages to be used by the language-based path processor.
diff --git a/core/tests/Drupal/Tests/Core/Plugin/ConfigurablePluginBagTest.php b/core/tests/Drupal/Tests/Core/Plugin/ConfigurablePluginBagTest.php
index 11fbb37..7d38dd3 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/ConfigurablePluginBagTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/ConfigurablePluginBagTest.php
@@ -10,13 +10,8 @@
 use Drupal\Tests\Core\Plugin\Fixtures\TestConfigurablePlugin;
 
 /**
- * Tests the default plugin bag with configurable plugins.
- *
- * @see \Drupal\Component\Plugin\ConfigurablePluginInterface
- * @see \Drupal\Core\Plugin\DefaultPluginBag
- *
- * @group Drupal
- * @group Drupal_Plugin
+ * @coversDefaultClass \Drupal\Component\Plugin\ConfigurablePluginInterface
+ * @group Plugin
  */
 class ConfigurablePluginBagTest extends PluginBagTestBase {
 
@@ -30,17 +25,6 @@ class ConfigurablePluginBagTest extends PluginBagTestBase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Configurable plugin bag',
-      'description' => 'Tests the plugin bag with configurable plugins.',
-      'group' => 'Plugin API',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function getPluginMock($plugin_id, array $definition) {
     return new TestConfigurablePlugin($this->config[$plugin_id], $plugin_id, $definition);
   }
diff --git a/core/tests/Drupal/Tests/Core/Plugin/ContextHandlerTest.php b/core/tests/Drupal/Tests/Core/Plugin/ContextHandlerTest.php
index fa7c80c..edab6ee 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/ContextHandlerTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/ContextHandlerTest.php
@@ -14,13 +14,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the ContextHandler class.
- *
  * @coversDefaultClass \Drupal\Core\Plugin\Context\ContextHandler
- *
- * @group Drupal
  * @group Plugin
- * @group Context
  */
 class ContextHandlerTest extends UnitTestCase {
 
@@ -40,17 +35,6 @@ class ContextHandlerTest extends UnitTestCase {
 
   /**
    * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'ContextHandler',
-      'description' => 'Tests the ContextHandler',
-      'group' => 'Plugin API',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
    *
    * @covers ::__construct
    */
diff --git a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginBagTest.php b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginBagTest.php
index 18eec54..2ac14f6 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginBagTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginBagTest.php
@@ -8,27 +8,12 @@
 namespace Drupal\Tests\Core\Plugin;
 
 /**
- * Tests the default plugin bag.
- *
- * @see \Drupal\Core\Plugin\DefaultPluginBag
- *
- * @group Drupal
- * @group Drupal_Plugin
+ * @coversDefaultClass \Drupal\Core\Plugin\DefaultPluginBag
+ * @group Plugin
  */
 class DefaultPluginBagTest extends PluginBagTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Default plugin bag',
-      'description' => 'Tests the default plugin bag.',
-      'group' => 'Plugin API',
-    );
-  }
-
-  /**
    * Tests the has method.
    *
    * @see \Drupal\Core\Plugin\DefaultPluginBag::has()
diff --git a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
index b38da38..99e4d4a 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
@@ -33,17 +33,6 @@ class DefaultPluginManagerTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Default Plugin Manager',
-      'description' => 'Tests the DefaultPluginManager class.',
-      'group' => 'Plugin',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->expectedDefinitions = array(
       'apple' => array(
diff --git a/core/tests/Drupal/Tests/Core/Plugin/DefaultSinglePluginBagTest.php b/core/tests/Drupal/Tests/Core/Plugin/DefaultSinglePluginBagTest.php
index ec7171a..aa46c61 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/DefaultSinglePluginBagTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/DefaultSinglePluginBagTest.php
@@ -10,29 +10,14 @@
 use Drupal\Core\Plugin\DefaultSinglePluginBag;
 
 /**
- * Tests the default single plugin bag.
- *
- * @see \Drupal\Core\Plugin\DefaultSinglePluginBag
- *
- * @group Drupal
- * @group Drupal_Plugin
+ * @coversDefaultClass \Drupal\Core\Plugin\DefaultSinglePluginBag
+ * @group Plugin
  */
 class DefaultSinglePluginBagTest extends PluginBagTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Default single plugin bag',
-      'description' => 'Tests the default single plugin bag.',
-      'group' => 'Plugin API',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setupPluginBag(\PHPUnit_Framework_MockObject_Matcher_InvokedRecorder $create_count = NULL) {
     $definitions = $this->getPluginDefinitions();
     $this->pluginInstances['apple'] = $this->getPluginMock('apple', $definitions['apple']);
diff --git a/core/tests/Drupal/Tests/Core/Plugin/Discovery/ContainerDerivativeDiscoveryDecoratorTest.php b/core/tests/Drupal/Tests/Core/Plugin/Discovery/ContainerDerivativeDiscoveryDecoratorTest.php
index 5a53a69..2cb013d 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/Discovery/ContainerDerivativeDiscoveryDecoratorTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/Discovery/ContainerDerivativeDiscoveryDecoratorTest.php
@@ -12,21 +12,12 @@
 
 /**
  * Tests the container aware derivative discovery decorator.
+ *
+ * @group Plugin
  */
 class ContainerDerivativeDiscoveryDecoratorTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Container aware derivative discovery decorator.',
-      'description' => 'Tests the container aware derivative discovery decorator.',
-      'group' => 'Plugin',
-    );
-  }
-
-  /**
    * Tests the getDerivativeFetcher method.
    *
    * @see \Drupal\Core\Plugin\Discovery\ContainerDerivativeDiscoveryDecorator::getDerivativeFetcher().
diff --git a/core/tests/Drupal/Tests/Core/Plugin/Discovery/DerivativeDiscoveryDecoratorTest.php b/core/tests/Drupal/Tests/Core/Plugin/Discovery/DerivativeDiscoveryDecoratorTest.php
index c22c201..b8492bd 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/Discovery/DerivativeDiscoveryDecoratorTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/Discovery/DerivativeDiscoveryDecoratorTest.php
@@ -13,6 +13,8 @@
 
 /**
  * Unit tests for the derivative discovery decorator.
+ *
+ * @group Plugin
  */
 class DerivativeDiscoveryDecoratorTest extends UnitTestCase {
 
@@ -26,17 +28,6 @@ class DerivativeDiscoveryDecoratorTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Derivative discovery decorator.',
-      'description' => 'Tests the derivative discovery decorator.',
-      'group' => 'Plugin',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->discoveryMain = $discovery_main = $this->getMock('Drupal\Component\Plugin\Discovery\DiscoveryInterface');
   }
diff --git a/core/tests/Drupal/Tests/Core/Plugin/Discovery/HookDiscoveryTest.php b/core/tests/Drupal/Tests/Core/Plugin/Discovery/HookDiscoveryTest.php
index 7ff9702..650ea95 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/Discovery/HookDiscoveryTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/Discovery/HookDiscoveryTest.php
@@ -11,12 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the hook plugin discovery class.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\Plugin\Discovery\HookDiscovery
  * @group Plugin
- *
- * @see \Drupal\Core\Plugin\Discovery\HookDiscovery
  */
 class HookDiscoveryTest extends UnitTestCase {
 
@@ -34,14 +30,6 @@ class HookDiscoveryTest extends UnitTestCase {
    */
   protected $hookDiscovery;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Hook Discovery',
-      'description' => 'Tests the hook plugin discovery class.',
-      'group' => 'Plugin',
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryDecoratorTest.php b/core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryDecoratorTest.php
index 03141f4..41b8d41 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryDecoratorTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryDecoratorTest.php
@@ -11,7 +11,9 @@
 use Drupal\Core\Plugin\Discovery\YamlDiscoveryDecorator;
 
 /**
- * Tests the YamlDiscoveryDecorator class.
+ * YamlDiscoveryDecorator unit tests.
+ *
+ * @group Plugin
  */
 class YamlDiscoveryDecoratorTest extends UnitTestCase {
 
@@ -36,14 +38,6 @@ class YamlDiscoveryDecoratorTest extends UnitTestCase {
     'decorated_2' => 'decorated_test_2',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'YamlDiscoveryDecorator',
-      'description' => 'YamlDiscoveryDecorator unit tests.',
-      'group' => 'Plugin',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryTest.php b/core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryTest.php
index 6d15128..7512867 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryTest.php
@@ -11,9 +11,8 @@
 use Drupal\Core\Plugin\Discovery\YamlDiscovery;
 
 /**
- * Tests plugin YAML discovery.
- *
- * @see \Drupal\Core\Plugin\Discovery\YamlDiscovery
+ * @coversDefaultClass \Drupal\Core\Plugin\Discovery\YamlDiscovery
+ * @group Plugin
  */
 class YamlDiscoveryTest extends UnitTestCase {
 
@@ -36,14 +35,6 @@ class YamlDiscoveryTest extends UnitTestCase {
     'test_2' => 'test_2_b',
   );
 
-  public static function getInfo() {
-    return array(
-      'name' => 'YamlDiscovery',
-      'description' => 'YamlDiscovery unit tests.',
-      'group' => 'Plugin',
-    );
-  }
-
   public function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/PrivateKeyTest.php b/core/tests/Drupal/Tests/Core/PrivateKeyTest.php
index b204387..3762e94 100644
--- a/core/tests/Drupal/Tests/Core/PrivateKeyTest.php
+++ b/core/tests/Drupal/Tests/Core/PrivateKeyTest.php
@@ -12,7 +12,9 @@
 use Drupal\Component\Utility\Crypt;
 
 /**
- * Tests the private key service.
+ * Tests the PrivateKey class.
+ *
+ * @group PrivateKeyTest
  */
 class PrivateKeyTest extends UnitTestCase {
 
@@ -37,14 +39,6 @@ class PrivateKeyTest extends UnitTestCase {
    */
   protected $key;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'PrivateKey test',
-      'description' => 'Tests the PrivateKey class.',
-      'group' => 'System'
-    );
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/tests/Drupal/Tests/Core/Render/ElementInfoTest.php b/core/tests/Drupal/Tests/Core/Render/ElementInfoTest.php
index 505a3b2..86878f4 100644
--- a/core/tests/Drupal/Tests/Core/Render/ElementInfoTest.php
+++ b/core/tests/Drupal/Tests/Core/Render/ElementInfoTest.php
@@ -12,9 +12,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the element info.
- *
  * @coversDefaultClass \Drupal\Core\Render\ElementInfo
+ * @group Render
  */
 class ElementInfoTest extends UnitTestCase {
 
@@ -34,17 +33,6 @@ class ElementInfoTest extends UnitTestCase {
 
   /**
    * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Tests \Drupal\Core\Render\ElementInfo',
-      'description' => '',
-      'group' => 'Render',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
    *
    * @covers ::__construct
    */
diff --git a/core/tests/Drupal/Tests/Core/Render/ElementTest.php b/core/tests/Drupal/Tests/Core/Render/ElementTest.php
index 9503f2d..20ac844 100644
--- a/core/tests/Drupal/Tests/Core/Render/ElementTest.php
+++ b/core/tests/Drupal/Tests/Core/Render/ElementTest.php
@@ -11,27 +11,12 @@
 use Drupal\Core\Render\Element;
 
 /**
- * Tests the Element class
- *
- * @see \Drupal\Core\Render\Element
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\Render\Element
  * @group Render
  */
 class ElementTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Element test',
-      'description' => 'Tests \Drupal\Core\Render\Element helper class.',
-      'group' => 'Render',
-    );
-  }
-
-  /**
    * Tests the property() method.
    */
   public function testProperty() {
diff --git a/core/tests/Drupal/Tests/Core/Route/RoleAccessCheckTest.php b/core/tests/Drupal/Tests/Core/Route/RoleAccessCheckTest.php
index aec50c2..232645b 100644
--- a/core/tests/Drupal/Tests/Core/Route/RoleAccessCheckTest.php
+++ b/core/tests/Drupal/Tests/Core/Route/RoleAccessCheckTest.php
@@ -15,20 +15,11 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Defines tests for role based access in routes.
- *
- * @see \Drupal\user\Access\RoleAccessCheck
+ * @coversDefaultClass \Drupal\user\Access\RoleAccessCheck
+ * @group Route
  */
 class RoleAccessCheckTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Router Role tests',
-      'description' => 'Test for the role based access checker in the routing system.',
-      'group' => 'Routing',
-    );
-  }
-
   /**
    * Generates the test route collection.
    *
diff --git a/core/tests/Drupal/Tests/Core/RouteProcessor/RouteProcessorManagerTest.php b/core/tests/Drupal/Tests/Core/RouteProcessor/RouteProcessorManagerTest.php
index 6d23ca6..4e18380 100644
--- a/core/tests/Drupal/Tests/Core/RouteProcessor/RouteProcessorManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/RouteProcessor/RouteProcessorManagerTest.php
@@ -12,12 +12,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the RouteProcessorManager class.
- *
- * @group Drupal
- * @group Routing
- *
- * @see \Drupal\Core\RouteProcessor\RouteProcessorManager
+ * @coversDefaultClass \Drupal\Core\RouteProcessor\RouteProcessorManager
+ * @group RouteProcessor
  */
 class RouteProcessorManagerTest extends UnitTestCase {
 
@@ -28,14 +24,6 @@ class RouteProcessorManagerTest extends UnitTestCase {
    */
   protected $processorManager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Route processor manager',
-      'description' => 'Tests the RouteProcessorManager class.',
-      'group' => 'Routing',
-    );
-  }
-
   public function setUp() {
     $this->processorManager = new RouteProcessorManager();
   }
diff --git a/core/tests/Drupal/Tests/Core/Routing/AcceptHeaderMatcherTest.php b/core/tests/Drupal/Tests/Core/Routing/AcceptHeaderMatcherTest.php
index 7bf2a28..22ffa8f 100644
--- a/core/tests/Drupal/Tests/Core/Routing/AcceptHeaderMatcherTest.php
+++ b/core/tests/Drupal/Tests/Core/Routing/AcceptHeaderMatcherTest.php
@@ -14,9 +14,9 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Basic tests for the AcceptHeaderMatcher class.
+ * Confirm that the mime types partial matcher is functioning properly.
  *
- * @coversClassDefault \Drupal\Core\Routing\AcceptHeaderMatcher
+ * @group Routing
  */
 class AcceptHeaderMatcherTest extends UnitTestCase {
 
@@ -37,17 +37,6 @@ class AcceptHeaderMatcherTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Partial matcher MIME types tests',
-      'description' => 'Confirm that the mime types partial matcher is functioning properly.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Routing/ContentTypeHeaderMatcherTest.php b/core/tests/Drupal/Tests/Core/Routing/ContentTypeHeaderMatcherTest.php
index 71b9c6b..17b7e14 100644
--- a/core/tests/Drupal/Tests/Core/Routing/ContentTypeHeaderMatcherTest.php
+++ b/core/tests/Drupal/Tests/Core/Routing/ContentTypeHeaderMatcherTest.php
@@ -13,9 +13,9 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Basic tests for the ContentTypeHeaderMatcher class.
+ * Confirm that the content types partial matcher is functioning properly.
  *
- * @coversClassDefault \Drupal\Core\Routing\ContentTypeHeaderMatcher
+ * @group Routing
  */
 class ContentTypeHeaderMatcherTest extends UnitTestCase {
 
@@ -36,17 +36,6 @@ class ContentTypeHeaderMatcherTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Content Type header matcher test',
-      'description' => 'Confirm that the content types partial matcher is functioning properly.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Routing/CurrentRouteMatchTest.php b/core/tests/Drupal/Tests/Core/Routing/CurrentRouteMatchTest.php
index 9deddd5..3293b84 100644
--- a/core/tests/Drupal/Tests/Core/Routing/CurrentRouteMatchTest.php
+++ b/core/tests/Drupal/Tests/Core/Routing/CurrentRouteMatchTest.php
@@ -17,26 +17,14 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Unit tests for CurrentRouteMatch.
- *
  * @coversDefaultClass \Drupal\Core\Routing\CurrentRouteMatch
+ * @group Routing
  */
 class CurrentRouteMatchTest extends RouteMatchBaseTest {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'CurrentRouteMatch',
-      'description' => 'Unit tests for CurrentRouteMatch.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function getRouteMatch($name, Route $route, array $parameters, array $raw_parameters) {
     $request_stack = new RequestStack();
     $request = new Request();
diff --git a/core/tests/Drupal/Tests/Core/Routing/LazyLoadingRouteCollectionTest.php b/core/tests/Drupal/Tests/Core/Routing/LazyLoadingRouteCollectionTest.php
index 749ba88..46f5995 100644
--- a/core/tests/Drupal/Tests/Core/Routing/LazyLoadingRouteCollectionTest.php
+++ b/core/tests/Drupal/Tests/Core/Routing/LazyLoadingRouteCollectionTest.php
@@ -12,11 +12,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the lazy loaded route collection.
- *
- * @group \Drupal
- *
- * @see \Drupal\Core\Routing\LazyLoadingRouteCollection
+ * @coversDefaultClass \Drupal\Core\Routing\LazyLoadingRouteCollection
+ * @group Routing
  */
 class LazyLoadingRouteCollectionTest extends UnitTestCase {
 
@@ -34,14 +31,6 @@ class LazyLoadingRouteCollectionTest extends UnitTestCase {
    */
   protected $routeCollection;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Lazy loaded route collection',
-      'description' => 'Tests the lazy loaded route collection.',
-      'group' => 'Routing',
-    );
-  }
-
   protected function setUp() {
     for ($i = 0; $i < 20; $i++) {
       $this->routes['test_route_' . $i] = new Route('/test-route-' . $i);
diff --git a/core/tests/Drupal/Tests/Core/Routing/RouteBuilderTest.php b/core/tests/Drupal/Tests/Core/Routing/RouteBuilderTest.php
index fd777ce..aff9896 100644
--- a/core/tests/Drupal/Tests/Core/Routing/RouteBuilderTest.php
+++ b/core/tests/Drupal/Tests/Core/Routing/RouteBuilderTest.php
@@ -17,12 +17,8 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Tests the route builder.
- *
- * @group Drupal
+ * @coversDefaultClass \Drupal\Core\Routing\RouteBuilder
  * @group Routing
- *
- * @see \Drupal\Core\Routing\RouteBuilder
  */
 class RouteBuilderTest extends UnitTestCase {
 
@@ -82,14 +78,6 @@ class RouteBuilderTest extends UnitTestCase {
    */
   protected $state;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Route Builder',
-      'description' => 'Tests the route builder.',
-      'group' => 'Routing',
-    );
-  }
-
   protected function setUp() {
     $this->dumper = $this->getMock('Drupal\Core\Routing\MatcherDumperInterface');
     $this->lock = $this->getMock('Drupal\Core\Lock\LockBackendInterface');
diff --git a/core/tests/Drupal/Tests/Core/Routing/RouteCompilerTest.php b/core/tests/Drupal/Tests/Core/Routing/RouteCompilerTest.php
index b5b47cb..4d1977c 100644
--- a/core/tests/Drupal/Tests/Core/Routing/RouteCompilerTest.php
+++ b/core/tests/Drupal/Tests/Core/Routing/RouteCompilerTest.php
@@ -13,24 +13,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Basic tests for the Route.
- *
- * @see \Drupal\Core\Routing\RouteCompiler
+ * @coversDefaultClass \Drupal\Core\Routing\RouteCompiler
+ * @group Routing
  */
 class RouteCompilerTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Routes',
-      'description' => 'Confirm that route object is functioning properly.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
    * Tests RouteCompiler::getFit().
    *
    * @param string $path
diff --git a/core/tests/Drupal/Tests/Core/Routing/RouteMatchTest.php b/core/tests/Drupal/Tests/Core/Routing/RouteMatchTest.php
index 6a51add..6aab6f4 100644
--- a/core/tests/Drupal/Tests/Core/Routing/RouteMatchTest.php
+++ b/core/tests/Drupal/Tests/Core/Routing/RouteMatchTest.php
@@ -15,26 +15,14 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Unit tests for RouteMatch.
- *
  * @coversDefaultClass \Drupal\Core\Routing\RouteMatch
+ * @group Routing
  */
 class RouteMatchTest extends RouteMatchBaseTest {
 
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'RouteMatch',
-      'description' => 'Unit tests for RouteMatch.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function getRouteMatch($name, Route $route, array $parameters, array $raw_parameters) {
     return new RouteMatch($name, $route, $parameters, $raw_parameters);
   }
diff --git a/core/tests/Drupal/Tests/Core/Routing/RoutePreloaderTest.php b/core/tests/Drupal/Tests/Core/Routing/RoutePreloaderTest.php
index acb9915..a928c97 100644
--- a/core/tests/Drupal/Tests/Core/Routing/RoutePreloaderTest.php
+++ b/core/tests/Drupal/Tests/Core/Routing/RoutePreloaderTest.php
@@ -15,9 +15,8 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Tests the non admin routes preloader.
- *
- * @see \Drupal\Core\Routing\RoutePreloader
+ * @coversDefaultClass \Drupal\Core\Routing\RoutePreloader
+ * @group Routing
  */
 class RoutePreloaderTest extends UnitTestCase {
 
@@ -52,17 +51,6 @@ class RoutePreloaderTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Route preloader',
-      'description' => 'Tests the non admin routes preloader.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->routeProvider = $this->getMock('Drupal\Core\Routing\RouteProviderInterface');
     $this->state = $this->getMock('\Drupal\Core\State\StateInterface');
diff --git a/core/tests/Drupal/Tests/Core/Routing/UrlGeneratorTest.php b/core/tests/Drupal/Tests/Core/Routing/UrlGeneratorTest.php
index 5226261..bd56fa2 100644
--- a/core/tests/Drupal/Tests/Core/Routing/UrlGeneratorTest.php
+++ b/core/tests/Drupal/Tests/Core/Routing/UrlGeneratorTest.php
@@ -18,7 +18,7 @@
 use Symfony\Component\Routing\RequestContext;
 
 /**
- * Basic tests for the Route.
+ * Confirm that the UrlGenerator is functioning properly.
  *
  * @group Routing
  */
@@ -52,14 +52,6 @@ class UrlGeneratorTest extends UnitTestCase {
    */
   protected $routeProcessorManager;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'UrlGenerator',
-      'description' => 'Confirm that the UrlGenerator is functioning properly.',
-      'group' => 'Routing',
-    );
-  }
-
   function setUp() {
 
     $routes = new RouteCollection();
diff --git a/core/tests/Drupal/Tests/Core/Session/AnonymousUserSessionTest.php b/core/tests/Drupal/Tests/Core/Session/AnonymousUserSessionTest.php
index 2fb144d..e918fa4 100644
--- a/core/tests/Drupal/Tests/Core/Session/AnonymousUserSessionTest.php
+++ b/core/tests/Drupal/Tests/Core/Session/AnonymousUserSessionTest.php
@@ -14,26 +14,12 @@
 use Symfony\Component\DependencyInjection\Scope;
 
 /**
- * Tests the AnonymousUserSession class.
- *
- * @group Drupal
- *
  * @coversDefaultClass \Drupal\Core\Session\AnonymousUserSession
+ * @group Session
  */
 class AnonymousUserSessionTest extends UnitTestCase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Anonymous user session object',
-      'description' => 'Tests the anonymous user session object.',
-      'group' => 'Session',
-    );
-  }
-
-  /**
    * Tests creating an AnonymousUserSession when the request is available.
    *
    * @covers ::__construct()
diff --git a/core/tests/Drupal/Tests/Core/Session/UserSessionTest.php b/core/tests/Drupal/Tests/Core/Session/UserSessionTest.php
index 47f484f..7d61060 100644
--- a/core/tests/Drupal/Tests/Core/Session/UserSessionTest.php
+++ b/core/tests/Drupal/Tests/Core/Session/UserSessionTest.php
@@ -12,9 +12,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the user session object.
- *
  * @coversDefaultClass \Drupal\Core\Session\UserSession
+ * @group Session
  */
 class UserSessionTest extends UnitTestCase {
 
@@ -25,14 +24,6 @@ class UserSessionTest extends UnitTestCase {
    */
   protected $users = array();
 
-  public static function getInfo() {
-    return array(
-      'name' => 'User session object',
-      'description' => 'Tests the user session object.',
-      'group' => 'Session',
-    );
-  }
-
   /**
    * Provides test data for getHasPermission().
    *
diff --git a/core/tests/Drupal/Tests/Core/Site/SettingsTest.php b/core/tests/Drupal/Tests/Core/Site/SettingsTest.php
index 6038899..5a442b8 100644
--- a/core/tests/Drupal/Tests/Core/Site/SettingsTest.php
+++ b/core/tests/Drupal/Tests/Core/Site/SettingsTest.php
@@ -11,11 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests read-only settings.
- *
- * @group Drupal
- *
  * @coversDefaultClass \Drupal\Core\Site\Settings
+ * @group Site
  */
 class SettingsTest extends UnitTestCase {
 
@@ -34,17 +31,6 @@ class SettingsTest extends UnitTestCase {
   protected $settings;
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => '\Drupal\Core\Site\Settings unit test',
-      'description' => '',
-      'group' => 'Common',
-    );
-  }
-
-  /**
    * @covers ::__construct
    */
   public function setUp(){
diff --git a/core/tests/Drupal/Tests/Core/StringTranslation/StringTranslationTraitTest.php b/core/tests/Drupal/Tests/Core/StringTranslation/StringTranslationTraitTest.php
index 69d2cea..044c5eb 100644
--- a/core/tests/Drupal/Tests/Core/StringTranslation/StringTranslationTraitTest.php
+++ b/core/tests/Drupal/Tests/Core/StringTranslation/StringTranslationTraitTest.php
@@ -10,12 +10,7 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests \Drupal\Core\StringTranslation\StringTranslationTrait.
- *
- * @see \Drupal\Core\StringTranslation\StringTranslationTrait
  * @coversDefaultClass \Drupal\Core\StringTranslation\StringTranslationTrait
- *
- * @group Drupal
  * @group StringTranslation
  */
 class StringTranslationTraitTest extends UnitTestCase {
@@ -38,17 +33,6 @@ class StringTranslationTraitTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'String translation trait',
-      'description' => 'Tests the string translation trait.',
-      'group' => 'StringTranslation',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->translation = $this->getObjectForTrait('\Drupal\Core\StringTranslation\StringTranslationTrait');
     $stub = $this->getStringTranslationStub();
diff --git a/core/tests/Drupal/Tests/Core/StringTranslation/TranslationManagerTest.php b/core/tests/Drupal/Tests/Core/StringTranslation/TranslationManagerTest.php
index f75a5fa..7f2859c 100644
--- a/core/tests/Drupal/Tests/Core/StringTranslation/TranslationManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/StringTranslation/TranslationManagerTest.php
@@ -11,9 +11,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the translation manager.
- *
- * @see \Drupal\Core\StringTranslation\TranslationManager
+ * @coversDefaultClass \Drupal\Core\StringTranslation\TranslationManager
+ * @group StringTranslation
  */
 class TranslationManagerTest extends UnitTestCase {
 
@@ -24,17 +23,6 @@ class TranslationManagerTest extends UnitTestCase {
    */
   protected $translationManager;
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function getInfo() {
-    return array(
-      'name' => 'Translation manager',
-      'description' => 'Tests the translation manager.',
-      'group' => 'Translation',
-    );
-  }
-
   protected function setUp() {
     $this->translationManager = new TestTranslationManager();
   }
diff --git a/core/tests/Drupal/Tests/Core/Template/AttributeTest.php b/core/tests/Drupal/Tests/Core/Template/AttributeTest.php
index af5e332..aee1dd7 100644
--- a/core/tests/Drupal/Tests/Core/Template/AttributeTest.php
+++ b/core/tests/Drupal/Tests/Core/Template/AttributeTest.php
@@ -13,20 +13,11 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the template attribute class.
- *
- * @see \Drupal\Core\Template\Attribute
+ * @coversDefaultClass \Drupal\Core\Template\Attribute
+ * @group Template
  */
 class AttributeTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Attribute class',
-      'description' => 'Tests the template attribute class.',
-      'group' => 'Template',
-    );
-  }
-
   /**
    * Tests the constructor of the attribute class.
    */
diff --git a/core/tests/Drupal/Tests/Core/Theme/RegistryTest.php b/core/tests/Drupal/Tests/Core/Theme/RegistryTest.php
index 8927433..fe42e81 100644
--- a/core/tests/Drupal/Tests/Core/Theme/RegistryTest.php
+++ b/core/tests/Drupal/Tests/Core/Theme/RegistryTest.php
@@ -12,12 +12,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the theme registry service.
- *
- * @group Drupal
- * @group ${group}
- *
- * @see \Drupal\Core\Theme\Registry
+ * @coversDefaultClass \Drupal\Core\Theme\Registry
+ * @group Theme
  */
 class RegistryTest extends UnitTestCase {
 
@@ -52,17 +48,6 @@ class RegistryTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme Registry',
-      'description' => 'Tests the theme registry.',
-      'group' => 'Theme',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     $this->cache = $this->getMock('Drupal\Core\Cache\CacheBackendInterface');
     $this->lock = $this->getMock('Drupal\Core\Lock\LockBackendInterface');
diff --git a/core/tests/Drupal/Tests/Core/Theme/ThemeNegotiatorTest.php b/core/tests/Drupal/Tests/Core/Theme/ThemeNegotiatorTest.php
index 4830e47..91f3a61 100644
--- a/core/tests/Drupal/Tests/Core/Theme/ThemeNegotiatorTest.php
+++ b/core/tests/Drupal/Tests/Core/Theme/ThemeNegotiatorTest.php
@@ -15,11 +15,8 @@
 use Symfony\Component\Routing\Route;
 
 /**
- * Tests the theme negotiator.
- *
- * @group Drupal
- *
- * @see \Drupal\Core\Theme\ThemeNegotiator
+ * @coversDefaultClass \Drupal\Core\Theme\ThemeNegotiator
+ * @group Theme
  */
 class ThemeNegotiatorTest extends UnitTestCase {
 
@@ -44,14 +41,6 @@ class ThemeNegotiatorTest extends UnitTestCase {
    */
   protected $themeNegotiator;
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Theme negotiator',
-      'description' => 'Tests the theme negotiator.',
-      'group' => 'Theme',
-    );
-  }
-
   protected function setUp() {
     $this->themeAccessCheck = $this->getMockBuilder('\Drupal\Core\Theme\ThemeAccessCheck')
       ->disableOriginalConstructor()
diff --git a/core/tests/Drupal/Tests/Core/UrlTest.php b/core/tests/Drupal/Tests/Core/UrlTest.php
index 83e4c74..324f9e9 100644
--- a/core/tests/Drupal/Tests/Core/UrlTest.php
+++ b/core/tests/Drupal/Tests/Core/UrlTest.php
@@ -16,12 +16,8 @@
 use Symfony\Component\Routing\Exception\ResourceNotFoundException;
 
 /**
- * Tests the \Drupal\Core\Url class.
- *
- * @group Drupal
- * @group Url
- *
  * @coversDefaultClass \Drupal\Core\Url
+ * @group UrlTest
  */
 class UrlTest extends UnitTestCase {
 
@@ -49,17 +45,6 @@ class UrlTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Url object (internal)',
-      'description' => 'Tests the \Drupal\Core\Url class.',
-      'group' => 'Routing',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Utility/ColorTest.php b/core/tests/Drupal/Tests/Core/Utility/ColorTest.php
index 52476db..e54d445 100644
--- a/core/tests/Drupal/Tests/Core/Utility/ColorTest.php
+++ b/core/tests/Drupal/Tests/Core/Utility/ColorTest.php
@@ -11,18 +11,12 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests color conversion functions.
+ * Tests Color utility class conversions.
+ *
+ * @group Utility
  */
 class ColorTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Color conversion',
-      'description' => 'Tests Color utility class conversions.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests Color::hexToRgb().
    *
diff --git a/core/tests/Drupal/Tests/Core/Utility/ErrorTest.php b/core/tests/Drupal/Tests/Core/Utility/ErrorTest.php
index bb3fa1f..f7f6e9f 100644
--- a/core/tests/Drupal/Tests/Core/Utility/ErrorTest.php
+++ b/core/tests/Drupal/Tests/Core/Utility/ErrorTest.php
@@ -11,22 +11,11 @@
 use Drupal\Core\Utility\Error;
 
 /**
- * Tests the Error class.
- *
- * @group Drupal
- *
- * @see \Drupal\Core\Utility\Error
+ * @coversDefaultClass \Drupal\Core\Utility\Error
+ * @group Utility
  */
 class ErrorTest extends UnitTestCase {
 
-  public static function getInfo() {
-    return array(
-      'name' => 'Error',
-      'description' => 'Tests the Error utility class.',
-      'group' => 'Common',
-    );
-  }
-
   /**
    * Tests the getLastCaller() method.
    *
diff --git a/core/tests/Drupal/Tests/Core/Utility/LinkGeneratorTest.php b/core/tests/Drupal/Tests/Core/Utility/LinkGeneratorTest.php
index d862ec1..7926b2f 100644
--- a/core/tests/Drupal/Tests/Core/Utility/LinkGeneratorTest.php
+++ b/core/tests/Drupal/Tests/Core/Utility/LinkGeneratorTest.php
@@ -13,14 +13,8 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests the link generator.
- *
- * @see \Drupal\Core\Utility\LinkGenerator
- *
- * @group Drupal
- * @group Utility
- *
  * @coversDefaultClass \Drupal\Core\Utility\LinkGenerator
+ * @group Utility
  */
 class LinkGeneratorTest extends UnitTestCase {
 
@@ -59,18 +53,6 @@ class LinkGeneratorTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'name' => 'Link generator',
-      'description' => 'Tests the link generator.',
-      'group' => 'Common',
-    );
-  }
-
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/tests/Drupal/Tests/Core/Utility/TokenTest.php b/core/tests/Drupal/Tests/Core/Utility/TokenTest.php
index 2f67a7b..f7c3377 100644
--- a/core/tests/Drupal/Tests/Core/Utility/TokenTest.php
+++ b/core/tests/Drupal/Tests/Core/Utility/TokenTest.php
@@ -13,6 +13,7 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\Utility\Token
+ * @group Utility
  */
 class TokenTest extends UnitTestCase {
 
@@ -47,17 +48,6 @@ class TokenTest extends UnitTestCase {
   /**
    * {@inheritdoc}
    */
-  public static function getInfo() {
-    return array(
-      'description' => '',
-      'name' => '\Drupal\Tests\Core\Utility\Token unit test',
-      'group' => 'System',
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setUp() {
     $this->cache = $this->getMock('\Drupal\Core\Cache\CacheBackendInterface');
 
diff --git a/core/vendor/composer/autoload_psr4.php b/core/vendor/composer/autoload_psr4.php
index f832317..f96fb66 100644
--- a/core/vendor/composer/autoload_psr4.php
+++ b/core/vendor/composer/autoload_psr4.php
@@ -6,6 +6,7 @@
 $baseDir = dirname(dirname($vendorDir));
 
 return array(
+    'Sun\\StaticReflection\\' => array($vendorDir . '/sun/staticreflection/src'),
     'GuzzleHttp\\Stream\\' => array($vendorDir . '/guzzlehttp/streams/src'),
     'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
     'Drupal\\Driver\\' => array($baseDir . '/drivers/lib/Drupal/Driver'),
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
index c49881a..31b7ab8 100644
--- a/core/vendor/composer/installed.json
+++ b/core/vendor/composer/installed.json
@@ -2470,5 +2470,55 @@
             "mock",
             "xunit"
         ]
+    },
+    {
+        "name": "sun/staticreflection",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/sun/staticreflection.git",
+            "reference": "a2c5b19f8692b245e7f4ec08b8def2f130ad0c3c"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/sun/staticreflection/zipball/a2c5b19f8692b245e7f4ec08b8def2f130ad0c3c",
+            "reference": "a2c5b19f8692b245e7f4ec08b8def2f130ad0c3c",
+            "shasum": ""
+        },
+        "require": {
+            "ext-reflection": "*",
+            "ext-tokenizer": "*",
+            "php": ">=5.4.2"
+        },
+        "time": "2014-06-25 19:24:11",
+        "type": "library",
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "Sun\\StaticReflection\\": "src/"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Daniel F. Kudwien (sun)",
+                "email": "sun@unleashedmind.com"
+            }
+        ],
+        "description": "Static PHP class code reflection for post-discovery scenarios.",
+        "keywords": [
+            "annotations",
+            "autoload",
+            "discovery",
+            "docblock",
+            "parser",
+            "phpdoc",
+            "reflection",
+            "token"
+        ]
     }
 ]
diff --git a/core/vendor/sun/staticreflection/LICENSE b/core/vendor/sun/staticreflection/LICENSE
new file mode 100644
index 0000000..96d2915
--- /dev/null
+++ b/core/vendor/sun/staticreflection/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Daniel F. Kudwien (sun) <sun@unleashedmind.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/core/vendor/sun/staticreflection/README.md b/core/vendor/sun/staticreflection/README.md
new file mode 100644
index 0000000..f458dbd
--- /dev/null
+++ b/core/vendor/sun/staticreflection/README.md
@@ -0,0 +1,255 @@
+# StaticReflection [![Build Status](https://travis-ci.org/sun/staticreflection.svg)](https://travis-ci.org/sun/staticreflection) [![Code Coverage](https://scrutinizer-ci.com/g/sun/staticreflection/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/sun/staticreflection/?branch=master) [![Code Quality](https://scrutinizer-ci.com/g/sun/staticreflection/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/sun/staticreflection/?branch=master)
+_Static PHP class code reflection for post-discovery scenarios._
+
+This utility library for PHP frameworks/applications allows to reflect PHP class
+files (headers) without loading them into memory, if the filesystem locations of
+each class is known already _(cf. discovery/classmap)_.
+
+Static reflection is useful in case you want to check a _large list_ of
+previously discovered class files for common aspects, like interfaces or base
+classes, in order to filter out inapplicable candidates.
+
+In a decoupled, modern code base, native [PHP Reflection] can grow out of
+control very easily, as it loads every reflected class and interface, as well as
+every dependency of every class and interface. — Static reflection avoids to
+(auto-)load all dependencies and ancestor classes of each reflected class into
+memory.
+
+High memory consumption can be a problem, because PHP's default memory limit is
+very small.  Even if it was increased, just loading hundreds or even thousands
+of classes may easily exceed a custom limit, too.
+
+When reflecting 1,000+ classes (e.g., tests), then, on average, 3x times more
+PHP files are loaded into memory, which can result in a peak memory consumption
+of 120+ MB by the total loaded code only — even though you only care for the
+filtered 1k.
+
+In the worst/ideal case, you're just trying to generate a _list_ of
+available classes, without using them immediately (e.g., for a UI/CLI selection
+or swappable/configurable plugin implementations).
+
+`ReflectionClass` provides the same API as the native `\ReflectionClass`.
+
+Example [xhprof](http://php.net/manual/en/book.xhprof.php) diff results:
+
+1,538 candidate classes, of which 180 are filtered out (since abstract, traits,
+interfaces, or other helper classes):
+
+|       | \ReflectionClass | ReflectionClass | Diff | Diff% |
+| ----- | ----------------:| ---------------:| ----:| -----:|
+| Number of Function Calls | 64,747 | 202,783 | 138,036 | 213.2%
+| Incl. Wall Time (microsec) | 2,514,801 | 3,272,539 |757,738 | 30.1%
+| Incl. CPU (microsecs) | 2,480,415 | 3,120,020 | 639,605 | 25.8%
+| Incl. MemUse (bytes) | 108,805,120 | 10,226,160 | -98,578,960 | -90.6%
+| Incl. PeakMemUse (bytes) | 108,927,216 | 10,347,608 | -98,579,608 | **-90.5%**
+
+
+## Usage Example
+
+1. Some (arbitrary) discovery, producing a classmap:  
+    _(…you may skip this.)_
+
+    ```php
+    use Sun\StaticReflection\ReflectionClass;
+
+    $loader = require __DIR__ . '/vendor/autoload.php';
+
+    // This working example does not have a known classmap upfront, so:
+    // Generate one, utilizing the ClassLoader.
+    $prefixes = $loader->getPrefixesPsr4();
+
+    $flags = \FilesystemIterator::UNIX_PATHS;
+    $flags |= \FilesystemIterator::CURRENT_AS_SELF;
+
+    $classmap = array();
+    foreach ($prefixes as $namespace_prefix => $paths) {
+      foreach ($paths as $path) {
+        $iterator = new \RecursiveDirectoryIterator($path, $flags);
+        $filter = new \RecursiveCallbackFilterIterator($iterator, function ($current, $key, $iterator) {
+          if ($iterator->hasChildren()) {
+            return TRUE;
+          }
+          return $current->isFile() && $current->getExtension() === 'php';
+        });
+        $files = new \RecursiveIteratorIterator($filter);
+        foreach ($files as $fileinfo) {
+          $class = $namespace_prefix;
+          if ('' !== $subpath = $fileinfo->getSubPath()) {
+            $class .= strtr($subpath, '/', '\\') . '\\';
+          }
+          $class .= $fileinfo->getBasename('.php');
+          $classmap[$class] = $fileinfo->getPathname();
+        }
+      }
+    }
+    echo json_encode($classmap, JSON_PRETTY_PRINT);
+    ```
+
+    ```json
+    {
+      "Sun\StaticReflection\ReflectionClass": "src/ReflectionClass.php",
+      "Sun\Tests\StaticReflection\ReflectionClassTest": "tests/src/ReflectionClassTest.php",
+      "Sun\Tests\StaticReflection\Fixtures\Example": "tests/fixtures/Example.php",
+      "Sun\Tests\StaticReflection\Fixtures\Base\ImportedInterface": "tests/fixtures/Base/ImportedInterface.php"
+      ...
+    }
+    ```
+    → You have a `classname => pathname` map.
+
+1. _The Real Meat:_ **Filter all discovered class files.**
+
+    ```php
+    $list = array();
+    foreach ($classmap as $classname => $pathname) {
+      // Note: This IS a \ReflectionClass, but does NOT construct one.
+      /** @var \Sun\StaticReflection\ReflectionClass */
+      $class = new ReflectionClass($classname, $pathname);
+
+      // Only include tests.
+      if (!$class->isSubclassOf('PHPUnit_Framework_TestCase')) {
+        continue;
+      }
+
+      // ...and (optionally) prepare them for a listing/later selection:
+      $doc = $class->parseDocComment();
+      $list[$classname] = array(
+        'summary' => $doc['summary'],
+        'covers' => $doc['coversDefaultClass'][0],
+      );
+    }
+    echo json_encode($list, JSON_PRETTY_PRINT);
+    ```
+
+    ```json
+    {
+      "Sun\Tests\StaticReflection\ReflectionClassTest": {
+        "summary": "Tests ReflectionClass.",
+        "covers": "\Sun\StaticReflection\ReflectionClass"
+      }
+    }
+    ```
+    → `ReflectionClass` achieved everything you wanted to achieve.
+
+    …but without using `\ReflectionClass` + loading everything into memory.
+
+1. Why this matters:
+
+    ```php
+    array_walk($classmap, function (&$pathname, $classname) {
+      $pathname = class_exists($classname, FALSE) || interface_exists($classname, FALSE);
+    });
+    echo json_encode($classmap, JSON_PRETTY_PRINT);
+    ```
+
+    ```json
+    {
+      "Sun\Tests\StaticReflection\ReflectionClassTest": false,
+      "Sun\Tests\StaticReflection\Fixtures\Example": false,
+      "Sun\Tests\StaticReflection\Fixtures\Example1Interface": true,
+      "Sun\Tests\StaticReflection\Fixtures\Base\Example": true,
+      ...
+    }
+    ```
+    → The reflected classes themselves did not get loaded.
+
+    However, you asked each class whether it is a subclass of _X_.  Due to
+    class/interface inheritance, the condition of _X_ may not necessarily be
+    within the "visible" scope of the statically reflected class (i.e., the
+    class file itself).  So what happened?
+
+    Instead of reflecting each class file itself, _only_ the **ancestors** of
+    each class/interface were introspected.
+
+    As an example, the following inheritance tree maps to the above
+    `Fixtures\Example` class:
+
+    ```
+    Sun\Tests\StaticReflection\Fixtures\Example
+    ∟ extends
+      ∟ Sun\Tests\StaticReflection\Fixtures\Base\Example
+        ∟ Sun\Tests\StaticReflection\Fixtures\Base\Root
+    ∟ implements
+      ∟ Sun\Tests\StaticReflection\Fixtures\Base\Example2Interface
+      ∟ Sun\Tests\StaticReflection\Fixtures\Base\ImportedInterface
+      ∟ Sun\Tests\StaticReflection\Fixtures\Example1Interface
+        ∟ Sun\Tests\StaticReflection\Fixtures\Base\InvisibleInterface
+    ```
+    → Only the parent class and interfaces _(ancestors)_ were autoloaded.
+
+    That is, because the full stack of their dependencies was not directly
+    _"visible"_ in the statically reflected code.
+
+
+_Pro-Tip:_ To filter for a unique parent/root class/interface, use
+`ReflectionClass::isSubclassOfAny()` to check for the most common/expected
+parent classes and only compare against the statically reflected information
+first.  Only proceed to `isSubclassOf()` in case you want/need to check
+further; e.g.:
+
+```php
+// Static reflection.
+if (!$class->isSubclassOfAny(['Condition\CommonFlavor', 'Condition\AltFlavor'])) {
+  continue;
+}
+// Native reflection of ancestors (if the reflected class has any).
+if (!$class->isSubclassOf('Condition\Absolute\Root')) {
+  continue;
+}
+```
+
+
+## Requirements
+
+* PHP >=5.4.2
+
+
+## Limitations
+
+1. Only one class/interface/trait per file (PSR-2, PSR-0/PSR-4).
+
+1. `implementsInterface($interface)` returns TRUE even if `$interface` is a
+    class.
+
+1. `\ReflectionClass::IS_IMPLICIT_ABSTRACT` is not supported, since methods are
+    not analyzed. (only the file header is analyzed)
+
+1. `\ReflectionClass::$name` is read-only and thus not available. Use
+    `getName()` instead.
+
+1. Calling any other `\ReflectionClass` methods that are not implemented (yet)
+    causes a **fatal error**.
+
+    The parent `\ReflectionClass` class might be dynamically instantiated
+    on-demand in the future.  `ReflectionClass` does implement all methods that
+    can be technically supported already.
+
+
+## Notes
+
+* Technically, StaticReflection is able to work around bytecode caches that are
+    stripping off comments.  
+    _(…just in case that even counts as an issue today)_
+
+
+## Inspirations
+
+Static/Reflection:
+
+* Doctrine's (Static) [Reflection](https://github.com/doctrine/common/tree/master/lib/Doctrine/Common/Reflection)
+* Zend Framework's [Reflection](https://github.com/zendframework/zf2/tree/master/library/Zend/Server/Reflection)
+
+PHPDoc tags/annotations parsing:
+
+* PHPUnit's [Util\Test](https://github.com/sebastianbergmann/phpunit/blob/master/src/Util/Test.php)
+* Doctrine's [Annotations](https://github.com/doctrine/annotations/tree/master/lib/Doctrine/Common/Annotations)
+* phpDocumentor's [Descriptor](https://github.com/phpDocumentor/phpDocumentor2/tree/develop/src/phpDocumentor/Descriptor)
+* Shira's [DocComment](https://github.com/ShiraNai7/php-doc-comment)
+* Philip Graham's [Annotations](https://github.com/pgraham/php-annotations)
+
+
+## License
+
+[MIT](LICENSE) — Copyright (c) 2014 Daniel F. Kudwien (sun)
+
+
+[PHP Reflection]: http://php.net/manual/en/book.reflection.php
diff --git a/core/vendor/sun/staticreflection/composer.json b/core/vendor/sun/staticreflection/composer.json
new file mode 100644
index 0000000..491e3bc
--- /dev/null
+++ b/core/vendor/sun/staticreflection/composer.json
@@ -0,0 +1,27 @@
+{
+    "name": "sun/staticreflection",
+    "description": "Static PHP class code reflection for post-discovery scenarios.",
+    "license": "MIT",
+    "keywords": [ "reflection", "token", "parser", "discovery", "autoload", "docblock", "phpdoc", "annotations" ],
+    "authors": [
+        { "name": "Daniel F. Kudwien (sun)", "email": "sun@unleashedmind.com" }
+    ],
+    "require": {
+        "php": ">=5.4.2",
+        "ext-tokenizer": "*",
+        "ext-Reflection": "*"
+    },
+    "require-dev": {
+    },
+    "autoload": {
+        "psr-4": {
+            "Sun\\StaticReflection\\": "src/"
+        }
+    },
+    "autoload-dev": {
+        "psr-4": {
+            "Sun\\Tests\\StaticReflection\\": "tests/src/",
+            "Sun\\Tests\\StaticReflection\\Fixtures\\": "tests/fixtures/"
+        }
+    }
+}
diff --git a/core/vendor/sun/staticreflection/src/ReflectionClass.php b/core/vendor/sun/staticreflection/src/ReflectionClass.php
new file mode 100644
index 0000000..3325d67
--- /dev/null
+++ b/core/vendor/sun/staticreflection/src/ReflectionClass.php
@@ -0,0 +1,610 @@
+<?php
+
+/**
+ * @file
+ * Contains \Sun\StaticReflection\ReflectionClass.
+ */
+
+namespace Sun\StaticReflection;
+
+/**
+ * Statically reflects a PHP class.
+ *
+ * Use this class when operating on many PHP class files that have been
+ * discovered upfront and which need to be minimally validated at the
+ * class-level (e.g., testing for base classes/interfaces).
+ *
+ * Native PHP facilities like \ReflectionClass and is_subclass_of() would:
+ * 1. trigger the classloader to autoload each file
+ * 2. trigger the classloader to recursively autoload all parent classes and
+ *    interfaces
+ * 3. exceed reasonable CPU and memory consumption very quickly.
+ *
+ * Usage is identical to \ReflectionClass. For that reason (and type-hint
+ * compatibility), this class wraps \ReflectionClass.
+ *
+ * Note: The read-only public property \ReflectionClass::$name does not get
+ * populated by this implementation. Use ReflectionClass::getName() instead.
+ *
+ * Optionally, the doc comment block of the statically reflected class can be
+ * parsed for its PHPDoc summary line as well as (simple) tags/annotations.
+ *
+ * @author Daniel F. Kudwien (sun)
+ *
+ * @todo Lazy-instantiate \ReflectionClass in case a parent method is called.
+ */
+class ReflectionClass extends \ReflectionClass {
+
+  private $classname;
+  private $pathname;
+  private $info;
+  private static $ancestorCache = array();
+
+  /**
+   * Constructs a new ReflectionClass.
+   *
+   * @param string $classname
+   *   The fully-qualified class name (FQCN) to reflect.
+   * @param string $pathname
+   *   The pathname of the file containing $classname. If omitted, a native
+   *   \ReflectionClass will be instantiated.
+   *
+   * @throws \ReflectionException
+   *   If the given $classname is not located in the given $pathname, or if
+   *   $pathname does not exist.
+   */
+  public function __construct($classname, $pathname = NULL) {
+    // If the pathname is unknown, it must be retrieved from \ReflectionClass.
+    // If a class instance was passed then there's no point in omitting
+    // \ReflectionClass, since code has been loaded already.
+    if (!isset($pathname) || !is_string($classname)) {
+      parent::__construct($classname);
+      $this->classname = is_object($classname) ? get_class($classname) : $classname;
+      $this->pathname = parent::getFileName();
+    }
+    else {
+      $this->classname = $classname;
+      $this->pathname = $pathname;
+
+      if (!is_readable($this->pathname)) {
+        throw new \ReflectionException(sprintf('Unable to read file %s.', $this->pathname));
+      }
+    }
+
+    // Instantiating \ReflectionClass immediately triggers reflection; resemble
+    // that.
+    $this->info = $this->reflect();
+  }
+
+  /**
+   * Statically reflects the PHP class file.
+   */
+  protected function reflect() {
+    $content = $this->readFileHeader();
+    $info = self::tokenize($content);
+
+    if ($info['fqcn'] !== $this->classname) {
+      throw new \ReflectionException(vsprintf('Expected %s but found %s in %s.', array(
+        $this->classname,
+        $info['fqcn'],
+        $this->pathname,
+      )));
+    }
+    return $info;
+  }
+
+  /**
+   * Reads the PHP class file header.
+   */
+  private function readFileHeader() {
+    $content = '';
+
+    // \SplFileObject is very resource-intensive when operating on thousands of
+    // files. Use legacy functions until PHP core improves.
+    $file = fopen($this->pathname, 'r');
+    while (FALSE !== $line = fgets($file)) {
+      $content .= $line;
+      if (preg_match('@^\s*(?:(?:abstract|final)\s+)?(?:interface|class|trait)\s+\w+@', $line)) {
+        break;
+      }
+    }
+    fclose($file);
+    unset($file);
+
+    // Strip '{' and (most importantly trailing) whitespace from definition.
+    $content = trim($content, " \t\r\n{");
+    return $content;
+  }
+
+  /**
+   * Tokenizes the file (header) content of a PHP class file.
+   *
+   * @param string $content
+   *   The PHP file (header) content to tokenize.
+   *
+   * @return array
+   *   An associative array containing the parsed results, keyed by PHP
+   *   Tokenizer tokens:
+   *   - fqcn: The FQCN of the parsed element.
+   *   - T_NAMESPACE: The namespace (if any).
+   *   - One of T_CLASS, T_INTERFACE, T_TRAIT: The FQCN of the parsed element
+   *     (the other two will be FALSE).
+   *   - T_EXTENDS, T_IMPLEMENTS: FQCNs of ancestors.
+   *   - T_USE: Imported namespaces (if any), keyed by local alias.
+   *   - T_ABSTRACT, T_FINAL: Respective Boolean flags.
+   *   - T_DOC_COMMENT: The doc comment block of the class.
+   *
+   * Vastly simplified re-implementation of Doctrine's TokenParser.
+   * @see \Doctrine\Common\Annotations\TokenParser
+   */
+  private static function tokenize($content) {
+    $tokens = token_get_all($content);
+
+    $result = array(
+      'fqcn' => '',
+      T_DOC_COMMENT => array(),
+      T_NAMESPACE => '',
+      T_USE => array(),
+      T_AS => '',
+      T_ABSTRACT => FALSE,
+      T_FINAL => FALSE,
+      T_CLASS => '',
+      T_INTERFACE => '',
+      T_TRAIT => '',
+      T_EXTENDS => array(),
+      T_IMPLEMENTS => array(),
+    );
+    /** @var mixed Reference to the last discovered result context. */
+    $context = NULL;
+    /** @var int   The ID of the last discovered result context token. */
+    $context_id = NULL;
+
+    foreach ($tokens as $token) {
+      if (is_array($token)) {
+        if (isset($result[$id = $token[0]])) {
+          // Enter a new context.
+          // For simple string contexts (e.g., T_NAMESPACE, T_CLASS) all code
+          // subsequent code is appended until either a PHP statement delimiter
+          // (e.g., ';') is encountered or new context is entered.
+          $context = &$result[$id];
+          $context_id = $id;
+
+          // All doc comments are recorded; the last one wins. (see below)
+          if ($id === T_DOC_COMMENT) {
+            $context[] = $token[1];
+            unset($context, $context_id);
+          }
+          // Create a new sub-element for contexts supporting multiple values.
+          elseif ($id === T_USE || $id === T_IMPLEMENTS || $id === T_EXTENDS) {
+            $context = &$context[];
+            $context = '';
+          }
+          // Boolean flags.
+          elseif ($id === T_ABSTRACT || $id === T_FINAL) {
+            $context = TRUE;
+            unset($context, $context_id);
+          }
+        }
+        // Not a result context; append content to last result context.
+        elseif (isset($context_id) && $id !== T_WHITESPACE && $id !== T_COMMENT) {
+          $context .= $token[1];
+        }
+      }
+      // Append simple strings to last result context.
+      elseif (isset($context_id)) {
+        // Create a new sub-element for T_IMPLEMENTS, T_EXTENDS, T_USE.
+        if ($token === ',') {
+          $context = &$result[$context_id][];
+          $context = '';
+        }
+        // Terminate last result context upon PHP statement delimiters.
+        elseif ($token === ';' || $token === '{') {
+          // When terminating 'use' or 'as', inject the local alias as key.
+          if ($context_id === T_AS) {
+            $import = array_pop($result[T_USE]);
+            $result[T_USE][$context] = $import;
+            $context = '';
+          }
+          elseif ($context_id === T_USE) {
+            $import = array_pop($result[T_USE]);
+            $result[T_USE][self::basename($import)] = $import;
+          }
+          unset($context, $context_id);
+        }
+      }
+    }
+    unset($result[T_AS]);
+
+    // The last doc comment belongs to the class.
+    $result[T_DOC_COMMENT] = end($result[T_DOC_COMMENT]) ?: '';
+
+    // Resolve class, parent class, interface, and ancestor names.
+    foreach (array(T_CLASS, T_INTERFACE, T_TRAIT) as $id) {
+      if ($result[$id] !== '') {
+        $result[$id] = self::resolveName($result[T_NAMESPACE], $result[$id]);
+        $result['fqcn'] = $result[$id];
+      }
+      else {
+        $result[$id] = FALSE;
+      }
+    }
+    foreach (array(T_EXTENDS, T_IMPLEMENTS) as $id) {
+      foreach ($result[$id] as &$ancestor) {
+        $ancestor = self::resolveName($result[T_NAMESPACE], $ancestor, $result[T_USE]);
+      }
+    }
+
+    return $result;
+  }
+
+  /**
+   * Resolves the name of an ancestor class.
+   *
+   * @param string $namespace
+   *   The namespace context of the parsed class.
+   * @param string $name
+   *   The name to resolve against $namespace.
+   * @param array $imports
+   *   An associative array of imported namespaces, keyed by local alias, as
+   *   parsed by ReflectionClass::tokenize().
+   *
+   * @return string
+   *   $name resolved against $namespace and $imports.
+   */
+  private static function resolveName($namespace, $name, array $imports = array()) {
+    // Strip namespace prefix, if any.
+    if ($name[0] === '\\') {
+      return substr($name, 1);
+    }
+    if ($imports) {
+      // If $name maps directly to an imported namespace alias, use its FQCN.
+      if (isset($imports[$name])) {
+        return $imports[$name];
+      }
+      // Otherwise, check whether $name up until the first namespace separator
+      // maps to an alias. If so, prefix $name with its FQCN.
+      $space = strtok($name, '\\');
+      if (isset($imports[$space])) {
+        return $imports[$space] . substr($name, strlen($space));
+      }
+    }
+    if ($namespace === '') {
+      return $name;
+    }
+    return $namespace . '\\' . $name;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDocComment() {
+    return $this->info[T_DOC_COMMENT];
+  }
+
+  /**
+   * Returns the cleaned doc commment block (without surrounding asterisks).
+   *
+   * @param string $docblock
+   *   The original doc comment block, as returned by
+   *   ReflectionClass::getDocComment().
+   *
+   * @return string
+   */
+  public static function getPlainDocComment($docblock) {
+    $plainDocComment = preg_replace([
+      // Strip trailing '*/', leading '/**', and '*' prefixes.
+      '@^[ \t]*\*+/$|^[ \t]*/?\*+[ \t]?@m',
+      // Normalize line endings.
+      '@\r?\n@',
+    ], ['', "\n"], $docblock);
+    $plainDocComment = trim($plainDocComment, "\n");
+    if ($plainDocComment !== '') {
+      $plainDocComment .= "\n";
+    }
+    return $plainDocComment;
+  }
+
+  /**
+   * Returns the summary line of the class doc comment block.
+   *
+   * @return string
+   *   The PHPDoc summary line.
+   */
+  public function getSummary() {
+    return self::parseSummary(self::getPlainDocComment($this->getDocComment()));
+  }
+
+  /**
+   * Parses the summary line from a plain doc comment block.
+   *
+   * @param string $plainDocComment
+   *   The plain doc comment block (without surrounding asterisks), as returned
+   *   by ReflectionClass::getPlainDocComment().
+   *
+   * @return string
+   *   The PHPDoc summary line.
+   */
+  public static function parseSummary($plainDocComment) {
+    // Strip everything starting with the first PHPDoc tag/annotation.
+    $summary = preg_replace('/^@.+/ms', '', $plainDocComment);
+
+    // Extract first paragraph (two newlines).
+    if (preg_match('@(.+?)(?=\n\n)@s', $summary, $matches)) {
+      $summary = $matches[1];
+    }
+
+    // Join multiple lines onto one.
+    return trim(strtr($summary, "\n", ' '));
+  }
+
+  /**
+   * Returns the PHPDoc tags/annotations of the class doc comment block.
+   *
+   * @return array
+   *   The parsed annotations. Each value is an array of values.
+   */
+  public function getAnnotations() {
+    return self::parseAnnotations(self::getPlainDocComment($this->getDocComment()));
+  }
+
+  /**
+   * Parses the PHPDoc tags/annotations of a plain doc comment block.
+   *
+   * Only single-line tags/annotations (key/value pairs) are supported.
+   *
+   * @param string $plainDocComment
+   *   The plain doc comment block (without surrounding asterisks), as returned
+   *   by ReflectionClass::getPlainDocComment().
+   *
+   * @return array
+   *   The parsed annotations. Each value is an array of values.
+   *
+   * @see \PHPUnit_Util_Test::parseAnnotations()
+   * @author Sebastian Bergmann <sebastian@phpunit.de>
+   * @copyright 2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+   */
+  public static function parseAnnotations($plainDocComment) {
+    $annotations = array();
+    if (preg_match_all('/^[ \t]*@(?P<name>[A-Za-z_-]+)(?:[ \t]+(?P<value>.*?))?[ \t]*$/m', $plainDocComment, $matches)) {
+      for ($i = 0, $ii = count($matches[0]); $i < $ii; ++$i) {
+        $annotations[$matches['name'][$i]][] = $matches['value'][$i];
+      }
+    }
+    return $annotations;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFileName() {
+    return $this->pathname;
+  }
+
+  /**
+   * {@inheritdoc}
+   *
+   * Note that only interfaces implemented directly on the statically reflected
+   * class are returned.
+   */
+  public function getInterfaceNames() {
+    return $this->info[T_IMPLEMENTS];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getModifiers() {
+    $flags = 0;
+    if ($this->isAbstract()) {
+      $flags |= \ReflectionClass::IS_EXPLICIT_ABSTRACT;
+    }
+    if ($this->isFinal()) {
+      $flags |= \ReflectionClass::IS_FINAL;
+    }
+    return $flags;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getName() {
+    return $this->classname;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getNamespaceName() {
+    return $this->info[T_NAMESPACE];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getShortName() {
+    return self::basename($this->classname);
+  }
+
+  /**
+   * {@inheritdoc}
+   *
+   * Note: This method returns TRUE even if $class is not an interface; i.e.,
+   * if the input is bogus. Static reflection should not be used if that level
+   * of accuracy is required.
+   */
+  public function implementsInterface($class) {
+    // Traits cannot implement interfaces.
+    if ($this->info[T_TRAIT]) {
+      return FALSE;
+    }
+    // An interface implements itself.
+    if ($class === $this->info['fqcn']) {
+      return TRUE;
+    }
+    return $this->isSubclassOf($class);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function inNamespace() {
+    return !empty($this->info[T_NAMESPACE]);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isAbstract() {
+    return $this->info[T_ABSTRACT];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isFinal() {
+    return $this->info[T_FINAL];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isInstantiable() {
+    return $this->info[T_CLASS] && !$this->info[T_ABSTRACT];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isInterface() {
+    return !empty($this->info[T_INTERFACE]);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isInternal() {
+    return FALSE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isIterateable() {
+    return array_intersect($this->info[T_IMPLEMENTS], array('Iterator', 'IteratorAggregate', 'Traversable')) || preg_grep('/Iterator$/', $this->info[T_IMPLEMENTS]);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isSubclassOf($class) {
+    if (!$this->info[T_EXTENDS] && !$this->info[T_IMPLEMENTS]) {
+      return FALSE;
+    }
+    if ($class === $this->info['fqcn']) {
+      return FALSE;
+    }
+    // Check for a direct match first.
+    if ($this->isSubclassOfAny(array($class))) {
+      return TRUE;
+    }
+    // Otherwise, inspect all ancestors. This causes all interfaces and parent
+    // classes, and all of their dependencies to get autoloaded.
+    if ($this->isSubclassOfAnyAncestors($this->info[T_EXTENDS], $class)) {
+      return TRUE;
+    }
+    return $this->isSubclassOfAnyAncestors($this->info[T_IMPLEMENTS], $class);
+  }
+
+  /**
+   * Returns whether the statically reflected class is a subclass of one of the
+   * given classes.
+   *
+   * Same as isSubclassOf(), but allows to check multiple classes at once for a
+   * direct match (as an OR condition), so as to avoid autoloading of all parent
+   * classes and interfaces.
+   *
+   * Only use this as a separate precondition prior to calling
+   * ReflectionClass::isSubclassOf() in order to improve performance when
+   * testing many classes that commonly extend from certain base classes or
+   * implement certain interfaces.
+   *
+   * @param string[] $classes
+   *   A list of FQCNs to test against the statically reflected class.
+   *
+   * @return bool
+   *   TRUE if the statically reflected class is a subclass of any class in
+   *   $classes, FALSE otherwise. Note that indirect ancestor classes are NOT
+   *   resolved; only direct matches in the statically reflected class may be
+   *   found.
+   *
+   * @see ReflectionClass::isSubclassOf()
+   */
+  public function isSubclassOfAny(array $classes) {
+    if ($this->info[T_EXTENDS] && array_intersect($this->info[T_EXTENDS], $classes)) {
+      return TRUE;
+    }
+    return $this->info[T_IMPLEMENTS] && array_intersect($this->info[T_IMPLEMENTS], $classes);
+  }
+
+  /**
+   * Returns whether a class is a subclass of a given class.
+   *
+   * To avoid loading the statically reflected class itself, this
+   * re-implementation of is_subclass_of() is used to test against the ancestor
+   * classes only (which will be reflected by PHP core); i.e., only the parent
+   * class and interfaces.
+   *
+   * It uses an internal cache, because it is assumed that many classes inherit
+   * from the same ancestors.
+   *
+   * @see is_subclass_of()
+   */
+  protected function isSubclassOfAnyAncestors(array $ancestors, $class) {
+    foreach ($ancestors as $ancestor) {
+      if (!isset(self::$ancestorCache[$ancestor])) {
+        self::$ancestorCache[$ancestor] = array();
+        self::$ancestorCache[$ancestor] += class_parents($ancestor) ?: array();
+        self::$ancestorCache[$ancestor] += class_implements($ancestor) ?: array();
+      }
+      if (isset(self::$ancestorCache[$ancestor][$class])) {
+        return TRUE;
+      }
+    }
+    return FALSE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isTrait() {
+    return !empty($this->info[T_TRAIT]);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isUserDefined() {
+    return TRUE;
+  }
+
+  /**
+   * Returns the basename (short name) of a class name.
+   *
+   * @param string $fqcn
+   *   The fully-qualified class name for which to return the basename.
+   *
+   * @return string
+   *
+   * This function is named basename(), because basename() natively supports the
+   * operation, but only on Windows. PHP core does not provide a native function.
+   * This algorithm requires two lines of code, but has been measured to be the
+   * most performant user space implementation.
+   *
+   * @see basename()
+   */
+  public static function basename($fqcn) {
+    $parts = explode('\\', $fqcn);
+    return end($parts);
+  }
+
+}
