diff --git a/core/modules/action/src/Tests/Migrate/d6/MigrateActionConfigsTest.php b/core/modules/action/src/Tests/Migrate/d6/MigrateActionConfigsTest.php
index 764adfa..207aa68 100644
--- a/core/modules/action/src/Tests/Migrate/d6/MigrateActionConfigsTest.php
+++ b/core/modules/action/src/Tests/Migrate/d6/MigrateActionConfigsTest.php
@@ -20,11 +20,9 @@ class MigrateActionConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  public static $modules = array('action');
+  public static $modules = ['action'];
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorConfigsTest.php b/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorConfigsTest.php
index b01417e..b9ca05a 100644
--- a/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorConfigsTest.php
+++ b/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorConfigsTest.php
@@ -20,11 +20,9 @@ class MigrateAggregatorConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  public static $modules = array('aggregator');
+  public static $modules = ['aggregator'];
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorFeedTest.php b/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorFeedTest.php
index 2b9ee0d..bf3f516 100644
--- a/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorFeedTest.php
+++ b/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorFeedTest.php
@@ -17,7 +17,10 @@
  */
 class MigrateAggregatorFeedTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('aggregator');
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['aggregator'];
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorItemTest.php b/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorItemTest.php
index 8930fef..662d575 100644
--- a/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorItemTest.php
+++ b/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorItemTest.php
@@ -17,7 +17,10 @@
  */
 class MigrateAggregatorItemTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('aggregator');
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['aggregator'];
 
   /**
    * {@inheritdoc}
@@ -26,26 +29,7 @@ protected function setUp() {
     parent::setUp();
     $this->installEntitySchema('aggregator_feed');
     $this->installEntitySchema('aggregator_item');
-
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'd6_aggregator_feed' => array(
-        array(array(5), array(5)),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-
-    $entity = entity_create('aggregator_feed', array(
-      'fid' => 5,
-      'title' => 'Drupal Core',
-      'url' => 'https://groups.drupal.org/not_used/167169',
-      'refresh' => 900,
-      'checked' => 1389919932,
-      'description' => 'Drupal Core Group feed',
-    ));
-    $entity->enforceIsNew();
-    $entity->save();
-    $this->executeMigration('d6_aggregator_item');
+    $this->executeMigrations(['d6_aggregator_feed', 'd6_aggregator_item']);
   }
 
   /**
diff --git a/core/modules/block/src/Tests/Migrate/d6/MigrateBlockTest.php b/core/modules/block/src/Tests/Migrate/d6/MigrateBlockTest.php
index 4222734..3344bba 100644
--- a/core/modules/block/src/Tests/Migrate/d6/MigrateBlockTest.php
+++ b/core/modules/block/src/Tests/Migrate/d6/MigrateBlockTest.php
@@ -18,50 +18,24 @@
 class MigrateBlockTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  static $modules = array(
+  public static $modules = [
     'block',
     'views',
     'comment',
     'menu_ui',
     'block_content',
-    'node',
-  );
+  ];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
+    $this->installConfig(['block_content']);
     $this->installEntitySchema('block_content');
 
-    $entities = array(
-      entity_create('menu', array('id' => 'primary-links')),
-      entity_create('menu', array('id' => 'secondary-links')),
-      entity_create('block_content', array('id' => 1, 'type' => 'basic', 'info' => $this->randomMachineName(8))),
-      entity_create('block_content', array('id' => 2, 'type' => 'basic', 'info' => $this->randomMachineName(8))),
-    );
-    foreach ($entities as $entity) {
-      $entity->enforceIsNew(TRUE);
-      $entity->save();
-    }
-    $this->prepareMigrations(array(
-      'd6_custom_block' => array(
-        array(array(1), array(1)),
-        array(array(2), array(2)),
-      ),
-      'menu' => array(
-        array(array('menu1'), array('menu')),
-      ),
-      'd6_user_role' => array(
-        array(array(2), array('authenticated')),
-        array(array(3), array('migrate_test_role_1')),
-      ),
-    ));
-
     // Set Bartik and Seven as the default public and admin theme.
     $config = $this->config('system.theme');
     $config->set('default', 'bartik');
@@ -69,9 +43,17 @@ protected function setUp() {
     $config->save();
 
     // Install one of D8's test themes.
-    \Drupal::service('theme_handler')->install(array('test_theme'));
-
-    $this->executeMigration('d6_block');
+    \Drupal::service('theme_handler')->install(['test_theme']);
+
+    $this->executeMigrations([
+      'd6_filter_format',
+      'block_content_type',
+      'block_content_body_field',
+      'd6_custom_block',
+      'menu',
+      'd6_user_role',
+      'd6_block',
+    ]);
   }
 
   /**
diff --git a/core/modules/block/src/Tests/Migrate/d7/MigrateBlockTest.php b/core/modules/block/src/Tests/Migrate/d7/MigrateBlockTest.php
index b0dff81..cecf468 100644
--- a/core/modules/block/src/Tests/Migrate/d7/MigrateBlockTest.php
+++ b/core/modules/block/src/Tests/Migrate/d7/MigrateBlockTest.php
@@ -18,10 +18,8 @@
  */
 class MigrateBlockTest extends MigrateDrupal7TestBase {
 
-  /**
-   * Modules to enable.
-   *
-   * @var array
+ /**
+   * {@inheritdoc}
    */
   static $modules = [
     'block',
@@ -52,12 +50,14 @@ protected function setUp() {
     // Install one of D8's test themes.
     \Drupal::service('theme_handler')->install(['bartik']);
 
-    $this->executeMigration('d7_filter_format');
-    $this->executeMigration('d7_user_role');
-    $this->executeMigration('block_content_type');
-    $this->executeMigration('block_content_body_field');
-    $this->executeMigration('d7_custom_block');
-    $this->executeMigration('d7_block');
+    $this->executeMigrations([
+      'd7_filter_format',
+      'd7_user_role',
+      'block_content_type',
+      'block_content_body_field',
+      'd7_custom_block',
+      'd7_block',
+    ]);
   }
 
   /**
diff --git a/core/modules/block_content/src/Tests/Migrate/MigrateBlockContentBodyFieldTest.php b/core/modules/block_content/src/Tests/Migrate/MigrateBlockContentBodyFieldTest.php
index cb0d6c9..159f988 100644
--- a/core/modules/block_content/src/Tests/Migrate/MigrateBlockContentBodyFieldTest.php
+++ b/core/modules/block_content/src/Tests/Migrate/MigrateBlockContentBodyFieldTest.php
@@ -29,8 +29,10 @@ protected function setUp() {
     parent::setUp();
     $this->installConfig(['block_content']);
     $this->installEntitySchema('block_content');
-    $this->executeMigration('block_content_type');
-    $this->executeMigration('block_content_body_field');
+    $this->executeMigrations([
+      'block_content_type',
+      'block_content_body_field',
+    ]);
   }
 
   /**
diff --git a/core/modules/block_content/src/Tests/Migrate/d6/MigrateBlockContentTest.php b/core/modules/block_content/src/Tests/Migrate/d6/MigrateBlockContentTest.php
index 333318a..3b3098b 100644
--- a/core/modules/block_content/src/Tests/Migrate/d6/MigrateBlockContentTest.php
+++ b/core/modules/block_content/src/Tests/Migrate/d6/MigrateBlockContentTest.php
@@ -17,25 +17,25 @@
  */
 class MigrateBlockContentTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('block', 'block_content', 'filter', 'text');
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['block', 'block_content'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(array('block_content'));
+    $this->installConfig(['block_content']);
     $this->installEntitySchema('block_content');
 
-    $this->executeMigration('block_content_type');
-    $this->executeMigration('block_content_body_field');
-
-    $this->prepareMigrations(array(
-      'd6_filter_format' => array(
-        array(array(2), array('full_html'))
-      )
-    ));
-    $this->executeMigration('d6_custom_block');
+    $this->executeMigrations([
+      'd6_filter_format',
+      'block_content_type',
+      'block_content_body_field',
+      'd6_custom_block',
+    ]);
   }
 
   /**
diff --git a/core/modules/block_content/src/Tests/Migrate/d7/MigrateCustomBlockTest.php b/core/modules/block_content/src/Tests/Migrate/d7/MigrateCustomBlockTest.php
index 733748d..b19d2a4 100644
--- a/core/modules/block_content/src/Tests/Migrate/d7/MigrateCustomBlockTest.php
+++ b/core/modules/block_content/src/Tests/Migrate/d7/MigrateCustomBlockTest.php
@@ -32,10 +32,12 @@ protected function setUp() {
     $this->installConfig(static::$modules);
     $this->installEntitySchema('block_content');
 
-    $this->executeMigration('d7_filter_format');
-    $this->executeMigration('block_content_type');
-    $this->executeMigration('block_content_body_field');
-    $this->executeMigration('d7_custom_block');
+    $this->executeMigrations([
+      'd7_filter_format',
+      'block_content_type',
+      'block_content_body_field',
+      'd7_custom_block',
+    ]);
   }
 
   /**
diff --git a/core/modules/book/src/Tests/Migrate/d6/MigrateBookConfigsTest.php b/core/modules/book/src/Tests/Migrate/d6/MigrateBookConfigsTest.php
index 6dc09cd..76a8b88 100644
--- a/core/modules/book/src/Tests/Migrate/d6/MigrateBookConfigsTest.php
+++ b/core/modules/book/src/Tests/Migrate/d6/MigrateBookConfigsTest.php
@@ -20,11 +20,9 @@ class MigrateBookConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  public static $modules = array('book', 'system', 'node', 'field', 'text', 'entity_reference');
+  public static $modules = ['book'];
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/book/src/Tests/Migrate/d6/MigrateBookTest.php b/core/modules/book/src/Tests/Migrate/d6/MigrateBookTest.php
index 6f57fe2..4169baf 100644
--- a/core/modules/book/src/Tests/Migrate/d6/MigrateBookTest.php
+++ b/core/modules/book/src/Tests/Migrate/d6/MigrateBookTest.php
@@ -17,39 +17,19 @@
  */
 class MigrateBookTest extends MigrateDrupal6TestBase {
 
-  public static $modules = array('book', 'system', 'node', 'field', 'text', 'entity_reference', 'user');
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['book'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
-    $this->installEntitySchema('node');
-    $this->installSchema('book', array('book'));
-    $this->installSchema('node', array('node_access'));
-
-    // Create a default bogus mapping for all variants of d6_node.
-    $id_mappings = array(
-      'd6_node:*' => array(
-        array(
-          array(0),
-          array(0),
-        ),
-      ),
-    );
-    for ($i = 4; $i <= 8; $i++) {
-      $entity = entity_create('node', array(
-        'type' => 'story',
-        'title' => "Node $i",
-        'nid' => $i,
-        'status' => TRUE,
-      ));
-      $entity->enforceIsNew();
-      $entity->save();
-      $id_mappings['d6_node__story'][] = array(array($i), array($i));
-    }
-    $this->prepareMigrations($id_mappings);
+    $this->installSchema('book', ['book']);
+    $this->installSchema('node', ['node_access']);
+    $this->migrateContent();
     $this->executeMigration('d6_book');
   }
 
diff --git a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentTest.php b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentTest.php
index 4b1694a..4545e46 100644
--- a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentTest.php
@@ -19,10 +19,16 @@ class MigrateCommentTest extends MigrateDrupal6TestBase {
 
   use CommentTestTrait;
 
-  // Directly testing that comments' entity_id is populated upon importing is
-  // not straightforward, but RDF module serves as an implicit test -
-  // its hook_comment_storage_load() references a stubbed comment.
-  static $modules = ['node', 'comment', 'text', 'filter', 'rdf'];
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = [
+    'comment',
+    // Directly testing that a stub comment's entity_id is populated upon
+    // importing is not straightforward, but RDF module serves as an implicit
+    // test - its hook_comment_storage_load() references a stubbed comment.
+    'rdf',
+  ];
 
   /**
    * {@inheritdoc}
@@ -34,38 +40,20 @@ protected function setUp() {
     $this->installEntitySchema('comment');
     $this->installSchema('comment', ['comment_entity_statistics']);
     $this->installSchema('system', ['router']);
-    $this->installConfig(['node', 'comment']);
+    $this->installConfig(['comment']);
 
     // The entity.node.canonical route must exist when the RDF hook is called.
     $this->container->get('router.builder')->rebuild();
 
-    entity_create('node_type', array('type' => 'page'))->save();
-    entity_create('node_type', array('type' => 'story'))->save();
-    $this->addDefaultCommentField('node', 'story');
-    $this->container->get('entity.manager')->getStorage('comment_type')->create(array(
-      'id' => 'comment_no_subject',
-      'label' => 'comment_no_subject',
-      'target_entity_type_id' => 'node',
-    ))->save();
-    \Drupal::service('comment.manager')->addBodyField('comment_no_subject');
-
-    $node = entity_create('node', array(
-      'type' => 'story',
-      'nid' => 1,
-      'title' => $this->randomString(),
-    ));
-    $node->enforceIsNew();
-    $node->save();
-    $id_mappings = array(
-      'd6_filter_format' => array(array(array(1), array('filtered_html'))),
-      'd6_node:*' => array(array(array(1), array(1))),
-      'd6_user' => array(array(array(0), array(0))),
-      'd6_comment_type' => array(array(array('comment'), array('comment_no_subject'))),
-      'd6_comment_entity_display' => array(array(array('story'), array('node', 'story', 'default', 'comment'))),
-      'd6_comment_entity_form_display' => array(array(array('story'), array('node', 'story', 'default', 'comment'))),
-    );
-    $this->prepareMigrations($id_mappings);
-    $this->executeMigration('d6_comment');
+    $this->migrateContent();
+    $this->executeMigrations([
+      'd6_comment_type',
+      'd6_comment_field',
+      'd6_comment_field_instance',
+      'd6_comment_entity_display',
+      'd6_comment_entity_form_display',
+      'd6_comment',
+    ]);
   }
 
   /**
diff --git a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentTypeTest.php b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentTypeTest.php
index 20c9a6a..bedf132 100644
--- a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentTypeTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentTypeTest.php
@@ -17,7 +17,10 @@
  */
 class MigrateCommentTypeTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('node', 'comment', 'text', 'filter');
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['comment'];
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableDisplayBase.php b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableDisplayBase.php
index 0995df0..9997733 100644
--- a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableDisplayBase.php
+++ b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableDisplayBase.php
@@ -15,57 +15,22 @@
 abstract class MigrateCommentVariableDisplayBase extends MigrateDrupal6TestBase {
 
   /**
-   * The ID of migration to run.
-   *
-   * This constant needs to be set in the concrete class in order for the test
-   * to work.
-   */
-  const MIGRATION = '';
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  static $modules = array('comment', 'node');
-
-  /**
-   * The node types being tested.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  protected $types = array('page', 'story', 'article');
+  public static $modules = ['comment'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'node',
-      'field_name' => 'comment',
-      'type' => 'comment',
-      'translatable' => '0',
-    ))->save();
-    foreach ($this->types as $type) {
-      entity_create('node_type', array('type' => $type))->save();
-      entity_create('field_config', array(
-        'label' => 'Comments',
-        'description' => '',
-        'field_name' => 'comment',
-        'entity_type' => 'node',
-        'bundle' => $type,
-        'required' => 1,
-      ))->save();
-    }
-    $id_mappings = array(
-      'd6_comment_field_instance' => array(
-        array(array('page'), array('node', 'comment', 'page')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-    $this->executeMigration(static::MIGRATION);
-
+    $this->installConfig(['comment']);
+    $this->migrateContentTypes();
+    $this->executeMigrations([
+      'd6_comment_type',
+      'd6_comment_field',
+      'd6_comment_field_instance',
+    ]);
   }
 
 }
diff --git a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityDisplayTest.php b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityDisplayTest.php
index aae61f7..232654f 100644
--- a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityDisplayTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityDisplayTest.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\comment\Tests\Migrate\d6;
 
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
+
 /**
  * Upgrade comment variables to entity.display.node.*.default.yml.
  *
@@ -15,21 +17,19 @@
 class MigrateCommentVariableEntityDisplayTest extends MigrateCommentVariableDisplayBase {
 
   /**
-   * The migration to run.
+   * {@inheritdoc}
    */
-  const MIGRATION = 'd6_comment_entity_display';
-
-  /**
-   * The node types being used.
-   */
-  protected $types = array('page', 'story', 'article');
+  protected function setUp() {
+    parent::setUp();
+    $this->executeMigration('d6_comment_entity_display');
+  }
 
   /**
    * Tests comment variables migrated into an entity display.
    */
   public function testCommentEntityDisplay() {
-    foreach ($this->types as $type) {
-      $component = entity_get_display('node', $type, 'default')->getComponent('comment');
+    foreach (['page', 'story', 'article'] as $type) {
+      $component = EntityViewDisplay::load('node.' . $type . '.default')->getComponent('comment');
       $this->assertIdentical('hidden', $component['label']);
       $this->assertIdentical('comment_default', $component['type']);
       $this->assertIdentical(20, $component['weight']);
diff --git a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
index 0a94c91..4875e6a 100644
--- a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\comment\Tests\Migrate\d6;
 
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -17,43 +18,31 @@
 class MigrateCommentVariableEntityFormDisplaySubjectTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  public static $modules = array('comment', 'node');
+  public static $modules = ['comment'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    foreach (['comment', 'comment_no_subject'] as $comment_type) {
-      entity_create('comment_type', array(
-        'id' => $comment_type,
-        'target_entity_type_id' => 'node',
-      ))
-        ->save();
-    }
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'd6_comment_type' => array(
-        array(array('comment'), array('comment_no_subject')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-    $this->executeMigration('d6_comment_entity_form_display_subject');
+    $this->installConfig(['comment']);
+    $this->executeMigrations([
+      'd6_comment_type',
+      'd6_comment_entity_form_display_subject',
+    ]);
   }
 
   /**
    * Tests comment subject variable migrated into an entity display.
    */
   public function testCommentEntityFormDisplay() {
-    $component = entity_get_form_display('comment', 'comment', 'default')
+    $component = EntityFormDisplay::load('comment.comment.default')
       ->getComponent('subject');
     $this->assertIdentical('string_textfield', $component['type']);
     $this->assertIdentical(10, $component['weight']);
-    $component = entity_get_form_display('comment', 'comment_no_subject', 'default')
+    $component = EntityFormDisplay::load('comment.comment_no_subject.default')
       ->getComponent('subject');
     $this->assertNull($component);
   }
diff --git a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityFormDisplayTest.php b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityFormDisplayTest.php
index 011a750..e1496d2 100644
--- a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityFormDisplayTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableEntityFormDisplayTest.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\comment\Tests\Migrate\d6;
 
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
+
 /**
  * Upgrade comment variables to core.entity_form_display.node.*.default.yml.
  *
@@ -15,16 +17,20 @@
 class MigrateCommentVariableEntityFormDisplayTest extends MigrateCommentVariableDisplayBase {
 
   /**
-   * The migration to run.
+   * {@inheritdoc}
    */
-  const MIGRATION = 'd6_comment_entity_form_display';
+  protected function setUp() {
+    parent::setUp();
+    $this->executeMigration('d6_comment_entity_form_display');
+  }
 
   /**
    * Tests comment variables migrated into an entity display.
    */
   public function testCommentEntityFormDisplay() {
-    foreach ($this->types as $type) {
-      $component = entity_get_form_display('node', $type, 'default')->getComponent('comment');
+    foreach (['page', 'article', 'story'] as $type) {
+      $component = EntityFormDisplay::load('node.' . $type . '.default')
+        ->getComponent('comment');
       $this->assertIdentical('comment_default', $component['type']);
       $this->assertIdentical(20, $component['weight']);
     }
diff --git a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableFieldTest.php b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableFieldTest.php
index ba3cae2..e70c9a3 100644
--- a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableFieldTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableFieldTest.php
@@ -17,31 +17,19 @@
  */
 class MigrateCommentVariableFieldTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('comment', 'node');
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['comment'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    foreach (array('page', 'story', 'test') as $type) {
-      entity_create('node_type', array('type' => $type))->save();
-    }
-    foreach (['comment', 'comment_no_subject'] as $comment_type) {
-      entity_create('comment_type', array(
-        'id' => $comment_type,
-        'target_entity_type_id' => 'node',
-      ))
-      ->save();
-    }
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'd6_comment_type' => array(
-        array(array('comment'), array('comment_no_subject')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-    $this->executeMigration('d6_comment_field');
+    $this->installConfig(['comment']);
+    $this->migrateContentTypes();
+    $this->executeMigrations(['d6_comment_type', 'd6_comment_field']);
   }
 
   /**
diff --git a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableInstanceTest.php b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableInstanceTest.php
index be8cf91..2ceb33a 100644
--- a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableInstanceTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableInstanceTest.php
@@ -8,6 +8,7 @@
 namespace Drupal\comment\Tests\Migrate\d6;
 
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
+use Drupal\node\Entity\Node;
 
 /**
  * Upgrade comment variables to field.instance.node.*.comment.yml.
@@ -16,47 +17,30 @@
  */
 class MigrateCommentVariableInstanceTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('comment', 'node');
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['comment'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'd6_comment_field' => array(
-        array(array('page'), array('node', 'page')),
-      ),
-      'd6_node_type' => array(
-        array(array('page'), array('page')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-
-    foreach (array('page', 'story', 'article') as $type) {
-      entity_create('node_type', array('type' => $type))->save();
-    }
-    entity_create('field_storage_config', array(
-      'entity_type' => 'node',
-      'field_name' => 'comment',
-      'type' => 'comment',
-      'translatable' => '0',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'node',
-      'field_name' => 'comment_no_subject',
-      'type' => 'comment',
-      'translatable' => '0',
-    ))->save();
-    $this->executeMigration('d6_comment_field_instance');
+    $this->installConfig(['comment']);
+    $this->migrateContentTypes();
+    $this->executeMigrations([
+      'd6_comment_type',
+      'd6_comment_field',
+      'd6_comment_field_instance',
+    ]);
   }
 
   /**
    * Test the migrated field instance values.
    */
   public function testCommentFieldInstance() {
-    $node = entity_create('node', array('type' => 'page'));
+    $node = Node::create(['type' => 'page']);
     $this->assertIdentical(0, $node->comment->status);
     $this->assertIdentical('comment', $node->comment->getFieldDefinition()->getName());
     $settings = $node->comment->getFieldDefinition()->getSettings();
@@ -66,7 +50,7 @@ public function testCommentFieldInstance() {
     $this->assertIdentical(FALSE, $settings['form_location']);
     $this->assertIdentical(1, $settings['preview']);
 
-    $node = entity_create('node', array('type' => 'story'));
+    $node = Node::create(['type' => 'story']);
     $this->assertIdentical(2, $node->comment_no_subject->status);
     $this->assertIdentical('comment_no_subject', $node->comment_no_subject->getFieldDefinition()->getName());
     $settings = $node->comment_no_subject->getFieldDefinition()->getSettings();
diff --git a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityDisplayTest.php b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityDisplayTest.php
index 8895b31..14b3536 100644
--- a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityDisplayTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityDisplayTest.php
@@ -25,11 +25,13 @@ class MigrateCommentEntityDisplayTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
-    $this->executeMigration('d7_node_type');
-    $this->executeMigration('d7_comment_type');
-    $this->executeMigration('d7_comment_field');
-    $this->executeMigration('d7_comment_field_instance');
-    $this->executeMigration('d7_comment_entity_display');
+    $this->executeMigrations([
+      'd7_node_type',
+      'd7_comment_type',
+      'd7_comment_field',
+      'd7_comment_field_instance',
+      'd7_comment_entity_display',
+    ]);
   }
 
   /**
diff --git a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php
index 4665342..c261ffb 100644
--- a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php
@@ -25,9 +25,11 @@ class MigrateCommentEntityFormDisplaySubjectTest extends MigrateDrupal7TestBase
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
-    $this->executeMigration('d7_node_type');
-    $this->executeMigration('d7_comment_type');
-    $this->executeMigration('d7_comment_entity_form_display_subject');
+    $this->executeMigrations([
+      'd7_node_type',
+      'd7_comment_type',
+      'd7_comment_entity_form_display_subject',
+    ]);
   }
 
   /**
diff --git a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityFormDisplayTest.php b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityFormDisplayTest.php
index 8c482a1..2700a4c 100644
--- a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityFormDisplayTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentEntityFormDisplayTest.php
@@ -25,11 +25,13 @@ class MigrateCommentEntityFormDisplayTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
-    $this->executeMigration('d7_node_type');
-    $this->executeMigration('d7_comment_type');
-    $this->executeMigration('d7_comment_field');
-    $this->executeMigration('d7_comment_field_instance');
-    $this->executeMigration('d7_comment_entity_form_display');
+    $this->executeMigrations([
+      'd7_node_type',
+      'd7_comment_type',
+      'd7_comment_field',
+      'd7_comment_field_instance',
+      'd7_comment_entity_form_display',
+    ]);
   }
 
   /**
diff --git a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentFieldInstanceTest.php b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentFieldInstanceTest.php
index 8f23e38..c84621b 100644
--- a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentFieldInstanceTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentFieldInstanceTest.php
@@ -28,10 +28,12 @@ class MigrateCommentFieldInstanceTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
-    $this->executeMigration('d7_node_type');
-    $this->executeMigration('d7_comment_type');
-    $this->executeMigration('d7_comment_field');
-    $this->executeMigration('d7_comment_field_instance');
+    $this->executeMigrations([
+      'd7_node_type',
+      'd7_comment_type',
+      'd7_comment_field',
+      'd7_comment_field_instance',
+    ]);
   }
 
   /**
diff --git a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentFieldTest.php b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentFieldTest.php
index 6577df5..bf93f71 100644
--- a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentFieldTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentFieldTest.php
@@ -27,9 +27,11 @@ class MigrateCommentFieldTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
-    $this->executeMigration('d7_node_type');
-    $this->executeMigration('d7_comment_type');
-    $this->executeMigration('d7_comment_field');
+    $this->executeMigrations([
+      'd7_node_type',
+      'd7_comment_type',
+      'd7_comment_field',
+    ]);
   }
 
   /**
diff --git a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentTest.php b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentTest.php
index 6a6a5ce..6c7277e 100644
--- a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentTest.php
@@ -32,9 +32,11 @@ protected function setUp() {
     $this->installEntitySchema('node');
     $this->installEntitySchema('comment');
 
-    $this->executeMigration('d7_filter_format');
-    $this->executeMigration('d7_user_role');
-    $this->executeMigration('d7_user');
+    $this->executeMigrations([
+      'd7_filter_format',
+      'd7_user_role',
+      'd7_user',
+    ]);
     // The test database doesn't include uid 1, so we'll need to create it.
     User::create(array(
       'uid' => 1,
@@ -49,9 +51,11 @@ protected function setUp() {
         array(array(0), array(0)),
       ),
     ));
-    $this->executeMigration('d7_node__test_content_type');
-    $this->executeMigration('d7_comment_type');
-    $this->executeMigration('d7_comment');
+    $this->executeMigrations([
+      'd7_node__test_content_type',
+      'd7_comment_type',
+      'd7_comment',
+    ]);
   }
 
   /**
diff --git a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentTypeTest.php b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentTypeTest.php
index 76eabba..82b01e5 100644
--- a/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentTypeTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d7/MigrateCommentTypeTest.php
@@ -26,8 +26,10 @@ class MigrateCommentTypeTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
-    $this->executeMigration('d7_node_type');
-    $this->executeMigration('d7_comment_type');
+    $this->executeMigrations([
+      'd7_node_type',
+      'd7_comment_type',
+    ]);
   }
 
   /**
diff --git a/core/modules/contact/src/Tests/Migrate/d6/MigrateContactCategoryTest.php b/core/modules/contact/src/Tests/Migrate/d6/MigrateContactCategoryTest.php
index 000bc6f..4bb22e8 100644
--- a/core/modules/contact/src/Tests/Migrate/d6/MigrateContactCategoryTest.php
+++ b/core/modules/contact/src/Tests/Migrate/d6/MigrateContactCategoryTest.php
@@ -18,11 +18,9 @@
 class MigrateContactCategoryTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  public static $modules = array('contact');
+  public static $modules = ['contact'];
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/contact/src/Tests/Migrate/d6/MigrateContactConfigsTest.php b/core/modules/contact/src/Tests/Migrate/d6/MigrateContactConfigsTest.php
index 2f17e92..2508b67 100644
--- a/core/modules/contact/src/Tests/Migrate/d6/MigrateContactConfigsTest.php
+++ b/core/modules/contact/src/Tests/Migrate/d6/MigrateContactConfigsTest.php
@@ -20,26 +20,16 @@ class MigrateContactConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  public static $modules = array('contact');
+  public static $modules = ['contact'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    // Add some id mappings for the dependent migrations.
-    $id_mappings = array(
-      'd6_contact_category' => array(
-        array(array(1), array('website_feedback')),
-        array(array(2), array('some_other_category')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-    $this->executeMigration('d6_contact_settings');
+    $this->executeMigrations(['d6_contact_category', 'd6_contact_settings']);
   }
 
   /**
diff --git a/core/modules/dblog/src/Tests/Migrate/d6/MigrateDblogConfigsTest.php b/core/modules/dblog/src/Tests/Migrate/d6/MigrateDblogConfigsTest.php
index f28ae45..765d923 100644
--- a/core/modules/dblog/src/Tests/Migrate/d6/MigrateDblogConfigsTest.php
+++ b/core/modules/dblog/src/Tests/Migrate/d6/MigrateDblogConfigsTest.php
@@ -20,11 +20,9 @@ class MigrateDblogConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  public static $modules = array('dblog');
+  public static $modules = ['dblog'];
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/field/src/Tests/Migrate/d6/MigrateFieldFormatterSettingsTest.php b/core/modules/field/src/Tests/Migrate/d6/MigrateFieldFormatterSettingsTest.php
index c9e9912..435c83c 100644
--- a/core/modules/field/src/Tests/Migrate/d6/MigrateFieldFormatterSettingsTest.php
+++ b/core/modules/field/src/Tests/Migrate/d6/MigrateFieldFormatterSettingsTest.php
@@ -7,7 +7,9 @@
 
 namespace Drupal\field\Tests\Migrate\d6;
 
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
 use Drupal\Core\Entity\Entity\EntityViewMode;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -18,53 +20,11 @@
 class MigrateFieldFormatterSettingsTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('node', 'field', 'datetime', 'image', 'text', 'link', 'file', 'telephone');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
-    $this->installConfig(['node']);
-
-    entity_create('node_type', array('type' => 'test_page'))->save();
-    entity_create('node_type', array('type' => 'story'))->save();
-    // Create the node preview view mode.
-    EntityViewMode::create(array('id' => 'node.preview', 'targetEntityType' => 'node'))->save();
-
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'd6_view_modes' => array(
-        array(array(1), array('node', 'preview')),
-        array(array(4), array('node', 'rss')),
-        array(array('teaser'), array('node', 'teaser')),
-        array(array('full'), array('node', 'full')),
-      ),
-      'd6_field_instance' => array(
-        array(array('fieldname', 'page'), array('node', 'fieldname', 'page')),
-      ),
-      'd6_field' => array(
-        array(array('field_test'), array('node', 'field_test')),
-        array(array('field_test_two'), array('node', 'field_test_two')),
-        array(array('field_test_three'), array('node', 'field_test_three')),
-        array(array('field_test_email'), array('node', 'field_test_email')),
-        array(array('field_test_link'), array('node', 'field_test_link')),
-        array(array('field_test_filefield'), array('node', 'field_test_filefield')),
-        array(array('field_test_imagefield'), array('node', 'field_test_imagefield')),
-        array(array('field_test_phone'), array('node', 'field_test_phone')),
-        array(array('field_test_date'), array('node', 'field_test_date')),
-        array(array('field_test_datestamp'), array('node', 'field_test_datestamp')),
-        array(array('field_test_datetime'), array('node', 'field_test_datetime')),
-        array(array('field_test_exclude_unset'), array('node', 'field_test_exclude_unset')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-    $this->executeMigration('d6_field_formatter_settings');
+    $this->migrateFields();
   }
 
   /**
@@ -82,23 +42,23 @@ public function testEntityDisplaySettings() {
     );
 
     // Can we load any entity display.
-    $display = entity_load('entity_view_display', 'node.story.teaser');
+    $display = EntityViewDisplay::load('node.story.teaser');
     $this->assertIdentical($expected, $display->getComponent($field_name));
 
     // Test migrate worked with multiple bundles.
-    $display = entity_load('entity_view_display', 'node.test_page.teaser');
+    $display = EntityViewDisplay::load('node.test_page.teaser');
     $expected['weight'] = 35;
     $this->assertIdentical($expected, $display->getComponent($field_name));
 
     // Test RSS because that has been converted from 4 to rss.
-    $display = entity_load('entity_view_display', 'node.story.rss');
+    $display = EntityViewDisplay::load('node.story.rss');
     $expected['weight'] = 1;
     $this->assertIdentical($expected, $display->getComponent($field_name));
 
     // Test the default format with text_default which comes from a static map.
     $expected['type'] = 'text_default';
     $expected['settings'] = array();
-    $display = entity_load('entity_view_display', 'node.story.default');
+    $display = EntityViewDisplay::load('node.story.default');
     $this->assertIdentical($expected, $display->getComponent($field_name));
 
     // Check that we can migrate multiple fields.
@@ -150,7 +110,7 @@ public function testEntityDisplaySettings() {
     $this->assertIdentical($expected, $component);
     $expected['settings']['url_only'] = FALSE;
     $expected['settings']['url_plain'] = FALSE;
-    $display = entity_load('entity_view_display', 'node.story.teaser');
+    $display = EntityViewDisplay::load('node.story.teaser');
     $component = $display->getComponent('field_test_link');
     $this->assertIdentical($expected, $component);
 
@@ -160,7 +120,7 @@ public function testEntityDisplaySettings() {
     $expected['settings'] = array();
     $component = $display->getComponent('field_test_filefield');
     $this->assertIdentical($expected, $component);
-    $display = entity_load('entity_view_display', 'node.story.default');
+    $display = EntityViewDisplay::load('node.story.default');
     $expected['type'] = 'file_url_plain';
     $component = $display->getComponent('field_test_filefield');
     $this->assertIdentical($expected, $component);
@@ -171,7 +131,7 @@ public function testEntityDisplaySettings() {
     $expected['settings'] = array('image_style' => '', 'image_link' => '');
     $component = $display->getComponent('field_test_imagefield');
     $this->assertIdentical($expected, $component);
-    $display = entity_load('entity_view_display', 'node.story.teaser');
+    $display = EntityViewDisplay::load('node.story.teaser');
     $expected['settings']['image_link'] = 'file';
     $component = $display->getComponent('field_test_imagefield');
     $this->assertIdentical($expected, $component);
@@ -190,7 +150,7 @@ public function testEntityDisplaySettings() {
     $expected['settings'] = array('format_type' => 'fallback') + $defaults;
     $component = $display->getComponent('field_test_date');
     $this->assertIdentical($expected, $component);
-    $display = entity_load('entity_view_display', 'node.story.default');
+    $display = EntityViewDisplay::load('node.story.default');
     $expected['settings']['format_type'] = 'long';
     $component = $display->getComponent('field_test_date');
     $this->assertIdentical($expected, $component);
@@ -200,7 +160,7 @@ public function testEntityDisplaySettings() {
     $expected['settings']['format_type'] = 'fallback';
     $component = $display->getComponent('field_test_datestamp');
     $this->assertIdentical($expected, $component);
-    $display = entity_load('entity_view_display', 'node.story.teaser');
+    $display = EntityViewDisplay::load('node.story.teaser');
     $expected['settings'] = array('format_type' => 'medium') + $defaults;
     $component = $display->getComponent('field_test_datestamp');
     $this->assertIdentical($expected, $component);
@@ -210,19 +170,19 @@ public function testEntityDisplaySettings() {
     $expected['settings'] = array('format_type' => 'short') + $defaults;
     $component = $display->getComponent('field_test_datetime');
     $this->assertIdentical($expected, $component);
-    $display = entity_load('entity_view_display', 'node.story.default');
+    $display = EntityViewDisplay::load('node.story.default');
     $expected['settings']['format_type'] = 'fallback';
     $component = $display->getComponent('field_test_datetime');
     $this->assertIdentical($expected, $component);
 
     // Test a date field with a random format which should be mapped
     // to datetime_default.
-    $display = entity_load('entity_view_display', 'node.story.rss');
+    $display = EntityViewDisplay::load('node.story.rss');
     $expected['settings']['format_type'] = 'fallback';
     $component = $display->getComponent('field_test_datetime');
     $this->assertIdentical($expected, $component);
     // Test that our Id map has the correct data.
-    $this->assertIdentical(array('node', 'story', 'teaser', 'field_test'), entity_load('migration', 'd6_field_formatter_settings')->getIdMap()->lookupDestinationID(array('story', 'teaser', 'node', 'field_test')));
+    $this->assertIdentical(array('node', 'story', 'teaser', 'field_test'), Migration::load('d6_field_formatter_settings')->getIdMap()->lookupDestinationID(array('story', 'teaser', 'node', 'field_test')));
   }
 
 }
diff --git a/core/modules/field/src/Tests/Migrate/d6/MigrateFieldInstanceTest.php b/core/modules/field/src/Tests/Migrate/d6/MigrateFieldInstanceTest.php
index 2b04399..c0fb2f5 100644
--- a/core/modules/field/src/Tests/Migrate/d6/MigrateFieldInstanceTest.php
+++ b/core/modules/field/src/Tests/Migrate/d6/MigrateFieldInstanceTest.php
@@ -10,6 +10,7 @@
 use Drupal\field\Entity\FieldConfig;
 use Drupal\link\LinkItemInterface;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
+use Drupal\node\Entity\Node;
 
 /**
  * Migrate field instances.
@@ -19,62 +20,18 @@
 class MigrateFieldInstanceTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array(
-    'telephone',
-    'link',
-    'file',
-    'image',
-    'datetime',
-    'node',
-    'field',
-    'text',
-  );
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'd6_field' => array(
-        array(array('field_test'), array('node', 'field_test')),
-        array(array('field_test_two'), array('node', 'field_test_two')),
-        array(array('field_test_three'), array('node', 'field_test_three')),
-        array(array('field_test_four'), array('node', 'field_test_four')),
-        array(array('field_test_email'), array('node', 'field_test_email')),
-        array(array('field_test_link'), array('node', 'field_test_link')),
-        array(array('field_test_filefield'), array('node', 'field_test_filefield')),
-        array(array('field_test_imagefield'), array('node', 'field_test_imagefield')),
-        array(array('field_test_phone'), array('node', 'field_test_phone')),
-        array(array('field_test_date'), array('node', 'field_test_date')),
-        array(array('field_test_datestamp'), array('node', 'field_test_datestamp')),
-        array(array('field_test_datetime'), array('node', 'field_test_datetime')),
-      ),
-      'd6_node_type' => array(
-        array(array('page'), array('page')),
-        array(array('story'), array('story')),
-        array(array('test_page'), array('test_page')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-    entity_create('node_type', array('type' => 'page'))->save();
-    entity_create('node_type', array('type' => 'story'))->save();
-    entity_create('node_type', array('type' => 'test_page'))->save();
-
-    $this->createFields();
-    $this->executeMigration('d6_field_instance');
+    $this->migrateFields();
   }
 
   /**
    * Tests migration of file variables to file.settings.yml.
    */
   public function testFieldInstanceSettings() {
-    $entity = entity_create('node', array('type' => 'story'));
+    $entity = Node::create(['type' => 'story']);
     // Test a text field.
     $field = FieldConfig::load('node.story.field_test');
     $this->assertIdentical('Text Field', $field->label());
@@ -144,32 +101,4 @@ public function testFieldInstanceSettings() {
     $this->assertIdentical([], $entity->field_test_link->options['attributes']);
   }
 
-  /**
-   * Helper to create fields.
-   */
-  protected function createFields() {
-    $fields = array(
-      'field_test' => 'text',
-      'field_test_two' => 'integer',
-      'field_test_three' => 'decimal',
-      'field_test_four' => 'float',
-      'field_test_email' => 'email',
-      'field_test_link' => 'link',
-      'field_test_filefield' => 'file',
-      'field_test_imagefield' => 'image',
-      'field_test_phone' => 'telephone',
-      'field_test_date' => 'datetime',
-      'field_test_datestamp' => 'datetime',
-      'field_test_datetime' => 'datetime',
-    );
-    foreach ($fields as $name => $type) {
-      entity_create('field_storage_config', array(
-        'field_name' => $name,
-        'entity_type' => 'node',
-        'type' => $type,
-      ))->save();
-    }
-
-  }
-
 }
diff --git a/core/modules/field/src/Tests/Migrate/d6/MigrateFieldTest.php b/core/modules/field/src/Tests/Migrate/d6/MigrateFieldTest.php
index 1ef907d..1f5dcfb 100644
--- a/core/modules/field/src/Tests/Migrate/d6/MigrateFieldTest.php
+++ b/core/modules/field/src/Tests/Migrate/d6/MigrateFieldTest.php
@@ -18,13 +18,6 @@
 class MigrateFieldTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('field', 'telephone', 'link', 'file', 'image', 'datetime', 'node', 'options', 'text');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
@@ -101,7 +94,6 @@ public function testFields() {
     // Text field with a single checkbox.
     $field_storage = FieldStorageConfig::load('node.field_test_text_single_checkbox');
     $this->assertIdentical("boolean", $field_storage->getType(),  t('Field type is @fieldtype. It should be boolean.', array('@fieldtype' => $field_storage->getType())));
-
   }
 
 }
diff --git a/core/modules/field/src/Tests/Migrate/d6/MigrateFieldWidgetSettingsTest.php b/core/modules/field/src/Tests/Migrate/d6/MigrateFieldWidgetSettingsTest.php
index 0b2c0e8..891eb69 100644
--- a/core/modules/field/src/Tests/Migrate/d6/MigrateFieldWidgetSettingsTest.php
+++ b/core/modules/field/src/Tests/Migrate/d6/MigrateFieldWidgetSettingsTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\field\Tests\Migrate\d6;
 
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -17,51 +18,11 @@
 class MigrateFieldWidgetSettingsTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array(
-    'field',
-    'telephone',
-    'link',
-    'file',
-    'image',
-    'datetime',
-    'node',
-    'text',
-  );
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
-    entity_create('node_type', array('type' => 'test_page'))->save();
-    entity_create('node_type', array('type' => 'story'))->save();
-
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'd6_field_instance' => array(
-        array(array('fieldname', 'page'), array('node', 'fieldname', 'page')),
-      ),
-      'd6_field' => array(
-        array(array('field_test'), array('node', 'field_test')),
-        array(array('field_test_two'), array('node', 'field_test_two')),
-        array(array('field_test_three'), array('node', 'field_test_three')),
-        array(array('field_test_email'), array('node', 'field_test_email')),
-        array(array('field_test_link'), array('node', 'field_test_link')),
-        array(array('field_test_filefield'), array('node', 'field_test_filefield')),
-        array(array('field_test_imagefield'), array('node', 'field_test_imagefield')),
-        array(array('field_test_phone'), array('node', 'field_test_phone')),
-        array(array('field_test_date'), array('node', 'field_test_date')),
-        array(array('field_test_datestamp'), array('node', 'field_test_datestamp')),
-        array(array('field_test_datetime'), array('node', 'field_test_datetime')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-    $this->executeMigration('d6_field_instance_widget_settings');
+    $this->migrateFields();
   }
 
   /**
@@ -69,7 +30,7 @@ protected function setUp() {
    */
   public function testWidgetSettings() {
     // Test the config can be loaded.
-    $form_display = entity_load('entity_form_display', 'node.story.default');
+    $form_display = EntityFormDisplay::load('node.story.default');
     $this->assertIdentical(FALSE, is_null($form_display), "Form display node.story.default loaded with config.");
 
     // Text field.
@@ -138,7 +99,6 @@ public function testWidgetSettings() {
     $component = $form_display->getComponent('field_test_datetime');
     $expected['weight'] = 12;
     $this->assertIdentical($expected, $component);
-
   }
 
 }
diff --git a/core/modules/field/src/Tests/Migrate/d7/MigrateFieldFormatterSettingsTest.php b/core/modules/field/src/Tests/Migrate/d7/MigrateFieldFormatterSettingsTest.php
index 5605c48..5e382bd 100644
--- a/core/modules/field/src/Tests/Migrate/d7/MigrateFieldFormatterSettingsTest.php
+++ b/core/modules/field/src/Tests/Migrate/d7/MigrateFieldFormatterSettingsTest.php
@@ -151,10 +151,12 @@ protected function setUp() {
       ->condition('field_name', 'body')
       ->execute();
 
-    $this->executeMigration('d7_field');
-    $this->executeMigration('d7_field_instance');
-    $this->executeMigration('d7_view_modes');
-    $this->executeMigration('d7_field_formatter_settings');
+    $this->executeMigrations([
+      'd7_field',
+      'd7_field_instance',
+      'd7_view_modes',
+      'd7_field_formatter_settings',
+    ]);
   }
 
   /**
diff --git a/core/modules/field/src/Tests/Migrate/d7/MigrateFieldInstanceTest.php b/core/modules/field/src/Tests/Migrate/d7/MigrateFieldInstanceTest.php
index 1845fa4..24d141e 100644
--- a/core/modules/field/src/Tests/Migrate/d7/MigrateFieldInstanceTest.php
+++ b/core/modules/field/src/Tests/Migrate/d7/MigrateFieldInstanceTest.php
@@ -51,8 +51,7 @@ protected function setUp() {
     $this->createType('book');
     $this->createType('forum');
     $this->createType('test_content_type');
-    $this->executeMigration('d7_field');
-    $this->executeMigration('d7_field_instance');
+    $this->executeMigrations(['d7_field', 'd7_field_instance']);
   }
 
   /**
diff --git a/core/modules/field/src/Tests/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php b/core/modules/field/src/Tests/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
index 6da9a5f..2d89871 100644
--- a/core/modules/field/src/Tests/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
+++ b/core/modules/field/src/Tests/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
@@ -48,11 +48,13 @@ protected function setUp() {
     $this->installEntitySchema('taxonomy_term');
     $this->installConfig(static::$modules);
 
-    $this->executeMigration('d7_node_type');
-    $this->executeMigration('d7_comment_type');
-    $this->executeMigration('d7_field');
-    $this->executeMigration('d7_field_instance');
-    $this->executeMigration('d7_field_instance_widget_settings');
+    $this->executeMigrations([
+      'd7_node_type',
+      'd7_comment_type',
+      'd7_field',
+      'd7_field_instance',
+      'd7_field_instance_widget_settings',
+    ]);
   }
 
   /**
diff --git a/core/modules/file/src/Tests/Migrate/d6/MigrateFileConfigsTest.php b/core/modules/file/src/Tests/Migrate/d6/MigrateFileConfigsTest.php
index 25a47bc..e7fef74 100644
--- a/core/modules/file/src/Tests/Migrate/d6/MigrateFileConfigsTest.php
+++ b/core/modules/file/src/Tests/Migrate/d6/MigrateFileConfigsTest.php
@@ -20,13 +20,6 @@ class MigrateFileConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('file');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
diff --git a/core/modules/file/src/Tests/Migrate/d6/MigrateFileTest.php b/core/modules/file/src/Tests/Migrate/d6/MigrateFileTest.php
index 18274fd..275e43f 100644
--- a/core/modules/file/src/Tests/Migrate/d6/MigrateFileTest.php
+++ b/core/modules/file/src/Tests/Migrate/d6/MigrateFileTest.php
@@ -8,6 +8,7 @@
 namespace Drupal\file\Tests\Migrate\d6;
 
 use Drupal\Component\Utility\Random;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate\Tests\MigrateDumpAlterInterface;
 use Drupal\Core\Database\Database;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
@@ -29,13 +30,6 @@ class MigrateFileTest extends MigrateDrupal6TestBase implements MigrateDumpAlter
   protected static $tempFilename;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('file');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
@@ -45,12 +39,11 @@ protected function setUp() {
     $this->installConfig(['file']);
 
     /** @var \Drupal\migrate\Entity\MigrationInterface $migration */
-    $migration = entity_load('migration', 'd6_file');
+    $migration = Migration::load('d6_file');
     $source = $migration->get('source');
     $source['site_path'] = 'core/modules/simpletest';
     $migration->set('source', $source);
     $this->executeMigration($migration);
-    $this->standalone = TRUE;
   }
 
   /**
@@ -65,13 +58,10 @@ public function testFiles() {
     $this->assertIdentical('image/png', $file->getMimeType());
     $this->assertIdentical("1", $file->getOwnerId());
 
-    // It is pointless to run the second half from MigrateDrupal6Test.
-    if (empty($this->standalone)) {
-      return;
-    }
-
     // Test that we can re-import and also test with file_directory_path set.
-    db_truncate(entity_load('migration', 'd6_file')->getIdMap()->mapTableName())->execute();
+    \Drupal::database()
+      ->truncate(Migration::load('d6_file')->getIdMap()->mapTableName())
+      ->execute();
 
     // Update the file_directory_path.
     Database::getConnection('default', 'migrate')
@@ -85,7 +75,7 @@ public function testFiles() {
       ->condition('name', 'file_directory_temp')
       ->execute();
 
-    $migration = entity_load_unchanged('migration', 'd6_file');
+    $migration = \Drupal::entityManager()->getStorage('migration')->loadUnchanged('d6_file');
     $this->executeMigration($migration);
 
     $file = File::load(2);
diff --git a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadBase.php b/core/modules/file/src/Tests/Migrate/d6/MigrateUploadBase.php
deleted file mode 100644
index 6057919..0000000
--- a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadBase.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\file\Tests\Migrate\d6\MigrateUploadBase.
- */
-
-namespace Drupal\file\Tests\Migrate\d6;
-
-use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
-
-/**
- * Base class for file/upload migration tests.
- */
-abstract class MigrateUploadBase extends MigrateDrupal6TestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  static $modules = array('file', 'node');
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $this->installEntitySchema('file');
-    $this->installEntitySchema('node');
-    $this->installSchema('file', ['file_usage']);
-    $this->installSchema('node', ['node_access']);
-
-    // Create new file entities.
-    for ($i = 1; $i <= 3; $i++) {
-      $file = entity_create('file', array(
-        'fid' => $i,
-        'uid' => 1,
-        'filename' => 'druplicon.txt',
-        'uri' => "public://druplicon-$i.txt",
-        'filemime' => 'text/plain',
-        'created' => 1,
-        'changed' => 1,
-        'status' => FILE_STATUS_PERMANENT,
-      ));
-      $file->enforceIsNew();
-      file_put_contents($file->getFileUri(), 'hello world');
-
-      // Save it, inserting a new record.
-      $file->save();
-      $id_mappings['d6_file'][] = array(array($i), array($i));
-    }
-
-    // Add a node type.
-    $node_type = entity_create('node_type', array('type' => 'story'));
-    $node_type->save();
-
-    // Add a file field.
-    entity_create('field_storage_config', array(
-      'field_name' => 'upload',
-      'entity_type' => 'node',
-      'type' => 'file',
-      'cardinality' => -1,
-      'settings' => array(
-        'display_field' => TRUE,
-      ),
-    ))->save();
-    entity_create('field_config', array(
-      'field_name' => 'upload',
-      'entity_type' => 'node',
-      'bundle' => 'story',
-    ))->save();
-    $id_mappings['d6_node'] = array(
-      array(array(1), array(1)),
-      array(array(2), array(2)),
-    );
-    $id_mappings['d6_upload_field_instance'] = [
-      [['story'], ['node', 'story', 'upload']],
-    ];
-
-    $this->prepareMigrations($id_mappings);
-    $vids = array(1, 2, 3);
-    for ($i = 1; $i <= 2; $i++) {
-      $node = entity_create('node', array(
-        'type' => 'story',
-        'nid' => $i,
-        'vid' => array_shift($vids),
-        'title' => $this->randomString(),
-      ));
-      $node->enforceIsNew();
-      $node->save();
-      if ($i == 1) {
-        $node->vid->value = array_shift($vids);
-        $node->enforceIsNew(FALSE);
-        $node->isDefaultRevision(FALSE);
-        $node->save();
-      }
-    }
-  }
-
-}
diff --git a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadEntityDisplayTest.php b/core/modules/file/src/Tests/Migrate/d6/MigrateUploadEntityDisplayTest.php
index 81af198..14a8bd9 100644
--- a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadEntityDisplayTest.php
+++ b/core/modules/file/src/Tests/Migrate/d6/MigrateUploadEntityDisplayTest.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\file\Tests\Migrate\d6;
 
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -17,28 +19,11 @@
 class MigrateUploadEntityDisplayTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
-   */
-  static $modules = array('node', 'file');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
-    entity_create('node_type', array('type' => 'article'))->save();
-    entity_create('node_type', array('type' => 'story'))->save();
-    entity_create('node_type', array('type' => 'page'))->save();
-
-    $id_mappings = array(
-      'd6_upload_field_instance' => array(
-        array(array(1), array('node', 'page', 'upload')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
+    $this->migrateFields();
     $this->executeMigration('d6_upload_entity_display');
   }
 
@@ -46,20 +31,20 @@ protected function setUp() {
    * Tests the Drupal 6 upload settings to Drupal 8 entity display migration.
    */
   public function testUploadEntityDisplay() {
-    $display = entity_get_display('node', 'page', 'default');
+    $display = EntityViewDisplay::load('node.page.default');
     $component = $display->getComponent('upload');
     $this->assertIdentical('file_default', $component['type']);
 
-    $display = entity_get_display('node', 'story', 'default');
+    $display = EntityViewDisplay::load('node.story.default');
     $component = $display->getComponent('upload');
     $this->assertIdentical('file_default', $component['type']);
 
     // Assure this doesn't exist.
-    $display = entity_get_display('node', 'article', 'default');
+    $display = EntityViewDisplay::load('node.article.default');
     $component = $display->getComponent('upload');
     $this->assertTrue(is_null($component));
 
-    $this->assertIdentical(array('node', 'page', 'default', 'upload'), entity_load('migration', 'd6_upload_entity_display')->getIdMap()->lookupDestinationID(array('page')));
+    $this->assertIdentical(array('node', 'page', 'default', 'upload'), Migration::load('d6_upload_entity_display')->getIdMap()->lookupDestinationID(array('page')));
   }
 
 }
diff --git a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadEntityFormDisplayTest.php b/core/modules/file/src/Tests/Migrate/d6/MigrateUploadEntityFormDisplayTest.php
index 1ca5e2f..beb5835 100644
--- a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadEntityFormDisplayTest.php
+++ b/core/modules/file/src/Tests/Migrate/d6/MigrateUploadEntityFormDisplayTest.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\file\Tests\Migrate\d6;
 
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -17,28 +19,11 @@
 class MigrateUploadEntityFormDisplayTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
-   */
-  static $modules = array('file', 'node');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
-    entity_create('node_type', array('type' => 'article'))->save();
-    entity_create('node_type', array('type' => 'story'))->save();
-    entity_create('node_type', array('type' => 'page'))->save();
-
-    $id_mappings = array(
-      'd6_upload_field_instance' => array(
-        array(array(1), array('node', 'page', 'upload')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
+    $this->migrateFields();
     $this->executeMigration('d6_upload_entity_form_display');
   }
 
@@ -46,20 +31,20 @@ protected function setUp() {
    * Tests the Drupal 6 upload settings to Drupal 8 entity form display migration.
    */
   public function testUploadEntityFormDisplay() {
-    $display = entity_get_form_display('node', 'page', 'default');
+    $display = EntityFormDisplay::load('node.page.default');
     $component = $display->getComponent('upload');
     $this->assertIdentical('file_generic', $component['type']);
 
-    $display = entity_get_form_display('node', 'story', 'default');
+    $display = EntityFormDisplay::load('node.story.default');
     $component = $display->getComponent('upload');
     $this->assertIdentical('file_generic', $component['type']);
 
     // Assure this doesn't exist.
-    $display = entity_get_form_display('node', 'article', 'default');
+    $display = EntityFormDisplay::load('node.article.default');
     $component = $display->getComponent('upload');
     $this->assertTrue(is_null($component));
 
-    $this->assertIdentical(array('node', 'page', 'default', 'upload'), entity_load('migration', 'd6_upload_entity_form_display')->getIdMap()->lookupDestinationID(array('page')));
+    $this->assertIdentical(array('node', 'page', 'default', 'upload'), Migration::load('d6_upload_entity_form_display')->getIdMap()->lookupDestinationID(array('page')));
   }
 
 }
diff --git a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadFieldTest.php b/core/modules/file/src/Tests/Migrate/d6/MigrateUploadFieldTest.php
index 38cadb8..decf476 100644
--- a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadFieldTest.php
+++ b/core/modules/file/src/Tests/Migrate/d6/MigrateUploadFieldTest.php
@@ -8,6 +8,7 @@
 namespace Drupal\file\Tests\Migrate\d6;
 
 use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -18,18 +19,11 @@
 class MigrateUploadFieldTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
-   */
-  static $modules = array('file', 'node');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $this->executeMigration('d6_upload_field');
+    $this->migrateFields();
   }
 
   /**
@@ -38,7 +32,7 @@ protected function setUp() {
   public function testUpload() {
     $field_storage = FieldStorageConfig::load('node.upload');
     $this->assertIdentical('node.upload', $field_storage->id());
-    $this->assertIdentical(array('node', 'upload'), entity_load('migration', 'd6_upload_field')->getIdMap()->lookupDestinationID(array('')));
+    $this->assertIdentical(array('node', 'upload'), Migration::load('d6_upload_field')->getIdMap()->lookupDestinationID(array('')));
   }
 
 }
diff --git a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadInstanceTest.php b/core/modules/file/src/Tests/Migrate/d6/MigrateUploadInstanceTest.php
index 7a30fce..fe18042 100644
--- a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadInstanceTest.php
+++ b/core/modules/file/src/Tests/Migrate/d6/MigrateUploadInstanceTest.php
@@ -8,6 +8,7 @@
 namespace Drupal\file\Tests\Migrate\d6;
 
 use Drupal\field\Entity\FieldConfig;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -18,40 +19,11 @@
 class MigrateUploadInstanceTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
-   */
-  static $modules = array('file', 'node');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    // Add some node mappings to get past checkRequirements().
-    $id_mappings = array(
-      'd6_upload_field' => array(
-        array(array(1), array('node', 'upload')),
-      ),
-      'd6_node_type' => array(
-        array(array('page'), array('page')),
-        array(array('story'), array('story')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-
-    foreach (array('page', 'story') as $type) {
-      entity_create('node_type', array('type' => $type))->save();
-    }
-    entity_create('field_storage_config', array(
-      'entity_type' => 'node',
-      'field_name' => 'upload',
-      'type' => 'file',
-      'translatable' => '0',
-    ))->save();
-
-    $this->executeMigration('d6_upload_field_instance');
+    $this->migrateFields();
   }
 
   /**
@@ -72,7 +44,7 @@ public function testUploadFieldInstance() {
     $field = FieldConfig::load('node.article.upload');
     $this->assertTrue(is_null($field));
 
-    $this->assertIdentical(array('node', 'page', 'upload'), entity_load('migration', 'd6_upload_field_instance')->getIdMap()->lookupDestinationID(array('page')));
+    $this->assertIdentical(array('node', 'page', 'upload'), Migration::load('d6_upload_field_instance')->getIdMap()->lookupDestinationID(array('page')));
   }
 
 }
diff --git a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadTest.php b/core/modules/file/src/Tests/Migrate/d6/MigrateUploadTest.php
index c18a8a9..9bc36fa 100644
--- a/core/modules/file/src/Tests/Migrate/d6/MigrateUploadTest.php
+++ b/core/modules/file/src/Tests/Migrate/d6/MigrateUploadTest.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\file\Tests\Migrate\d6;
 
+use Drupal\file\Entity\File;
+use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 use Drupal\node\Entity\Node;
 
 /**
@@ -14,22 +16,42 @@
  *
  * @group migrate_drupal_6
  */
-class MigrateUploadTest extends MigrateUploadBase {
+class MigrateUploadTest extends MigrateDrupal6TestBase {
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $id_mappings = array(
-      'd6_node:*' => array(
-        array(
-          array(0),
-          array(0),
-        ),
-      ),
-    );
+
+    $this->installEntitySchema('file');
+    $this->installEntitySchema('node');
+    $this->installSchema('file', ['file_usage']);
+    $this->installSchema('node', ['node_access']);
+
+    $id_mappings = array('d6_file' => array());
+    // Create new file entities.
+    for ($i = 1; $i <= 3; $i++) {
+      $file = File::create(array(
+        'fid' => $i,
+        'uid' => 1,
+        'filename' => 'druplicon.txt',
+        'uri' => "public://druplicon-$i.txt",
+        'filemime' => 'text/plain',
+        'created' => 1,
+        'changed' => 1,
+        'status' => FILE_STATUS_PERMANENT,
+      ));
+      $file->enforceIsNew();
+      file_put_contents($file->getFileUri(), 'hello world');
+
+      // Save it, inserting a new record.
+      $file->save();
+      $id_mappings['d6_file'][] = array(array($i), array($i));
+    }
     $this->prepareMigrations($id_mappings);
+
+    $this->migrateContent();
     $this->executeMigration('d6_upload');
   }
 
@@ -37,9 +59,11 @@ protected function setUp() {
    * Test upload migration from Drupal 6 to Drupal 8.
    */
   function testUpload() {
-    $node_storage = $this->container->get('entity.manager')->getStorage('node');
-    $node_storage->resetCache(array(1, 2));
-    $nodes = Node::loadMultiple(array(1, 2));
+    $this->container->get('entity.manager')
+      ->getStorage('node')
+      ->resetCache([1, 2]);
+
+    $nodes = Node::loadMultiple([1, 2]);
     $node = $nodes[1];
     $this->assertIdentical(1, count($node->upload));
     $this->assertIdentical('1', $node->upload[0]->target_id);
diff --git a/core/modules/filter/src/Tests/Migrate/d6/MigrateFilterFormatTest.php b/core/modules/filter/src/Tests/Migrate/d6/MigrateFilterFormatTest.php
index c6e2da7..e070632 100644
--- a/core/modules/filter/src/Tests/Migrate/d6/MigrateFilterFormatTest.php
+++ b/core/modules/filter/src/Tests/Migrate/d6/MigrateFilterFormatTest.php
@@ -20,13 +20,15 @@ class MigrateFilterFormatTest extends MigrateDrupal6TestBase {
   /**
    * {@inheritdoc}
    */
-  static $modules = array('filter');
+  protected function setUp() {
+    parent::setUp();
+    $this->executeMigration('d6_filter_format');
+  }
 
   /**
    * Tests the Drupal 6 filter format to Drupal 8 migration.
    */
   public function testFilterFormat() {
-    $this->executeMigration('d6_filter_format');
     $filter_format = FilterFormat::load('filtered_html');
 
     // Check filter status.
diff --git a/core/modules/forum/src/Tests/Migrate/d6/MigrateForumConfigsTest.php b/core/modules/forum/src/Tests/Migrate/d6/MigrateForumConfigsTest.php
index 0f3c22b..42e797d 100644
--- a/core/modules/forum/src/Tests/Migrate/d6/MigrateForumConfigsTest.php
+++ b/core/modules/forum/src/Tests/Migrate/d6/MigrateForumConfigsTest.php
@@ -20,9 +20,7 @@ class MigrateForumConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = array('comment', 'forum', 'taxonomy');
 
@@ -31,11 +29,7 @@ class MigrateForumConfigsTest extends MigrateDrupal6TestBase {
    */
   protected function setUp() {
     parent::setUp();
-    $this->prepareMigrations(array(
-      'd6_taxonomy_vocabulary' => array(
-        array(array(1), array('vocabulary_1_i_0_')),
-      )
-    ));
+    $this->executeMigration('d6_taxonomy_vocabulary');
     $this->executeMigration('d6_forum_settings');
   }
 
diff --git a/core/modules/image/src/Tests/Migrate/d6/MigrateImageCacheTest.php b/core/modules/image/src/Tests/Migrate/d6/MigrateImageCacheTest.php
index d4a7b43..5242afd 100644
--- a/core/modules/image/src/Tests/Migrate/d6/MigrateImageCacheTest.php
+++ b/core/modules/image/src/Tests/Migrate/d6/MigrateImageCacheTest.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\migrate_drupal\Tests\d6\MigrateImageCacheTest.
+ * Contains \Drupal\image\Tests\Migrate\d6\MigrateImageCacheTest.
  */
 
 namespace Drupal\image\Tests\Migrate\d6;
@@ -22,25 +22,17 @@
 class MigrateImageCacheTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('image');
-
-  /**
    * {@inheritdoc}
    */
   public function setUp() {
     parent::setUp();
-    $this->prepareMigrations(array(
-      'd6_imagecache_presets' => [],
-    ));
     $this->installConfig(['image']);
   }
 
   /**
    * Override parent to setup migration prior to run.
+   *
+   * @deprecated
    */
   public function testSourcePlugin() {
     $this->executeMigration('d6_imagecache_presets');
diff --git a/core/modules/locale/src/Tests/Migrate/MigrateLocaleConfigsTest.php b/core/modules/locale/src/Tests/Migrate/MigrateLocaleConfigsTest.php
index f638f32..bdf144a 100644
--- a/core/modules/locale/src/Tests/Migrate/MigrateLocaleConfigsTest.php
+++ b/core/modules/locale/src/Tests/Migrate/MigrateLocaleConfigsTest.php
@@ -20,9 +20,7 @@ class MigrateLocaleConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = array('locale', 'language');
 
diff --git a/core/modules/menu_link_content/src/Tests/Migrate/d6/MigrateMenuLinkTest.php b/core/modules/menu_link_content/src/Tests/Migrate/d6/MigrateMenuLinkTest.php
index 0b10213..f6346fc 100644
--- a/core/modules/menu_link_content/src/Tests/Migrate/d6/MigrateMenuLinkTest.php
+++ b/core/modules/menu_link_content/src/Tests/Migrate/d6/MigrateMenuLinkTest.php
@@ -18,11 +18,9 @@
 class MigrateMenuLinkTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  public static $modules = array('link', 'menu_ui', 'menu_link_content');
+  public static $modules = array('menu_ui', 'menu_link_content');
 
   /**
    * {@inheritdoc}
@@ -31,8 +29,7 @@ protected function setUp() {
     parent::setUp();
     $this->installSchema('system', ['router']);
     $this->installEntitySchema('menu_link_content');
-    $this->executeMigration('menu');
-    $this->executeMigration('d6_menu_links');
+    $this->executeMigrations(['menu', 'd6_menu_links']);
   }
 
   /**
diff --git a/core/modules/menu_link_content/src/Tests/Migrate/d7/MigrateMenuLinkTest.php b/core/modules/menu_link_content/src/Tests/Migrate/d7/MigrateMenuLinkTest.php
index 4e30b92..6b9814a 100644
--- a/core/modules/menu_link_content/src/Tests/Migrate/d7/MigrateMenuLinkTest.php
+++ b/core/modules/menu_link_content/src/Tests/Migrate/d7/MigrateMenuLinkTest.php
@@ -20,9 +20,7 @@
 class MigrateMenuLinkTest extends MigrateDrupal7TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = array('link', 'menu_ui', 'menu_link_content');
 
diff --git a/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php b/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php
index 42a9943..91daf29 100644
--- a/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php
+++ b/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php
@@ -16,7 +16,7 @@
 trait DummyQueryTrait {
 
   /**
-   * @return \Drupal\Core\Database\Query\SelectInterface
+   * {@inheritdoc}
    */
   public function query() {
     // Pass an arbritrary table name - the query should never be executed anyway.
@@ -26,4 +26,11 @@ public function query() {
     return $query;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function count() {
+    return 1;
+  }
+
 }
diff --git a/core/modules/migrate/src/Tests/MigrateTestBase.php b/core/modules/migrate/src/Tests/MigrateTestBase.php
index 4138ede..1a82a0d 100644
--- a/core/modules/migrate/src/Tests/MigrateTestBase.php
+++ b/core/modules/migrate/src/Tests/MigrateTestBase.php
@@ -187,6 +187,17 @@ protected function executeMigration($migration) {
   }
 
   /**
+   * Executes a set of migrations in dependency order.
+   *
+   * @param string[] $ids
+   *   Array of migration IDs, in any order.
+   */
+  protected function executeMigrations(array $ids) {
+    $migrations = Migration::loadMultiple($ids);
+    array_walk($migrations, [$this, 'executeMigration']);
+  }
+
+  /**
    * {@inheritdoc}
    */
   public function display($message, $type = 'status') {
diff --git a/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php b/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php
index 934c350..52323d2 100644
--- a/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php
+++ b/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php
@@ -8,7 +8,6 @@
 namespace Drupal\migrate_drupal\Tests;
 
 use Drupal\migrate\Tests\MigrateTestBase;
-use Drupal\migrate\Entity\Migration;
 use Drupal\Component\Plugin\Exception\PluginNotFoundException;
 use Drupal\migrate\Plugin\migrate\source\SqlBase;
 use Drupal\Core\Database\Query\SelectInterface;
@@ -72,6 +71,9 @@ protected function installMigrations($version) {
 
   /**
    * Test that the source plugin provides a valid query and a valid count.
+   *
+   * @deprecated These assertions are to be moved into dedicated unit tests of
+   * the relevant plugins.
    */
   public function testSourcePlugin() {
     if (isset($this->migration)) {
@@ -81,7 +83,6 @@ public function testSourcePlugin() {
         /** @var SqlBase $source */
         $this->assertTrue($source->query() instanceof SelectInterface, 'SQL source plugin has valid query');
       }
-      // Validate that any source returns a valid count.
       $this->assertTrue(is_numeric($source->count()), 'Source plugin returns valid count');
     }
   }
diff --git a/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php b/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php
deleted file mode 100644
index 1cb07d6..0000000
--- a/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\migrate_drupal\Tests\MigrateFullDrupalTestBase.
- */
-
-namespace Drupal\migrate_drupal\Tests;
-
-use Drupal\migrate\Entity\Migration;
-use Drupal\simpletest\TestBase;
-
-/**
- * Test helper for running a complete Drupal migration.
- */
-abstract class MigrateFullDrupalTestBase extends MigrateDrupalTestBase {
-
-  /**
-   * The group to which tests should belong in order for this test to run them.
-   *
-   * @var string
-   */
-  const TEST_GROUP = '';
-
-  /**
-   * Get the test classes that needs to be run for this test.
-   *
-   * @return array
-   *   The list of fully-classified test class names.
-   */
-  protected function getTestClassesList() {
-    $groups = \Drupal::getContainer()->get('test_discovery')->getTestClasses();
-    return isset($groups[static::TEST_GROUP]) ? array_keys($groups[static::TEST_GROUP]) : [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function tearDown() {
-    // Move the results of every class under ours. This is solely for
-    // reporting, the filename will guide developers.
-    self::getDatabaseConnection()
-      ->update('simpletest')
-      ->fields(array('test_class' => get_class($this)))
-      ->condition('test_id', $this->testId)
-      ->execute();
-    parent::tearDown();
-  }
-
-  /**
-   * Test the complete Drupal migration.
-   */
-  public function testDrupal() {
-    $classes = $this->getTestClassesList();
-    foreach ($classes as $class) {
-      if (is_subclass_of($class, '\Drupal\migrate\Tests\MigrateDumpAlterInterface')) {
-        $class::migrateDumpAlter($this);
-      }
-    }
-
-    // Run every migration in the order specified by the storage controller.
-    $migrations = Migration::loadMultiple(static::$migrations);
-    array_walk($migrations, [$this, 'executeMigration']);
-
-    foreach ($classes as $class) {
-      $test_object = new $class($this->testId);
-      $test_object->databasePrefix = $this->databasePrefix;
-      $test_object->container = $this->container;
-      // run() does a lot of setup and tear down work which we don't need:
-      // it would setup a new database connection and wouldn't find the
-      // Drupal dump. Also by skipping the setUp() methods there are no id
-      // mappings or entities prepared. The tests run against solely migrated
-      // data.
-      foreach (get_class_methods($test_object) as $method) {
-        if (strtolower(substr($method, 0, 4)) == 'test') {
-          // Insert a fail record. This will be deleted on completion to ensure
-          // that testing completed.
-          $method_info = new \ReflectionMethod($class, $method);
-          $caller = array(
-            'file' => $method_info->getFileName(),
-            'line' => $method_info->getStartLine(),
-            'function' => $class . '->' . $method . '()',
-          );
-          $completion_check_id = TestBase::insertAssert($this->testId, $class, FALSE, 'The test did not complete due to a fatal error.', 'Completion check', $caller);
-          // Run the test method.
-          try {
-            $test_object->$method();
-          }
-          catch (\Exception $e) {
-            $this->exceptionHandler($e);
-          }
-          // Remove the completion check record.
-          TestBase::deleteAssert($completion_check_id);
-        }
-      }
-      // Add the pass/fail/exception/debug results.
-      foreach ($this->results as $key => &$value) {
-        $value += $test_object->results[$key];
-      }
-    }
-  }
-
-}
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
deleted file mode 100644
index 0eaddf5..0000000
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
+++ /dev/null
@@ -1,217 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\migrate_drupal\Tests\d6\MigrateDrupal6Test.
- */
-
-namespace Drupal\migrate_drupal\Tests\d6;
-
-use Drupal\migrate_drupal\Tests\MigrateFullDrupalTestBase;
-use Drupal\user\Entity\User;
-
-/**
- * Tests the complete Drupal 6 migration.
- *
- * @group migrate_drupal
- */
-class MigrateDrupal6Test extends MigrateFullDrupalTestBase {
-
-  const TEST_GROUP = 'migrate_drupal_6';
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array(
-    'action',
-    'aggregator',
-    'block',
-    'book',
-    'comment',
-    'contact',
-    'block_content',
-    'datetime',
-    'dblog',
-    'entity_reference',
-    'field',
-    'file',
-    'filter',
-    'forum',
-    'image',
-    'language',
-    'link',
-    'locale',
-    'menu_link_content',
-    'menu_ui',
-    'migrate_drupal',
-    'node',
-    'options',
-    'path',
-    'search',
-    'system',
-    'simpletest',
-    'statistics',
-    'syslog',
-    'taxonomy',
-    'telephone',
-    'text',
-    'update',
-    'user',
-    'views',
-  );
-
-  /**
-   * Migrations to run in the test.
-   *
-   * @var array
-   */
-  static $migrations = array(
-    'd6_action_settings',
-    'd6_aggregator_settings',
-    'd6_aggregator_feed',
-    'd6_aggregator_item',
-    'd6_block',
-    'block_content_body_field',
-    'block_content_type',
-    'd6_book',
-    'd6_book_settings',
-    'd6_comment_type',
-    'd6_comment',
-    'd6_comment_entity_display',
-    'd6_comment_entity_form_display',
-    'd6_comment_entity_form_display_subject',
-    'd6_comment_field',
-    'd6_comment_field_instance',
-    'd6_contact_category',
-    'd6_contact_settings',
-    'd6_custom_block',
-    'd6_date_formats',
-    'd6_dblog_settings',
-    'd6_field',
-    'd6_field_instance',
-    'd6_field_instance_widget_settings',
-    'd6_field_formatter_settings',
-    'd6_file_settings',
-    'd6_file',
-    'd6_filter_format',
-    'd6_forum_settings',
-    'locale_settings',
-    'd6_menu_settings',
-    'menu',
-    'd6_menu_links',
-    'd6_node_revision:*',
-    'd6_node_setting_promote',
-    'd6_node_setting_status',
-    'd6_node_setting_sticky',
-    'd6_node:*',
-    'd6_node_settings',
-    'd6_node_type',
-    'd6_profile_values',
-    'd6_search_page',
-    'd6_search_settings',
-    'd6_simpletest_settings',
-    'd6_statistics_settings',
-    'd6_syslog_settings',
-    'd6_system_cron',
-    'd6_system_date',
-    'd6_system_file',
-    'd6_system_image',
-    'd6_system_image_gd',
-    'd6_system_logging',
-    'd6_system_maintenance',
-    'd6_system_performance',
-    'd6_system_rss',
-    'd6_system_site',
-    'taxonomy_settings',
-    'd6_taxonomy_term',
-    'd6_taxonomy_vocabulary',
-    'd6_term_node_revision:*',
-    'd6_term_node:*',
-    'text_settings',
-    'd6_update_settings',
-    'd6_upload_entity_display',
-    'd6_upload_entity_form_display',
-    'd6_upload_field',
-    'd6_upload_field_instance',
-    'd6_upload',
-    'd6_url_alias',
-    'd6_user_mail',
-    'd6_user_contact_settings',
-    'user_profile_field_instance',
-    'user_profile_entity_display',
-    'user_profile_entity_form_display',
-    'user_profile_field',
-    'user_picture_entity_display',
-    'user_picture_entity_form_display',
-    'user_picture_field_instance',
-    'user_picture_field',
-    'd6_user_picture_file',
-    'd6_user_role',
-    'd6_user_settings',
-    'd6_user',
-    'd6_view_modes',
-    'd6_vocabulary_entity_display',
-    'd6_vocabulary_entity_form_display',
-    'd6_vocabulary_field_instance',
-    'd6_vocabulary_field',
-  );
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-    $config = $this->config('system.theme');
-    $config->set('default', 'bartik');
-    $config->set('admin', 'seven');
-    $config->save();
-
-    foreach (static::$modules as $module) {
-      $function = $module . '_schema';
-      module_load_install($module);
-      if (function_exists($function)) {
-        $schema = $function();
-        $this->installSchema($module, array_keys($schema));
-      }
-    }
-
-    $this->installEntitySchema('aggregator_feed');
-    $this->installEntitySchema('aggregator_item');
-    $this->installEntitySchema('block_content');
-    $this->installEntitySchema('comment');
-    $this->installEntitySchema('file');
-    $this->installEntitySchema('node');
-    $this->installEntitySchema('menu_link_content');
-    $this->installEntitySchema('taxonomy_term');
-    $this->installEntitySchema('user');
-
-    $this->installConfig(['block_content', 'comment', 'file', 'node', 'simpletest']);
-
-    // Install one of D8's test themes.
-    \Drupal::service('theme_handler')->install(array('test_theme'));
-
-    // Create a new user which needs to have UID 1, because that is expected by
-    // the assertions from
-    // \Drupal\migrate_drupal\Tests\d6\MigrateNodeRevisionTest.
-    User::create([
-      'uid' => 1,
-      'name' => $this->randomMachineName(),
-      'status' => 1,
-    ])->enforceIsNew(TRUE)->save();
-
-    $this->installMigrations('Drupal 6');
-  }
-
-  /**
-   * Returns the path to the dump directory.
-   *
-   * @return string
-   *   A string that represents the dump directory path.
-   */
-  protected function getDumpDirectory() {
-    return dirname(__DIR__) . '/Table/d6';
-  }
-
-}
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php
index cad03da..4a1f4d3 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\migrate_drupal\Tests\d6;
 
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
@@ -17,6 +18,21 @@
   /**
    * {@inheritdoc}
    */
+  public static $modules = [
+    'datetime',
+    'entity_reference',
+    'filter',
+    'image',
+    'link',
+    'node',
+    'options',
+    'telephone',
+    'text',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
     $this->installMigrations('Drupal 6');
@@ -29,4 +45,93 @@ protected function getDumpDirectory() {
     return parent::getDumpDirectory() . '/d6';
   }
 
+  /**
+   * Executes all user migrations.
+   *
+   * @param bool $include_pictures
+   *   If TRUE, migrates user pictures.
+   */
+  protected function migrateUsers($include_pictures = TRUE) {
+    $this->executeMigrations(['d6_filter_format', 'd6_user_role']);
+
+    if ($include_pictures) {
+      $this->installEntitySchema('file');
+      $this->executeMigrations([
+        'd6_file',
+        'd6_user_picture_file',
+        'user_picture_field',
+        'user_picture_field_instance',
+        'user_picture_entity_display',
+        'user_picture_entity_form_display',
+      ]);
+    }
+    else {
+      // These are optional dependencies of d6_user, but we don't need them if
+      // we're not migrating user pictures.
+      Migration::load('d6_user_picture_file')->delete();
+      Migration::load('user_picture_entity_display')->delete();
+      Migration::load('user_picture_entity_form_display')->delete();
+    }
+
+    $this->executeMigration('d6_user');
+  }
+
+  /**
+   * Migrates node types.
+   */
+  protected function migrateContentTypes() {
+    $this->installConfig(['node']);
+    $this->executeMigration('d6_node_type');
+  }
+
+  /**
+   * Executes all field migrations.
+   */
+  protected function migrateFields() {
+    $this->migrateContentTypes();
+    $this->executeMigrations([
+      'd6_field',
+      'd6_field_instance',
+      'd6_field_instance_widget_settings',
+      'd6_view_modes',
+      'd6_field_formatter_settings',
+      'd6_upload_field',
+      'd6_upload_field_instance',
+    ]);
+  }
+
+  /**
+   * Executes all content migrations.
+   *
+   * @param bool $include_revisions
+   *   If TRUE, migrates node revisions.
+   */
+  protected function migrateContent($include_revisions = FALSE) {
+    $this->migrateUsers(FALSE);
+    $this->migrateFields();
+
+    $this->installEntitySchema('node');
+    $this->executeMigrations(['d6_node_settings', 'd6_node:*']);
+
+    if ($include_revisions) {
+      $this->executeMigrations(['d6_node_revision:*']);
+    }
+  }
+
+  /**
+   * Executes all taxonomy migrations.
+   */
+  protected function migrateTaxonomy() {
+    $this->migrateContentTypes();
+    $this->installEntitySchema('taxonomy_term');
+    $this->executeMigrations([
+      'd6_taxonomy_vocabulary',
+      'd6_vocabulary_field',
+      'd6_vocabulary_field_instance',
+      'd6_vocabulary_entity_display',
+      'd6_vocabulary_entity_form_display',
+      'd6_taxonomy_term',
+    ]);
+  }
+
 }
diff --git a/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php b/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
index d3a5574..028fb90 100644
--- a/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
@@ -19,7 +19,10 @@
  */
 class MigrateDependenciesTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('aggregator', 'node', 'comment', 'filter');
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['aggregator', 'comment'];
 
   /**
    * Tests that the order is correct when loading several migrations.
@@ -65,7 +68,7 @@ public function testMigrateDependenciesOrder() {
    */
   public function testAggregatorMigrateDependencies() {
     /** @var \Drupal\migrate\entity\Migration $migration */
-    $migration = entity_load('migration', 'd6_aggregator_item');
+    $migration = Migration::load('d6_aggregator_item');
     $executable = new MigrateExecutable($migration, $this);
     $this->startCollectingMessages();
     $executable->import();
diff --git a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeBuilderTest.php b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeBuilderTest.php
index dc95d66..774d344 100644
--- a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeBuilderTest.php
+++ b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeBuilderTest.php
@@ -16,8 +16,6 @@
  */
 class MigrateNodeBuilderTest extends MigrateDrupal6TestBase {
 
-  public static $modules = ['migrate', 'migrate_drupal', 'node'];
-
   /**
    * @var MigrationInterface[]
    */
diff --git a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeBundleSettingsTest.php b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeBundleSettingsTest.php
index a5e2724..1003a52 100644
--- a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeBundleSettingsTest.php
+++ b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeBundleSettingsTest.php
@@ -7,7 +7,9 @@
 
 namespace Drupal\node\Tests\Migrate\d6;
 
+use Drupal\Core\Field\Entity\BaseFieldOverride;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
+use Drupal\node\Entity\Node;
 
 /**
  * Test migrating node settings into the base_field_bundle_override config entity.
@@ -17,70 +19,45 @@
 class MigrateNodeBundleSettingsTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('node');
-
-  /**
    * {@inheritdoc}
    */
   public function setUp() {
     parent::setUp();
-
-    // Setup the bundles.
-    entity_create('node_type', array('type' => 'test_page'))->save();
-    entity_create('node_type', array('type' => 'test_planet'))->save();
-    entity_create('node_type', array('type' => 'test_story'))->save();
-    entity_create('node_type', array('type' => 'test_event'))->save();
-    entity_create('node_type', array('type' => 'story'))->save();
-    entity_create('node_type', array('type' => 'article'))->save();
-    entity_create('node_type', array('type' => 'company'))->save();
-    entity_create('node_type', array('type' => 'employee'))->save();
-    entity_create('node_type', array('type' => 'page'))->save();
-    entity_create('node_type', array('type' => 'sponsor'))->save();
-    entity_create('node_type', array('type' => 'event'))->save();
-    entity_create('node_type', array('type' => 'book'))->save();
+    $this->installConfig(['node']);
+    $this->executeMigration('d6_node_type');
 
     // Create a config entity that already exists.
-    entity_create('base_field_override', array('field_name' => 'promote', 'entity_type' => 'node', 'bundle' => 'page',))->save();
-
-    $id_mappings = array(
-      'd6_node_type' => array(
-        array(array('test_page'), array('test_page')),
-        array(array('test_planet'), array('test_planet')),
-        array(array('test_story'), array('test_story')),
-        array(array('test_event'), array('test_event')),
-        array(array('story'), array('story')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
+    BaseFieldOverride::create([
+      'field_name' => 'promote',
+      'entity_type' => 'node',
+      'bundle' => 'page',
+    ])->save();
 
-    $this->executeMigration('d6_node_setting_promote');
-    $this->executeMigration('d6_node_setting_status');
-    $this->executeMigration('d6_node_setting_sticky');
+    $this->executeMigrations([
+      'd6_node_setting_promote',
+      'd6_node_setting_status',
+      'd6_node_setting_sticky'
+    ]);
   }
 
   /**
    * Tests Drupal 6 node type settings to Drupal 8 migration.
    */
   public function testNodeBundleSettings() {
-
     // Test settings on test_page bundle.
-    $node = entity_create('node', array('type' => 'test_page'));
+    $node = Node::create(['type' => 'test_page']);
     $this->assertIdentical(1, $node->status->value);
     $this->assertIdentical(1, $node->promote->value);
     $this->assertIdentical(1, $node->sticky->value);
 
     // Test settings for test_story bundle.
-    $node = entity_create('node', array('type' => 'test_story'));
+    $node = Node::create(['type' => 'test_story']);
     $this->assertIdentical(1, $node->status->value);
     $this->assertIdentical(1, $node->promote->value);
     $this->assertIdentical(0, $node->sticky->value);
 
     // Test settings for the test_event bundle.
-    $node = entity_create('node', array('type' => 'test_event'));
+    $node = Node::create(['type' => 'test_event']);
     $this->assertIdentical(0, $node->status->value);
     $this->assertIdentical(0, $node->promote->value);
     $this->assertIdentical(1, $node->sticky->value);
diff --git a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeConfigsTest.php b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeConfigsTest.php
index 1d68ed2..26c5fcb 100644
--- a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeConfigsTest.php
+++ b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeConfigsTest.php
@@ -20,13 +20,6 @@ class MigrateNodeConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('node');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
diff --git a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeRevisionTest.php b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeRevisionTest.php
index 1673c9e..73d55a3 100644
--- a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeRevisionTest.php
+++ b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeRevisionTest.php
@@ -7,7 +7,6 @@
 
 namespace Drupal\node\Tests\Migrate\d6;
 
-use Drupal\Core\Database\Database;
 use Drupal\migrate\Entity\Migration;
 
 /**
@@ -22,24 +21,7 @@ class MigrateNodeRevisionTest extends MigrateNodeTestBase {
    */
   protected function setUp() {
     parent::setUp();
-
-    $id_mappings = array(
-      'd6_node:*' => array(
-        array(array(1), array(1)),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-
-    // Create our users for the node authors.
-    $query = Database::getConnection('default', 'migrate')->query('SELECT * FROM {users} WHERE uid NOT IN (0, 1)');
-    while(($row = $query->fetchAssoc()) !== FALSE) {
-      $user = entity_create('user', $row);
-      $user->enforceIsNew();
-      $user->save();
-    }
-
-    $migrations = Migration::loadMultiple(['d6_node_revision:*']);
-    array_walk($migrations, [$this, 'executeMigration']);
+    $this->executeMigrations(['d6_node:*', 'd6_node_revision:*']);
   }
 
   /**
diff --git a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTest.php b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTest.php
index 1c3f0c2..b0f5a75 100644
--- a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTest.php
+++ b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTest.php
@@ -23,14 +23,10 @@ class MigrateNodeTest extends MigrateNodeTestBase {
    */
   protected function setUp() {
     parent::setUp();
-    // Each node type is imported separately. In this test, we're asserting
-    // on story and test_planet nodes.
-    $this->executeMigration('d6_node__test_planet');
-    $this->executeMigration('d6_node__story');
+    $this->executeMigrations(['d6_node:*']);
 
     // This is required for the second import below.
     \Drupal::database()->truncate(Migration::load('d6_node__story')->getIdMap()->mapTableName())->execute();
-    $this->standalone = TRUE;
   }
 
   /**
@@ -57,11 +53,6 @@ public function testNode() {
     // This is empty on the first revision.
     $this->assertIdentical(NULL, $node_revision->revision_log->value);
 
-    // It is pointless to run the second half from MigrateDrupal6Test.
-    if (empty($this->standalone)) {
-      return;
-    }
-
     // Test that we can re-import using the EntityContentBase destination.
     $connection = Database::getConnection('default', 'migrate');
     $connection->update('node_revisions')
@@ -83,10 +74,6 @@ public function testNode() {
     // Test a multi-column fields are correctly upgraded.
     $this->assertIdentical('test', $node->body->value);
     $this->assertIdentical('full_html', $node->body->format);
-
-    $node = Node::load(3);
-    // Test that format = 0 from source maps to filtered_html.
-    $this->assertIdentical('filtered_html', $node->body->format);
   }
 
 }
diff --git a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTestBase.php b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTestBase.php
index 6bae283..9bf182e 100644
--- a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTestBase.php
+++ b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTestBase.php
@@ -16,8 +16,6 @@
  */
 abstract class MigrateNodeTestBase extends MigrateDrupal6TestBase {
 
-  static $modules = array('node', 'text', 'filter', 'entity_reference');
-
   /**
    * {@inheritdoc}
    */
@@ -36,66 +34,11 @@ protected function setUp() {
       'uid' => 1,
       'name' => $this->randomMachineName(),
       'status' => 1,
-    ])->enforceIsNew(TRUE)->save();
-
-
-    $node_type = entity_create('node_type', array('type' => 'test_planet'));
-    $node_type->save();
-    node_add_body_field($node_type);
-    $node_type = entity_create('node_type', array('type' => 'story'));
-    $node_type->save();
-    node_add_body_field($node_type);
-
-    $id_mappings = array(
-      'd6_node_type' => array(
-        array(array('test_story'), array('story')),
-      ),
-      'd6_filter_format' => array(
-        array(array(1), array('filtered_html')),
-        array(array(2), array('full_html')),
-      ),
-      'd6_user' => array(
-        array(array(1), array(1)),
-        array(array(2), array(2)),
-      ),
-      'd6_field_instance_widget_settings' => array(
-        array(
-          array('page', 'field_test'),
-          array('node', 'page', 'default', 'test'),
-        ),
-      ),
-      'd6_field_formatter_settings' => array(
-        array(
-          array('page', 'default', 'node', 'field_test'),
-          array('node', 'page', 'default', 'field_test'),
-        ),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-
-    $migration = entity_load('migration', 'd6_node_settings');
-    $migration->setMigrationResult(MigrationInterface::RESULT_COMPLETED);
-
-    // Create a test node.
-    $node = entity_create('node', array(
-      'type' => 'story',
-      'nid' => 1,
-      'vid' => 1,
-      'revision_log' => '',
-      'title' => $this->randomString(),
-    ));
-    $node->enforceIsNew();
-    $node->save();
+    ])->enforceIsNew()->save();
 
-    $node = entity_create('node', array(
-      'type' => 'test_planet',
-      'nid' => 3,
-      'vid' => 4,
-      'revision_log' => '',
-      'title' => $this->randomString(),
-    ));
-    $node->enforceIsNew();
-    $node->save();
+    $this->migrateUsers(FALSE);
+    $this->migrateFields();
+    $this->executeMigration('d6_node_settings');
   }
 
 }
diff --git a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTypeTest.php b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTypeTest.php
index e7956ef..97d2597 100644
--- a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTypeTest.php
+++ b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTypeTest.php
@@ -8,6 +8,7 @@
 namespace Drupal\node\Tests\Migrate\d6;
 
 use Drupal\field\Entity\FieldConfig;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 use Drupal\node\Entity\NodeType;
 
@@ -19,18 +20,11 @@
 class MigrateNodeTypeTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('node', 'text', 'filter');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(array('node'));
+    $this->installConfig(['node']);
     $this->executeMigration('d6_node_type');
   }
 
@@ -38,14 +32,14 @@ protected function setUp() {
    * Tests Drupal 6 node type to Drupal 8 migration.
    */
   public function testNodeType() {
-    $migration = entity_load('migration', 'd6_node_type');
+    $id_map = Migration::load('d6_node_type')->getIdMap();
     // Test the test_page content type.
     $node_type_page = NodeType::load('test_page');
     $this->assertIdentical('test_page', $node_type_page->id(), 'Node type test_page loaded');
     $this->assertIdentical(TRUE, $node_type_page->displaySubmitted());
     $this->assertIdentical(FALSE, $node_type_page->isNewRevision());
     $this->assertIdentical(DRUPAL_OPTIONAL, $node_type_page->getPreviewMode());
-    $this->assertIdentical($migration->getIdMap()->lookupDestinationID(array('test_page')), array('test_page'));
+    $this->assertIdentical($id_map->lookupDestinationID(array('test_page')), array('test_page'));
 
     // Test we have a body field.
     $field = FieldConfig::loadByName('node', 'test_page', 'body');
@@ -58,7 +52,7 @@ public function testNodeType() {
     $this->assertIdentical(TRUE, $node_type_story->displaySubmitted());
     $this->assertIdentical(FALSE, $node_type_story->isNewRevision());
     $this->assertIdentical(DRUPAL_OPTIONAL, $node_type_story->getPreviewMode());
-    $this->assertIdentical($migration->getIdMap()->lookupDestinationID(array('test_story')), array('test_story'));
+    $this->assertIdentical($id_map->lookupDestinationID(array('test_story')), array('test_story'));
 
     // Test we don't have a body field.
     $field = FieldConfig::loadByName('node', 'test_story', 'body');
@@ -71,7 +65,7 @@ public function testNodeType() {
     $this->assertIdentical(TRUE, $node_type_event->displaySubmitted());
     $this->assertIdentical(TRUE, $node_type_event->isNewRevision());
     $this->assertIdentical(DRUPAL_OPTIONAL, $node_type_event->getPreviewMode());
-    $this->assertIdentical($migration->getIdMap()->lookupDestinationID(array('test_event')), array('test_event'));
+    $this->assertIdentical($id_map->lookupDestinationID(array('test_event')), array('test_event'));
 
     // Test we have a body field.
     $field = FieldConfig::loadByName('node', 'test_event', 'body');
diff --git a/core/modules/node/src/Tests/Migrate/d6/MigrateViewModesTest.php b/core/modules/node/src/Tests/Migrate/d6/MigrateViewModesTest.php
index e9fc278..4aef44c 100644
--- a/core/modules/node/src/Tests/Migrate/d6/MigrateViewModesTest.php
+++ b/core/modules/node/src/Tests/Migrate/d6/MigrateViewModesTest.php
@@ -8,6 +8,7 @@
 namespace Drupal\node\Tests\Migrate\d6;
 
 use Drupal\Core\Entity\Entity\EntityViewMode;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -18,13 +19,6 @@
 class MigrateViewModesTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('node');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
@@ -40,8 +34,8 @@ public function testViewModes() {
     $view_mode = EntityViewMode::load('node.preview');
     $this->assertIdentical(FALSE, is_null($view_mode), 'Preview view mode loaded.');
     $this->assertIdentical('Preview', $view_mode->label(), 'View mode has correct label.');
-    // Test the Id Map.
-    $this->assertIdentical(array('node', 'preview'), entity_load('migration', 'd6_view_modes')->getIdMap()->lookupDestinationID(array(1)));
+    // Test the ID map.
+    $this->assertIdentical(array('node', 'preview'), Migration::load('d6_view_modes')->getIdMap()->lookupDestinationID(array(1)));
   }
 
 }
diff --git a/core/modules/node/src/Tests/Migrate/d7/MigrateNodeTest.php b/core/modules/node/src/Tests/Migrate/d7/MigrateNodeTest.php
index 47f4a6b..2f795c6 100644
--- a/core/modules/node/src/Tests/Migrate/d7/MigrateNodeTest.php
+++ b/core/modules/node/src/Tests/Migrate/d7/MigrateNodeTest.php
@@ -44,13 +44,15 @@ protected function setUp() {
     $this->installSchema('node', ['node_access']);
     $this->installSchema('system', ['sequences']);
 
-    $this->executeMigration('d7_user_role');
-    $this->executeMigration('d7_user');
-    $this->executeMigration('d7_node_type');
-    $this->executeMigration('d7_comment_type');
-    $this->executeMigration('d7_field');
-    $this->executeMigration('d7_field_instance');
-    $this->executeMigration('d7_node__test_content_type');
+    $this->executeMigrations([
+      'd7_user_role',
+      'd7_user',
+      'd7_node_type',
+      'd7_comment_type',
+      'd7_field',
+      'd7_field_instance',
+      'd7_node__test_content_type',
+    ]);
   }
 
   /**
diff --git a/core/modules/node/src/Tests/Migrate/d7/MigrateNodeTitleLabelTest.php b/core/modules/node/src/Tests/Migrate/d7/MigrateNodeTitleLabelTest.php
index 4817288..93f3749 100644
--- a/core/modules/node/src/Tests/Migrate/d7/MigrateNodeTitleLabelTest.php
+++ b/core/modules/node/src/Tests/Migrate/d7/MigrateNodeTitleLabelTest.php
@@ -26,8 +26,7 @@ protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
     $this->installEntitySchema('node');
-    $this->executeMigration('d7_node_type');
-    $this->executeMigration('d7_node_title_label');
+    $this->executeMigrations(['d7_node_type', 'd7_node_title_label']);
   }
 
   /**
diff --git a/core/modules/path/src/Tests/Migrate/d6/MigrateUrlAliasTest.php b/core/modules/path/src/Tests/Migrate/d6/MigrateUrlAliasTest.php
index c02ee75..7dd662d 100644
--- a/core/modules/path/src/Tests/Migrate/d6/MigrateUrlAliasTest.php
+++ b/core/modules/path/src/Tests/Migrate/d6/MigrateUrlAliasTest.php
@@ -7,22 +7,20 @@
 
 namespace Drupal\path\Tests\Migrate\d6;
 
-use Drupal\migrate\MigrateExecutable;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate\Plugin\MigrateIdMapInterface;
 use Drupal\Core\Database\Database;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
- * Url alias migration.
+ * URL alias migration.
  *
  * @group migrate_drupal_6
  */
 class MigrateUrlAliasTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = array('path');
 
@@ -39,7 +37,7 @@ protected function setUp() {
    * Test the url alias migration.
    */
   public function testUrlAlias() {
-    $migration = entity_load('migration', 'd6_url_alias');
+    $id_map = Migration::load('d6_url_alias')->getIdMap();
     // Test that the field exists.
     $conditions = array(
       'source' => '/node/1',
@@ -48,7 +46,7 @@ public function testUrlAlias() {
     );
     $path = \Drupal::service('path.alias_storage')->load($conditions);
     $this->assertNotNull($path, "Path alias for node/1 successfully loaded.");
-    $this->assertIdentical($migration->getIdMap()->lookupDestinationID(array($path['pid'])), array('1'), "Test IdMap");
+    $this->assertIdentical($id_map->lookupDestinationID(array($path['pid'])), array('1'), "Test IdMap");
     $conditions = array(
       'source' => '/node/2',
       'alias' => '/alias-two',
@@ -64,12 +62,14 @@ public function testUrlAlias() {
       ->condition('src', 'node/2')
       ->execute();
 
-    db_update($migration->getIdMap()->mapTableName())
+    \Drupal::database()
+      ->update($id_map->mapTableName())
       ->fields(array('source_row_status' => MigrateIdMapInterface::STATUS_NEEDS_UPDATE))
       ->execute();
-    $migration = entity_load_unchanged('migration', 'd6_url_alias');
-    $executable = new MigrateExecutable($migration, $this);
-    $executable->import();
+    $migration = \Drupal::entityManager()
+      ->getStorage('migration')
+      ->loadUnchanged('d6_url_alias');
+    $this->executeMigration($migration);
 
     $path = \Drupal::service('path.alias_storage')->load(array('pid' => $path['pid']));
     $this->assertIdentical('/new-url-alias', $path['alias']);
diff --git a/core/modules/path/src/Tests/Migrate/d7/MigrateUrlAliasTest.php b/core/modules/path/src/Tests/Migrate/d7/MigrateUrlAliasTest.php
index 67c11fe..829a872 100644
--- a/core/modules/path/src/Tests/Migrate/d7/MigrateUrlAliasTest.php
+++ b/core/modules/path/src/Tests/Migrate/d7/MigrateUrlAliasTest.php
@@ -17,9 +17,7 @@
 class MigrateUrlAliasTest extends MigrateDrupal7TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = ['path'];
 
diff --git a/core/modules/search/src/Tests/Migrate/d6/MigrateSearchPageTest.php b/core/modules/search/src/Tests/Migrate/d6/MigrateSearchPageTest.php
index 4a07223..6db13e8 100644
--- a/core/modules/search/src/Tests/Migrate/d6/MigrateSearchPageTest.php
+++ b/core/modules/search/src/Tests/Migrate/d6/MigrateSearchPageTest.php
@@ -7,9 +7,9 @@
 
 namespace Drupal\search\Tests\Migrate\d6;
 
-use Drupal\migrate\MigrateExecutable;
 use Drupal\Core\Database\Database;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
+use Drupal\search\Entity\SearchPage;
 
 /**
  * Upgrade search rank settings to search.page.*.yml.
@@ -19,11 +19,9 @@
 class MigrateSearchPageTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  static $modules = array('node', 'search');
+  public static $modules = ['search'];
 
   /**
    * {@inheritdoc}
@@ -39,7 +37,7 @@ protected function setUp() {
   public function testSearchPage() {
     $id = 'node_search';
     /** @var \Drupal\search\Entity\SearchPage $search_page */
-    $search_page = entity_load('search_page', $id);
+    $search_page = SearchPage::load($id);
     $this->assertIdentical($id, $search_page->id());
     $configuration = $search_page->getPlugin()->getConfiguration();
     $this->assertIdentical($configuration['rankings'], array(
@@ -57,11 +55,12 @@ public function testSearchPage() {
       ->condition('name', 'node_rank_comments')
       ->execute();
 
-    $migration = entity_load_unchanged('migration', 'd6_search_page');
-    $executable = new MigrateExecutable($migration, $this);
-    $executable->import();
+    $migration = \Drupal::entityManager()
+      ->getStorage('migration')
+      ->loadUnchanged('d6_search_page');
+    $this->executeMigration($migration);
 
-    $search_page = entity_load('search_page', $id);
+    $search_page = SearchPage::load($id);
     $configuration = $search_page->getPlugin()->getConfiguration();
     $this->assertIdentical(4, $configuration['rankings']['comments']);
   }
diff --git a/core/modules/search/src/Tests/Migrate/d6/MigrateSearchSettingsTest.php b/core/modules/search/src/Tests/Migrate/d6/MigrateSearchSettingsTest.php
index 29cd17c..634a3a4 100644
--- a/core/modules/search/src/Tests/Migrate/d6/MigrateSearchSettingsTest.php
+++ b/core/modules/search/src/Tests/Migrate/d6/MigrateSearchSettingsTest.php
@@ -20,11 +20,9 @@ class MigrateSearchSettingsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  public static $modules = array('search');
+  public static $modules = ['search'];
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/simpletest/src/Tests/Migrate/d6/MigrateSimpletestConfigsTest.php b/core/modules/simpletest/src/Tests/Migrate/d6/MigrateSimpletestConfigsTest.php
index 78a15d8..ad66d9f 100644
--- a/core/modules/simpletest/src/Tests/Migrate/d6/MigrateSimpletestConfigsTest.php
+++ b/core/modules/simpletest/src/Tests/Migrate/d6/MigrateSimpletestConfigsTest.php
@@ -20,9 +20,7 @@ class MigrateSimpletestConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = array('simpletest');
 
@@ -31,7 +29,6 @@ class MigrateSimpletestConfigsTest extends MigrateDrupal6TestBase {
    */
   protected function setUp() {
     parent::setUp();
-
     $this->installConfig(['simpletest']);
     $this->executeMigration('d6_simpletest_settings');
   }
diff --git a/core/modules/statistics/src/Tests/Migrate/d6/MigrateStatisticsConfigsTest.php b/core/modules/statistics/src/Tests/Migrate/d6/MigrateStatisticsConfigsTest.php
index 4e845c2..7fe673c 100644
--- a/core/modules/statistics/src/Tests/Migrate/d6/MigrateStatisticsConfigsTest.php
+++ b/core/modules/statistics/src/Tests/Migrate/d6/MigrateStatisticsConfigsTest.php
@@ -20,9 +20,7 @@ class MigrateStatisticsConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = array('statistics');
 
diff --git a/core/modules/syslog/src/Tests/Migrate/d6/MigrateSyslogConfigsTest.php b/core/modules/syslog/src/Tests/Migrate/d6/MigrateSyslogConfigsTest.php
index 4f546ba..686bce0 100644
--- a/core/modules/syslog/src/Tests/Migrate/d6/MigrateSyslogConfigsTest.php
+++ b/core/modules/syslog/src/Tests/Migrate/d6/MigrateSyslogConfigsTest.php
@@ -20,9 +20,7 @@ class MigrateSyslogConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = array('syslog');
 
diff --git a/core/modules/system/src/Tests/Migrate/MigrateMenuTest.php b/core/modules/system/src/Tests/Migrate/MigrateMenuTest.php
index 95adbf3..9dc42d4 100644
--- a/core/modules/system/src/Tests/Migrate/MigrateMenuTest.php
+++ b/core/modules/system/src/Tests/Migrate/MigrateMenuTest.php
@@ -47,7 +47,9 @@ public function testMenu() {
       ->execute();
 
     $migration = Migration::load('menu');
-    db_truncate($migration->getIdMap()->mapTableName())->execute();
+    \Drupal::database()
+        ->truncate($migration->getIdMap()->mapTableName())
+        ->execute();
     $this->executeMigration($migration);
 
     $navigation_menu = Menu::load('navigation');
diff --git a/core/modules/system/src/Tests/Migrate/d6/MigrateDateFormatTest.php b/core/modules/system/src/Tests/Migrate/d6/MigrateDateFormatTest.php
index 0369c89..28f90d7 100644
--- a/core/modules/system/src/Tests/Migrate/d6/MigrateDateFormatTest.php
+++ b/core/modules/system/src/Tests/Migrate/d6/MigrateDateFormatTest.php
@@ -7,7 +7,8 @@
 
 namespace Drupal\system\Tests\Migrate\d6;
 
-use Drupal\migrate\MigrateExecutable;
+use Drupal\Core\Datetime\Entity\DateFormat;
+use Drupal\migrate\Entity\Migration;
 use Drupal\Core\Database\Database;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
@@ -30,13 +31,13 @@ protected function setUp() {
    * Tests the Drupal 6 date formats to Drupal 8 migration.
    */
   public function testDateFormats() {
-    $short_date_format = entity_load('date_format', 'short');
+    $short_date_format = DateFormat::load('short');
     $this->assertIdentical('\S\H\O\R\T m/d/Y - H:i', $short_date_format->getPattern());
 
-    $medium_date_format = entity_load('date_format', 'medium');
+    $medium_date_format = DateFormat::load('medium');
     $this->assertIdentical('\M\E\D\I\U\M D, m/d/Y - H:i', $medium_date_format->getPattern());
 
-    $long_date_format = entity_load('date_format', 'long');
+    $long_date_format = DateFormat::load('long');
     $this->assertIdentical('\L\O\N\G l, F j, Y - H:i', $long_date_format->getPattern());
 
     // Test that we can re-import using the EntityDateFormat destination.
@@ -45,12 +46,17 @@ public function testDateFormats() {
       ->fields(array('value' => serialize('\S\H\O\R\T d/m/Y - H:i')))
       ->condition('name', 'date_format_short')
       ->execute();
-    db_truncate(entity_load('migration', 'd6_date_formats')->getIdMap()->mapTableName())->execute();
-    $migration = entity_load_unchanged('migration', 'd6_date_formats');
-    $executable = new MigrateExecutable($migration, $this);
-    $executable->import();
 
-    $short_date_format = entity_load('date_format', 'short');
+    \Drupal::database()
+      ->truncate(Migration::load('d6_date_formats')->getIdMap()->mapTableName())
+      ->execute();
+
+    $migration = \Drupal::entityManager()
+      ->getStorage('migration')
+      ->loadUnchanged('d6_date_formats');
+    $this->executeMigration($migration);
+
+    $short_date_format = DateFormat::load('short');
     $this->assertIdentical('\S\H\O\R\T d/m/Y - H:i', $short_date_format->getPattern());
 
   }
diff --git a/core/modules/taxonomy/src/Tests/Migrate/MigrateTaxonomyConfigsTest.php b/core/modules/taxonomy/src/Tests/Migrate/MigrateTaxonomyConfigsTest.php
index 699ea93..e70efe9 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/MigrateTaxonomyConfigsTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/MigrateTaxonomyConfigsTest.php
@@ -20,9 +20,7 @@ class MigrateTaxonomyConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = array('taxonomy');
 
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTaxonomyTermTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTaxonomyTermTest.php
index e21d04d..952b038 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTaxonomyTermTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTaxonomyTermTest.php
@@ -17,23 +17,18 @@
  */
 class MigrateTaxonomyTermTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('taxonomy', 'text');
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = array('taxonomy');
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
     $this->installEntitySchema('taxonomy_term');
-
-    $this->prepareMigrations(array(
-      'd6_taxonomy_vocabulary' => array(
-        array(array(1), array('vocabulary_1_i_0_')),
-        array(array(2), array('vocabulary_2_i_1_')),
-        array(array(3), array('vocabulary_3_i_2_')),
-    )));
-    $this->executeMigration('d6_taxonomy_term');
+    $this->executeMigrations(['d6_taxonomy_vocabulary', 'd6_taxonomy_term']);
   }
 
   /**
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTaxonomyVocabularyTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTaxonomyVocabularyTest.php
index 6cbbce1..b4d00c3 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTaxonomyVocabularyTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTaxonomyVocabularyTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\taxonomy\Tests\Migrate\d6;
 
+use Drupal\migrate\Entity\Migration;
 use Drupal\taxonomy\Entity\Vocabulary;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
@@ -18,9 +19,7 @@
 class MigrateTaxonomyVocabularyTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = array('taxonomy');
 
@@ -39,7 +38,7 @@ public function testTaxonomyVocabulary() {
     for ($i = 0; $i < 3; $i++) {
       $j = $i + 1;
       $vocabulary = Vocabulary::load("vocabulary_{$j}_i_{$i}_");
-      $this->assertIdentical(entity_load('migration', 'd6_taxonomy_vocabulary')->getIdMap()->lookupDestinationID(array($j)), array($vocabulary->id()));
+      $this->assertIdentical(Migration::load('d6_taxonomy_vocabulary')->getIdMap()->lookupDestinationID(array($j)), array($vocabulary->id()));
       $this->assertIdentical("vocabulary $j (i=$i)", $vocabulary->label());
       $this->assertIdentical("description of vocabulary $j (i=$i)", $vocabulary->getDescription());
       $this->assertIdentical($i, $vocabulary->getHierarchy());
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeRevisionTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeRevisionTest.php
index 94d0aba..5dc9962 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeRevisionTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeRevisionTest.php
@@ -7,32 +7,29 @@
 
 namespace Drupal\taxonomy\Tests\Migrate\d6;
 
-use Drupal\migrate\Entity\Migration;
+use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
  * Upgrade taxonomy term node associations.
  *
  * @group migrate_drupal_6
  */
-class MigrateTermNodeRevisionTest extends MigrateTermNodeTestBase {
+class MigrateTermNodeRevisionTest extends MigrateDrupal6TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['taxonomy'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $id_mappings = array(
-      'd6_term_node:*' => array(
-        array(array(2), array(1)),
-      ),
-      'd6_node_revision:*' => array(
-        array(array(2), array(2)),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-
-    $migrations = Migration::loadMultiple(['d6_term_node_revision:*']);
-    array_walk($migrations, [$this, 'executeMigration']);
+    $this->installSchema('node', ['node_access']);
+    $this->migrateContent(TRUE);
+    $this->migrateTaxonomy();
+    $this->executeMigrations(['d6_term_node:*', 'd6_term_node_revision:*']);
   }
 
   /**
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeTest.php
index 6f75a53..7c4ad18 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeTest.php
@@ -7,8 +7,7 @@
 
 namespace Drupal\taxonomy\Tests\Migrate\d6;
 
-use Drupal\migrate\Entity\Migration;
-use Drupal\migrate\MigrateExecutable;
+use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 use Drupal\node\Entity\Node;
 
 /**
@@ -16,33 +15,33 @@
  *
  * @group migrate_drupal_6
  */
-class MigrateTermNodeTest extends MigrateTermNodeTestBase {
+class MigrateTermNodeTest extends MigrateDrupal6TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['taxonomy'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $id_mappings = array(
-      'd6_node:*' => array(
-        array(
-          array(0),
-          array(0),
-        ),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-    $migrations = Migration::loadMultiple(['d6_term_node:*']);
-    array_walk($migrations, [$this, 'executeMigration']);
+    $this->installSchema('node', ['node_access']);
+    $this->migrateContent();
+    $this->migrateTaxonomy();
+    $this->executeMigrations(['d6_term_node:*']);
   }
 
   /**
    * Tests the Drupal 6 term-node association to Drupal 8 migration.
    */
   public function testTermNode() {
-    $node_storage = $this->container->get('entity.manager')->getStorage('node');
-    $node_storage->resetCache(array(1, 2));
-    $nodes = Node::loadMultiple(array(1, 2));
+    $this->container->get('entity.manager')
+      ->getStorage('node')
+      ->resetCache([1, 2]);
+
+    $nodes = Node::loadMultiple([1, 2]);
     $node = $nodes[1];
     $this->assertIdentical(1, count($node->vocabulary_1_i_0_));
     $this->assertIdentical('1', $node->vocabulary_1_i_0_[0]->target_id);
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeTestBase.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeTestBase.php
deleted file mode 100644
index 2a47cea..0000000
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeTestBase.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\taxonomy\Tests\Migrate\d6\MigrateTermNodeTestBase.
- */
-
-namespace Drupal\taxonomy\Tests\Migrate\d6;
-
-use Drupal\Core\Field\FieldStorageDefinitionInterface;
-use Drupal\entity_reference\Tests\EntityReferenceTestTrait;
-use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
-
-/**
- * Base class for Taxonomy/Node migration tests.
- */
-abstract class MigrateTermNodeTestBase extends MigrateDrupal6TestBase {
-
-  use EntityReferenceTestTrait;
-
-  /**
-   * {@inheritdoc}
-   */
-  static $modules = array('node', 'taxonomy', 'text', 'filter', 'entity_reference');
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $this->installEntitySchema('node');
-    $this->installEntitySchema('taxonomy_term');
-    $this->installSchema('node', array('node_access'));
-
-    $vocabulary = entity_create('taxonomy_vocabulary', array(
-      'vid' => 'test',
-    ));
-    $vocabulary->save();
-    $node_type = entity_create('node_type', array('type' => 'story'));
-    $node_type->save();
-    foreach (array('vocabulary_1_i_0_', 'vocabulary_2_i_1_', 'vocabulary_3_i_2_') as $name) {
-      $handler_settings = array(
-        'target_bundles' => array(
-          $vocabulary->id() => $vocabulary->id(),
-        ),
-        'auto_create' => TRUE,
-      );
-      $this->createEntityReferenceField('node', 'story', $name, NULL, 'taxonomy_term', 'default', $handler_settings, FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED);
-    }
-    $id_mappings = array(
-      'd6_vocabulary_field_instance' => array(
-        array(array(1, 'page'), array('node', 'page', 'test')),
-      ),
-      'd6_vocabulary_entity_display' => array(
-        array(array(1, 'page'), array('node', 'page', 'default', 'test')),
-      ),
-      'd6_vocabulary_entity_form_display' => array(
-        array(array(1, 'page'), array('node', 'page', 'default', 'test')),
-      ),
-      'd6_node' => array(
-        array(array(1), array(1)),
-        array(array(2), array(2)),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-
-    $vids = array(1, 2, 3);
-    for ($i = 1; $i <= 2; $i++) {
-      $node = entity_create('node', array(
-        'type' => 'story',
-        'nid' => $i,
-        'vid' => array_shift($vids),
-        'title' => $this->randomString(),
-      ));
-      $node->enforceIsNew();
-      $node->save();
-      if ($i == 1) {
-        $node->vid->value = array_shift($vids);
-        $node->enforceIsNew(FALSE);
-        $node->setNewRevision();
-        $node->isDefaultRevision(FALSE);
-        $node->save();
-      }
-    }
-  }
-
-}
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyEntityDisplayTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyEntityDisplayTest.php
index 7e6c3f5..06ac310 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyEntityDisplayTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyEntityDisplayTest.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\taxonomy\Tests\Migrate\d6;
 
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -17,59 +19,16 @@
 class MigrateVocabularyEntityDisplayTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  static $modules = array('field', 'node', 'taxonomy', 'text', 'entity_reference');
+  public static $modules = ['field', 'taxonomy'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
-    entity_create('field_storage_config', array(
-      'entity_type' => 'node',
-      'field_name' => 'tags',
-      'type' => 'entity_reference',
-      'settings' => array(
-        'target_type' => 'taxonomy_term',
-      ),
-    ))->save();
-
-    foreach (array('page', 'article', 'story') as $type) {
-      entity_create('node_type', array('type' => $type))->save();
-      entity_create('field_config', array(
-        'label' => 'Tags',
-        'description' => '',
-        'field_name' => 'tags',
-        'entity_type' => 'node',
-        'bundle' => $type,
-        'required' => 1,
-          'settings' => array(
-            'handler' => 'default',
-            'handler_settings' => array(
-              'target_bundles' => array(
-                'tags' => 'tags',
-              ),
-              'auto_create' => TRUE,
-            ),
-          ),
-      ))->save();
-    }
-
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'd6_taxonomy_vocabulary' => array(
-        array(array(4), array('tags')),
-      ),
-      'd6_vocabulary_field_instance' => array(
-        array(array(4, 'page'), array('node', 'page', 'tags')),
-      )
-    );
-    $this->prepareMigrations($id_mappings);
-    $this->executeMigration('d6_vocabulary_entity_display');
+    $this->migrateTaxonomy();
   }
 
   /**
@@ -77,11 +36,11 @@ protected function setUp() {
    */
   public function testVocabularyEntityDisplay() {
     // Test that the field exists.
-    $component = entity_get_display('node', 'page', 'default')->getComponent('tags');
+    $component = EntityViewDisplay::load('node.page.default')->getComponent('tags');
     $this->assertIdentical('entity_reference_label', $component['type']);
     $this->assertIdentical(20, $component['weight']);
     // Test the Id map.
-    $this->assertIdentical(array('node', 'article', 'default', 'tags'), entity_load('migration', 'd6_vocabulary_entity_display')->getIdMap()->lookupDestinationID(array(4, 'article')));
+    $this->assertIdentical(array('node', 'article', 'default', 'tags'), Migration::load('d6_vocabulary_entity_display')->getIdMap()->lookupDestinationID(array(4, 'article')));
   }
 
 }
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyEntityFormDisplayTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyEntityFormDisplayTest.php
index db31790..dc010dc 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyEntityFormDisplayTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyEntityFormDisplayTest.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\taxonomy\Tests\Migrate\d6;
 
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -17,59 +19,16 @@
 class MigrateVocabularyEntityFormDisplayTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  static $modules = array('node', 'taxonomy', 'field', 'text', 'entity_reference');
+  public static $modules = ['taxonomy'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
-    entity_create('field_storage_config', array(
-      'entity_type' => 'node',
-      'field_name' => 'tags',
-      'type' => 'entity_reference',
-      'settings' => array(
-        'target_type' => 'taxonomy_term',
-      ),
-    ))->save();
-
-    foreach (array('page', 'article', 'story') as $type) {
-      entity_create('node_type', array('type' => $type))->save();
-      entity_create('field_config', array(
-        'label' => 'Tags',
-        'description' => '',
-        'field_name' => 'tags',
-        'entity_type' => 'node',
-        'bundle' => $type,
-        'required' => 1,
-        'settings' => array(
-          'handler' => 'default',
-          'handler_settings' => array(
-            'target_bundles' => array(
-              'tags' => 'tags',
-            ),
-            'auto_create' => TRUE,
-          ),
-        ),
-      ))->save();
-    }
-
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'd6_taxonomy_vocabulary' => array(
-        array(array(4), array('tags')),
-      ),
-      'd6_vocabulary_field_instance' => array(
-        array(array(4, 'page'), array('node', 'page', 'tags')),
-      )
-    );
-    $this->prepareMigrations($id_mappings);
-    $this->executeMigration('d6_vocabulary_entity_form_display');
+    $this->migrateTaxonomy();
   }
 
   /**
@@ -77,11 +36,11 @@ protected function setUp() {
    */
   public function testVocabularyEntityFormDisplay() {
     // Test that the field exists.
-    $component = entity_get_form_display('node', 'page', 'default')->getComponent('tags');
+    $component = EntityFormDisplay::load('node.page.default')->getComponent('tags');
     $this->assertIdentical('options_select', $component['type']);
     $this->assertIdentical(20, $component['weight']);
     // Test the Id map.
-    $this->assertIdentical(array('node', 'article', 'default', 'tags'), entity_load('migration', 'd6_vocabulary_entity_form_display')->getIdMap()->lookupDestinationID(array(4, 'article')));
+    $this->assertIdentical(array('node', 'article', 'default', 'tags'), Migration::load('d6_vocabulary_entity_form_display')->getIdMap()->lookupDestinationID(array(4, 'article')));
   }
 
 }
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php
index adce33d..b4e0baa 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php
@@ -9,6 +9,7 @@
 
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\field\Entity\FieldConfig;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -19,56 +20,16 @@
 class MigrateVocabularyFieldInstanceTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  static $modules = array('node', 'field', 'taxonomy', 'text', 'entity_reference');
+  public static $modules = ['taxonomy'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
-    entity_create('node_type', array('type' => 'page'))->save();
-    entity_create('node_type', array('type' => 'article'))->save();
-    entity_create('node_type', array('type' => 'story'))->save();
-
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'd6_node_type' => array(
-        array(array('article'), array('article')),
-        array(array('page'), array('page')),
-        array(array('story'), array('story')),
-      ),
-      'd6_taxonomy_vocabulary' => array(
-        array(array(4), array('tags')),
-      ),
-      'd6_vocabulary_field' => array(
-        array(array(4), array('node', 'tags')),
-      )
-    );
-    $this->prepareMigrations($id_mappings);
-
-    // Create the vocab.
-    entity_create('taxonomy_vocabulary', array(
-      'field_name' => 'Test Vocabulary',
-      'description' => 'Test Vocabulary',
-      'vid' => 'tags',
-    ))->save();
-    // Create the field storage.
-    entity_create('field_storage_config', array(
-      'entity_type' => 'node',
-      'field_name' => 'tags',
-      'type' => 'entity_reference',
-      'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
-      'settings' => array(
-        'target_type' => 'taxonomy_term',
-      ),
-    ))->save();
-
-    $this->executeMigration('d6_vocabulary_field_instance');
+    $this->migrateTaxonomy();
   }
 
   /**
@@ -90,7 +51,7 @@ public function testVocabularyFieldInstance() {
     $this->assertIdentical(['tags'], $settings['handler_settings']['target_bundles'], 'The target_bundle handler setting is correct.');
     $this->assertIdentical(TRUE, $settings['handler_settings']['auto_create'], 'The "auto_create" setting is correct.');
 
-    $this->assertIdentical(array('node', 'article', 'tags'), entity_load('migration', 'd6_vocabulary_field_instance')->getIdMap()->lookupDestinationID(array(4, 'article')));
+    $this->assertIdentical(array('node', 'article', 'tags'), Migration::load('d6_vocabulary_field_instance')->getIdMap()->lookupDestinationID(array(4, 'article')));
   }
 
 }
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php
index a88eed0..9e866d8 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php
@@ -8,6 +8,7 @@
 namespace Drupal\taxonomy\Tests\Migrate\d6;
 
 use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -18,33 +19,16 @@
 class MigrateVocabularyFieldTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  static $modules = array('node', 'taxonomy', 'field', 'text', 'entity_reference');
+  public static $modules = ['taxonomy'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'd6_taxonomy_vocabulary' => array(
-        array(array(4), array('tags')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-
-    entity_create('taxonomy_vocabulary', array(
-      'name' => 'Test Vocabulary',
-      'description' => 'Test Vocabulary',
-      'vid' => 'test_vocab',
-    ))->save();
-
-    $this->executeMigration('d6_vocabulary_field');
+    $this->migrateTaxonomy();
   }
 
   /**
@@ -59,7 +43,7 @@ public function testVocabularyField() {
     $settings = $field_storage->getSettings();
     $this->assertIdentical('taxonomy_term', $settings['target_type'], "Target type is correct.");
 
-    $this->assertIdentical(array('node', 'tags'), entity_load('migration', 'd6_vocabulary_field')->getIdMap()->lookupDestinationID(array(4)), "Test IdMap");
+    $this->assertIdentical(array('node', 'tags'), Migration::load('d6_vocabulary_field')->getIdMap()->lookupDestinationID(array(4)), "Test IdMap");
   }
 
 }
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateNodeTaxonomyTest.php b/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateNodeTaxonomyTest.php
index 32b82d2..8005d9c 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateNodeTaxonomyTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateNodeTaxonomyTest.php
@@ -62,11 +62,13 @@ protected function setUp() {
       'bundle' => 'article',
     ))->save();
 
-    $this->executeMigration('d7_taxonomy_vocabulary');
-    $this->executeMigration('d7_taxonomy_term');
-    $this->executeMigration('d7_user_role');
-    $this->executeMigration('d7_user');
-    $this->executeMigration('d7_node__article');
+    $this->executeMigrations([
+      'd7_taxonomy_vocabulary',
+      'd7_taxonomy_term',
+      'd7_user_role',
+      'd7_user',
+      'd7_node__article',
+    ]);
   }
 
   /**
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateTaxonomyTermTest.php b/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateTaxonomyTermTest.php
index 6c01697..64dabde 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateTaxonomyTermTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateTaxonomyTermTest.php
@@ -18,7 +18,7 @@
  */
 class MigrateTaxonomyTermTest extends MigrateDrupal7TestBase {
 
-  static $modules = array('taxonomy', 'text');
+  public static $modules = array('taxonomy', 'text');
 
   /**
    * {@inheritdoc}
@@ -26,8 +26,7 @@ class MigrateTaxonomyTermTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installEntitySchema('taxonomy_term');
-    $this->executeMigration('d7_taxonomy_vocabulary');
-    $this->executeMigration('d7_taxonomy_term');
+    $this->executeMigrations(['d7_taxonomy_vocabulary', 'd7_taxonomy_term']);
   }
 
   /**
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateTaxonomyVocabularyTest.php b/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateTaxonomyVocabularyTest.php
index e53f827..5f4f6cd 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateTaxonomyVocabularyTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d7/MigrateTaxonomyVocabularyTest.php
@@ -19,9 +19,7 @@
 class MigrateTaxonomyVocabularyTest extends MigrateDrupal7TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = array('taxonomy');
 
diff --git a/core/modules/text/src/Tests/Migrate/MigrateTextConfigsTest.php b/core/modules/text/src/Tests/Migrate/MigrateTextConfigsTest.php
index 073976e..02eefb9 100644
--- a/core/modules/text/src/Tests/Migrate/MigrateTextConfigsTest.php
+++ b/core/modules/text/src/Tests/Migrate/MigrateTextConfigsTest.php
@@ -20,13 +20,6 @@ class MigrateTextConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('text');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
diff --git a/core/modules/update/src/Tests/Migrate/d6/MigrateUpdateConfigsTest.php b/core/modules/update/src/Tests/Migrate/d6/MigrateUpdateConfigsTest.php
index da1d4ee..679350a 100644
--- a/core/modules/update/src/Tests/Migrate/d6/MigrateUpdateConfigsTest.php
+++ b/core/modules/update/src/Tests/Migrate/d6/MigrateUpdateConfigsTest.php
@@ -20,9 +20,7 @@ class MigrateUpdateConfigsTest extends MigrateDrupal6TestBase {
   use SchemaCheckTestTrait;
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
   public static $modules = array('update');
 
diff --git a/core/modules/user/migration_templates/user_profile_entity_form_display.yml b/core/modules/user/migration_templates/user_profile_entity_form_display.yml
index 1aab3b7..cfabd76 100644
--- a/core/modules/user/migration_templates/user_profile_entity_form_display.yml
+++ b/core/modules/user/migration_templates/user_profile_entity_form_display.yml
@@ -48,3 +48,6 @@ process:
       4: true # PROFILE_HIDDEN
 destination:
   plugin: component_entity_form_display
+migration_dependencies:
+  required:
+    - user_profile_field_instance
diff --git a/core/modules/user/src/Plugin/migrate/source/UserPictureInstance.php b/core/modules/user/src/Plugin/migrate/source/UserPictureInstance.php
index 99099e3..a4d8b30 100644
--- a/core/modules/user/src/Plugin/migrate/source/UserPictureInstance.php
+++ b/core/modules/user/src/Plugin/migrate/source/UserPictureInstance.php
@@ -39,15 +39,6 @@ public function initializeIterator() {
   /**
    * {@inheritdoc}
    */
-  public function count() {
-    // This source provides a single row, corresponding to a single picture
-    // field to be added to the user entity.
-    return 1;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function fields() {
     return array(
       'file_directory' => 'The directory to store images..',
diff --git a/core/modules/user/src/Tests/Migrate/MigrateUserPictureEntityDisplayTest.php b/core/modules/user/src/Tests/Migrate/MigrateUserPictureEntityDisplayTest.php
index 0613261..bee41a4 100644
--- a/core/modules/user/src/Tests/Migrate/MigrateUserPictureEntityDisplayTest.php
+++ b/core/modules/user/src/Tests/Migrate/MigrateUserPictureEntityDisplayTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\user\Tests\Migrate;
 
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
 use Drupal\migrate_drupal\Tests\d7\MigrateDrupal7TestBase;
 
 /**
@@ -17,11 +18,9 @@
 class MigrateUserPictureEntityDisplayTest extends MigrateDrupal7TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  static $modules = array('file', 'image');
+  public static $modules = ['file', 'image'];
 
   /**
    * {@inheritdoc}
@@ -29,16 +28,18 @@ class MigrateUserPictureEntityDisplayTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installEntitySchema('file');
-    $this->executeMigration('user_picture_field');
-    $this->executeMigration('user_picture_field_instance');
-    $this->executeMigration('user_picture_entity_display');
+    $this->executeMigrations([
+      'user_picture_field',
+      'user_picture_field_instance',
+      'user_picture_entity_display',
+    ]);
   }
 
   /**
    * Tests the Drupal 7 user picture to Drupal 8 entity display migration.
    */
   public function testUserPictureEntityDisplay() {
-    $component = entity_get_display('user', 'user', 'default')->getComponent('user_picture');
+    $component = EntityViewDisplay::load('user.user.default')->getComponent('user_picture');
     $this->assertIdentical('image', $component['type']);
     $this->assertIdentical('', $component['settings']['image_style']);
     $this->assertIdentical('content', $component['settings']['image_link']);
diff --git a/core/modules/user/src/Tests/Migrate/MigrateUserPictureEntityFormDisplayTest.php b/core/modules/user/src/Tests/Migrate/MigrateUserPictureEntityFormDisplayTest.php
index 0902194..f3711ff 100644
--- a/core/modules/user/src/Tests/Migrate/MigrateUserPictureEntityFormDisplayTest.php
+++ b/core/modules/user/src/Tests/Migrate/MigrateUserPictureEntityFormDisplayTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\user\Tests\Migrate;
 
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
 use Drupal\migrate_drupal\Tests\d7\MigrateDrupal7TestBase;
 
 /**
@@ -16,23 +17,25 @@
  */
 class MigrateUserPictureEntityFormDisplayTest extends MigrateDrupal7TestBase {
 
-  static $modules = array('image', 'file');
+  public static $modules = ['image', 'file'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $this->executeMigration('user_picture_field');
-    $this->executeMigration('user_picture_field_instance');
-    $this->executeMigration('user_picture_entity_form_display');
+    $this->executeMigrations([
+      'user_picture_field',
+      'user_picture_field_instance',
+      'user_picture_entity_form_display',
+    ]);
   }
 
   /**
    * Tests the field's entity form display settings.
    */
   public function testEntityFormDisplaySettings() {
-    $component = entity_get_form_display('user', 'user', 'default')->getComponent('user_picture');
+    $component = EntityFormDisplay::load('user.user.default')->getComponent('user_picture');
     $this->assertIdentical('image_image', $component['type']);
     $this->assertIdentical('throbber', $component['settings']['progress_indicator']);
     $this->assertIdentical('thumbnail', $component['settings']['preview_image_style']);
diff --git a/core/modules/user/src/Tests/Migrate/MigrateUserPictureFieldInstanceTest.php b/core/modules/user/src/Tests/Migrate/MigrateUserPictureFieldInstanceTest.php
index 45367f9..4dbb36b 100644
--- a/core/modules/user/src/Tests/Migrate/MigrateUserPictureFieldInstanceTest.php
+++ b/core/modules/user/src/Tests/Migrate/MigrateUserPictureFieldInstanceTest.php
@@ -18,15 +18,17 @@
  */
 class MigrateUserPictureFieldInstanceTest extends MigrateDrupal7TestBase {
 
-  static $modules = array('image', 'file');
+  public static $modules = ['image', 'file'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $this->executeMigration('user_picture_field');
-    $this->executeMigration('user_picture_field_instance');
+    $this->executeMigrations([
+      'user_picture_field',
+      'user_picture_field_instance',
+    ]);
   }
 
   /**
diff --git a/core/modules/user/src/Tests/Migrate/MigrateUserPictureFieldTest.php b/core/modules/user/src/Tests/Migrate/MigrateUserPictureFieldTest.php
index cf4120f..20d036a 100644
--- a/core/modules/user/src/Tests/Migrate/MigrateUserPictureFieldTest.php
+++ b/core/modules/user/src/Tests/Migrate/MigrateUserPictureFieldTest.php
@@ -18,7 +18,7 @@
  */
 class MigrateUserPictureFieldTest extends MigrateDrupal7TestBase {
 
-  static $modules = array('image', 'file');
+  public static $modules = ['image', 'file'];
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/user/src/Tests/Migrate/MigrateUserProfileEntityDisplayTest.php b/core/modules/user/src/Tests/Migrate/MigrateUserProfileEntityDisplayTest.php
index 75ed3d6..1814d73 100644
--- a/core/modules/user/src/Tests/Migrate/MigrateUserProfileEntityDisplayTest.php
+++ b/core/modules/user/src/Tests/Migrate/MigrateUserProfileEntityDisplayTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\user\Tests\Migrate;
 
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -17,27 +18,22 @@
 class MigrateUserProfileEntityDisplayTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  static $modules = array('link', 'options', 'datetime', 'text');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $this->executeMigration('user_profile_field');
-    $this->executeMigration('user_profile_field_instance');
-    $this->executeMigration('user_profile_entity_display');
+    $this->executeMigrations([
+      'user_profile_field',
+      'user_profile_field_instance',
+      'user_profile_entity_display',
+    ]);
   }
 
   /**
    * Tests migration of user profile fields.
    */
   public function testUserProfileFields() {
-    $display = entity_get_display('user', 'user', 'default');
+    $display = EntityViewDisplay::load('user.user.default');
 
     // Test a text field.
     $component = $display->getComponent('profile_color');
diff --git a/core/modules/user/src/Tests/Migrate/MigrateUserProfileEntityFormDisplayTest.php b/core/modules/user/src/Tests/Migrate/MigrateUserProfileEntityFormDisplayTest.php
index 9920d65..f39602e 100644
--- a/core/modules/user/src/Tests/Migrate/MigrateUserProfileEntityFormDisplayTest.php
+++ b/core/modules/user/src/Tests/Migrate/MigrateUserProfileEntityFormDisplayTest.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\user\Tests\Migrate;
 
-use Drupal\Core\Database\Database;
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -17,81 +17,23 @@
  */
 class MigrateUserProfileEntityFormDisplayTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('link', 'options', 'datetime', 'text');
-
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
-    // Create some fields so the data gets stored.
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_color',
-      'type' => 'text',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_biography',
-      'type' => 'text_long',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_sell_address',
-      'type' => 'boolean',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_sold_to',
-      'type' => 'list_string',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_bands',
-      'type' => 'text',
-      'cardinality' => -1,
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_blog',
-      'type' => 'link',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_birthdate',
-      'type' => 'datetime',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_love_migrations',
-      'type' => 'boolean',
-    ))->save();
-
-    $field_data = Database::getConnection('default', 'migrate')
-      ->select('profile_fields', 'u')
-      ->fields('u')
-      ->execute()
-      ->fetchAll();
-    foreach ($field_data as $field) {
-      entity_create('field_config', array(
-        'label' => $field->title,
-        'description' => '',
-        'field_name' => $field->name,
-        'entity_type' => 'user',
-        'bundle' => 'user',
-        'required' => 1,
-      ))->save();
-    }
-
-    $this->executeMigration('user_profile_entity_form_display');
+    $this->executeMigrations([
+      'user_profile_field',
+      'user_profile_field_instance',
+      'user_profile_entity_form_display',
+    ]);
   }
 
   /**
    * Tests migration of user profile fields.
    */
   public function testUserProfileEntityFormDisplay() {
-    $display = entity_get_form_display('user', 'user', 'default');
+    $display = EntityFormDisplay::load('user.user.default');
 
     // Test a text field.
     $component = $display->getComponent('profile_color');
diff --git a/core/modules/user/src/Tests/Migrate/MigrateUserProfileFieldInstanceTest.php b/core/modules/user/src/Tests/Migrate/MigrateUserProfileFieldInstanceTest.php
index fa98367..8498a36 100644
--- a/core/modules/user/src/Tests/Migrate/MigrateUserProfileFieldInstanceTest.php
+++ b/core/modules/user/src/Tests/Migrate/MigrateUserProfileFieldInstanceTest.php
@@ -17,22 +17,20 @@
  */
 class MigrateUserProfileFieldInstanceTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('field', 'link', 'options', 'datetime', 'text');
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['field'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'user_profile_field' => array(
-        array(array(1), array('user', 'profile_color')),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-    $this->createFields();
-    $this->executeMigration('user_profile_field_instance');
+    $this->executeMigrations([
+      'user_profile_field',
+      'user_profile_field_instance',
+    ]);
   }
 
   /**
@@ -80,27 +78,4 @@ public function testUserProfileFields() {
     $this->assertIdentical("If you check this box, you love migrations.", $field->getDescription());
   }
 
-  /**
-   * Helper to create fields.
-   */
-  protected function createFields() {
-    $fields = array(
-      'profile_color' => 'text',
-      'profile_biography' => 'text_long',
-      'profile_sell_address' => 'boolean',
-      'profile_sold_to' => 'list_string',
-      'profile_bands' => 'text',
-      'profile_blog' => 'link',
-      'profile_birthdate' => 'datetime',
-      'profile_love_migrations' => 'boolean',
-    );
-    foreach ($fields as $name => $type) {
-      entity_create('field_storage_config', array(
-        'field_name' => $name,
-        'entity_type' => 'user',
-        'type' => $type,
-      ))->save();
-    }
-  }
-
 }
diff --git a/core/modules/user/src/Tests/Migrate/MigrateUserProfileFieldTest.php b/core/modules/user/src/Tests/Migrate/MigrateUserProfileFieldTest.php
index be757f8..1abd419 100644
--- a/core/modules/user/src/Tests/Migrate/MigrateUserProfileFieldTest.php
+++ b/core/modules/user/src/Tests/Migrate/MigrateUserProfileFieldTest.php
@@ -17,8 +17,6 @@
  */
 class MigrateUserProfileFieldTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('link', 'options', 'datetime', 'text');
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/user/src/Tests/Migrate/d6/MigrateUserConfigsTest.php b/core/modules/user/src/Tests/Migrate/d6/MigrateUserConfigsTest.php
index 6839515..89aa1b7 100644
--- a/core/modules/user/src/Tests/Migrate/d6/MigrateUserConfigsTest.php
+++ b/core/modules/user/src/Tests/Migrate/d6/MigrateUserConfigsTest.php
@@ -24,8 +24,7 @@ class MigrateUserConfigsTest extends MigrateDrupal6TestBase {
    */
   protected function setUp() {
     parent::setUp();
-    $this->executeMigration('d6_user_mail');
-    $this->executeMigration('d6_user_settings');
+    $this->executeMigrations(['d6_user_mail', 'd6_user_settings']);
   }
 
   /**
diff --git a/core/modules/user/src/Tests/Migrate/d6/MigrateUserContactSettingsTest.php b/core/modules/user/src/Tests/Migrate/d6/MigrateUserContactSettingsTest.php
index 96dddae..1bdf5a5 100644
--- a/core/modules/user/src/Tests/Migrate/d6/MigrateUserContactSettingsTest.php
+++ b/core/modules/user/src/Tests/Migrate/d6/MigrateUserContactSettingsTest.php
@@ -26,18 +26,8 @@ class MigrateUserContactSettingsTest extends MigrateDrupal6TestBase {
    */
   protected function setUp() {
     parent::setUp();
-
-    $this->installSchema('user', array('users_data'));
-
-    $id_mappings = array(
-      'd6_user' => array(
-        array(array(2), array(2)),
-        array(array(8), array(8)),
-        array(array(15), array(15)),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-
+    $this->migrateUsers(FALSE);
+    $this->installSchema('user', ['users_data']);
     $this->executeMigration('d6_user_contact_settings');
   }
 
diff --git a/core/modules/user/src/Tests/Migrate/d6/MigrateUserPictureFileTest.php b/core/modules/user/src/Tests/Migrate/d6/MigrateUserPictureFileTest.php
index 2e1d428..9f7b20a 100644
--- a/core/modules/user/src/Tests/Migrate/d6/MigrateUserPictureFileTest.php
+++ b/core/modules/user/src/Tests/Migrate/d6/MigrateUserPictureFileTest.php
@@ -8,6 +8,7 @@
 namespace Drupal\user\Tests\Migrate\d6;
 
 use Drupal\file\Entity\File;
+use Drupal\migrate\Entity\Migration;
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 
 /**
@@ -18,13 +19,6 @@
 class MigrateUserPictureFileTest extends MigrateDrupal6TestBase {
 
   /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('file');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
@@ -33,7 +27,7 @@ protected function setUp() {
     $this->installEntitySchema('file');
 
     /** @var \Drupal\migrate\Entity\MigrationInterface $migration */
-    $migration = entity_load('migration', 'd6_user_picture_file');
+    $migration = Migration::load('d6_user_picture_file');
     $source = $migration->get('source');
     $source['site_path'] = 'core/modules/simpletest';
     $migration->set('source', $source);
@@ -45,7 +39,7 @@ protected function setUp() {
    */
   public function testUserPictures() {
     $file_ids = array();
-    foreach (entity_load('migration', 'd6_user_picture_file')->getIdMap() as $destination_ids) {
+    foreach ($this->migration->getIdMap() as $destination_ids) {
       $file_ids[] = reset($destination_ids);
     }
     $files = File::loadMultiple($file_ids);
diff --git a/core/modules/user/src/Tests/Migrate/d6/MigrateUserProfileValuesTest.php b/core/modules/user/src/Tests/Migrate/d6/MigrateUserProfileValuesTest.php
index 96e1da5..e2e4676 100644
--- a/core/modules/user/src/Tests/Migrate/d6/MigrateUserProfileValuesTest.php
+++ b/core/modules/user/src/Tests/Migrate/d6/MigrateUserProfileValuesTest.php
@@ -8,7 +8,6 @@
 namespace Drupal\user\Tests\Migrate\d6;
 
 use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
-use Drupal\Core\Database\Database;
 use Drupal\user\Entity\User;
 
 /**
@@ -19,117 +18,18 @@
 class MigrateUserProfileValuesTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
-   */
-  static $modules = array(
-    'link',
-    'options',
-    'datetime',
-    'text',
-    'file',
-    'image',
-  );
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    // Create some fields so the data gets stored.
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_color',
-      'type' => 'text',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_biography',
-      'type' => 'text_long',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_sell_address',
-      'type' => 'boolean',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_sold_to',
-      'type' => 'list_string',
-      'settings' => array(
-        'allowed_values' => array(
-          'Pill spammers' => 'Pill spammers',
-          'Fitness spammers' => 'Fitness spammers',
-        )
-      )
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_bands',
-      'type' => 'text',
-      'cardinality' => -1,
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_blog',
-      'type' => 'link',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_birthdate',
-      'type' => 'datetime',
-    ))->save();
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'profile_love_migrations',
-      'type' => 'boolean',
-    ))->save();
-
-    // Add some id mappings for the dependant migrations.
-    $id_mappings = array(
-      'user_profile_field_instance' => array(
-        array(array(1), array('user', 'user', 'fieldname')),
-      ),
-      'user_profile_entity_display' => array(
-        array(array(1), array('user', 'user', 'default', 'fieldname')),
-      ),
-      'user_profile_entity_form_display' => array(
-        array(array(1), array('user', 'user', 'default', 'fieldname')),
-      ),
-      'd6_user' => array(
-        array(array(2), array(2)),
-        array(array(8), array(8)),
-        array(array(15), array(15)),
-      ),
-    );
-    $this->prepareMigrations($id_mappings);
-
-    $field_data = Database::getConnection('default', 'migrate')
-      ->select('profile_fields', 'u')
-      ->fields('u')
-      ->execute()
-      ->fetchAll();
-    // Create the field instances.
-    foreach ($field_data as $field) {
-      entity_create('field_config', array(
-        'label' => $field->title,
-        'description' => '',
-        'field_name' => $field->name,
-        'entity_type' => 'user',
-        'bundle' => 'user',
-        'required' => 0,
-      ))->save();
-    }
-
-    // Create our users for the node authors.
-    $query = Database::getConnection('default', 'migrate')->query('SELECT * FROM {users} WHERE uid NOT IN (0, 1)');
-    while(($row = $query->fetchAssoc()) !== FALSE) {
-      $user = entity_create('user', $row);
-      $user->enforceIsNew();
-      $user->save();
-    }
 
+    $this->executeMigrations([
+      'user_profile_field',
+      'user_profile_field_instance',
+      'user_profile_entity_display',
+      'user_profile_entity_form_display',
+    ]);
+    $this->migrateUsers(FALSE);
     $this->executeMigration('d6_profile_values');
   }
 
diff --git a/core/modules/user/src/Tests/Migrate/d6/MigrateUserRoleTest.php b/core/modules/user/src/Tests/Migrate/d6/MigrateUserRoleTest.php
index 7c4c47e..e78bb7f 100644
--- a/core/modules/user/src/Tests/Migrate/d6/MigrateUserRoleTest.php
+++ b/core/modules/user/src/Tests/Migrate/d6/MigrateUserRoleTest.php
@@ -19,19 +19,11 @@
 class MigrateUserRoleTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
-   */
-  static $modules = array('filter', 'node');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $this->executeMigration('d6_filter_format');
-    $this->executeMigration('d6_user_role');
+    $this->executeMigrations(['d6_filter_format', 'd6_user_role']);
   }
 
   /**
diff --git a/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php b/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php
index 9980ba0..40cbe64 100644
--- a/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php
+++ b/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php
@@ -21,20 +21,6 @@
 class MigrateUserTest extends MigrateDrupal6TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
-   */
-  static $modules = array(
-    'link',
-    'options',
-    'datetime',
-    'text',
-    'file',
-    'image',
-  );
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
@@ -43,23 +29,7 @@ protected function setUp() {
     $this->installEntitySchema('file');
     $this->installSchema('file', ['file_usage']);
 
-    // Create the user profile field and instance.
-    entity_create('field_storage_config', array(
-      'entity_type' => 'user',
-      'field_name' => 'user_picture',
-      'type' => 'image',
-      'translatable' => '0',
-    ))->save();
-    entity_create('field_config', array(
-      'label' => 'User Picture',
-      'description' => '',
-      'field_name' => 'user_picture',
-      'entity_type' => 'user',
-      'bundle' => 'user',
-      'required' => 0,
-    ))->save();
-
-    $file = entity_create('file', array(
+    $file = File::create(array(
       'fid' => 2,
       'uid' => 2,
       'filename' => 'image-test.jpg',
@@ -73,7 +43,7 @@ protected function setUp() {
     file_put_contents($file->getFileUri(), file_get_contents('core/modules/simpletest/files/image-1.png'));
     $file->save();
 
-    $file = entity_create('file', array(
+    $file = File::create(array(
       'fid' => 8,
       'uid' => 8,
       'filename' => 'image-test.png',
@@ -87,29 +57,7 @@ protected function setUp() {
     file_put_contents($file->getFileUri(), file_get_contents('core/modules/simpletest/files/image-2.jpg'));
     $file->save();
 
-    $id_mappings = array(
-      'd6_user_role' => array(
-        array(array(1), array('anonymous user')),
-        array(array(2), array('authenticated user')),
-        array(array(3), array('migrate test role 1')),
-        array(array(4), array('migrate test role 2')),
-        array(array(5), array('migrate test role 3')),
-      ),
-      'user_picture_entity_display' => array(
-        array(array(1), array('user', 'user', 'default', 'user_picture')),
-      ),
-      'user_picture_entity_form_display' => array(
-        array(array(1), array('user', 'user', 'default', 'user_picture')),
-      ),
-      'd6_user_picture_file' => array(
-        array(array(2), array(2)),
-        array(array(8), array(8)),
-      ),
-    );
-
-    $this->prepareMigrations($id_mappings);
-
-    $this->executeMigration('d6_user');
+    $this->migrateUsers();
   }
 
   /**
diff --git a/core/modules/user/src/Tests/Migrate/d6/ProfileValuesBuilderTest.php b/core/modules/user/src/Tests/Migrate/d6/ProfileValuesBuilderTest.php
index c159d9e..fe623ae 100644
--- a/core/modules/user/src/Tests/Migrate/d6/ProfileValuesBuilderTest.php
+++ b/core/modules/user/src/Tests/Migrate/d6/ProfileValuesBuilderTest.php
@@ -14,8 +14,6 @@
  */
 class ProfileValuesBuilderTest extends MigrateDrupal6TestBase {
 
-  public static $modules = ['migrate', 'migrate_drupal', 'user'];
-
   /**
    * Tests that profile fields are merged into the d6_profile_values migration's
    * process pipeline by the d6_profile_values builder.
diff --git a/core/modules/user/src/Tests/Migrate/d7/MigrateUserFloodTest.php b/core/modules/user/src/Tests/Migrate/d7/MigrateUserFloodTest.php
index 92c2c23..786fcd2 100644
--- a/core/modules/user/src/Tests/Migrate/d7/MigrateUserFloodTest.php
+++ b/core/modules/user/src/Tests/Migrate/d7/MigrateUserFloodTest.php
@@ -17,13 +17,6 @@
 class MigrateUserFloodTest extends MigrateDrupal7TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
-   */
-  static $modules = array('system');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
diff --git a/core/modules/user/src/Tests/Migrate/d7/MigrateUserRoleTest.php b/core/modules/user/src/Tests/Migrate/d7/MigrateUserRoleTest.php
index 51f8f97..3c94781 100644
--- a/core/modules/user/src/Tests/Migrate/d7/MigrateUserRoleTest.php
+++ b/core/modules/user/src/Tests/Migrate/d7/MigrateUserRoleTest.php
@@ -20,13 +20,6 @@
 class MigrateUserRoleTest extends MigrateDrupal7TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
-   */
-  static $modules = array('user');
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
diff --git a/core/modules/user/src/Tests/Migrate/d7/MigrateUserTest.php b/core/modules/user/src/Tests/Migrate/d7/MigrateUserTest.php
index 8381b1d..149672b 100644
--- a/core/modules/user/src/Tests/Migrate/d7/MigrateUserTest.php
+++ b/core/modules/user/src/Tests/Migrate/d7/MigrateUserTest.php
@@ -20,11 +20,9 @@
 class MigrateUserTest extends MigrateDrupal7TestBase {
 
   /**
-   * The modules to be enabled during the test.
-   *
-   * @var array
+   * {@inheritdoc}
    */
-  static $modules = array('file', 'image', 'user');
+  public static $modules = ['file', 'image'];
 
   /**
    * {@inheritdoc}
@@ -34,11 +32,12 @@ protected function setUp() {
 
     // Prepare to migrate user pictures as well.
     $this->installEntitySchema('file');
-    $this->executeMigration('user_picture_field');
-    $this->executeMigration('user_picture_field_instance');
-
-    $this->executeMigration('d7_user_role');
-    $this->executeMigration('d7_user');
+    $this->executeMigrations([
+      'user_picture_field',
+      'user_picture_field_instance',
+      'd7_user_role',
+      'd7_user',
+    ]);
   }
 
   /**
diff --git a/core/modules/user/src/Tests/Migrate/d7/UserMigrationBuilderTest.php b/core/modules/user/src/Tests/Migrate/d7/UserMigrationBuilderTest.php
index 77b7abb..09fae9e 100644
--- a/core/modules/user/src/Tests/Migrate/d7/UserMigrationBuilderTest.php
+++ b/core/modules/user/src/Tests/Migrate/d7/UserMigrationBuilderTest.php
@@ -14,8 +14,6 @@
  */
 class UserMigrationBuilderTest extends MigrateDrupal7TestBase {
 
-  public static $modules = ['migrate', 'migrate_drupal', 'user'];
-
   /**
    * Tests that profile fields are merged into the d6_profile_values migration's
    * process pipeline by the d6_profile_values builder.
