diff --git a/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorItemTest.php b/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorItemTest.php
index 8930fef..8ac06f7 100644
--- a/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorItemTest.php
+++ b/core/modules/aggregator/src/Tests/Migrate/d6/MigrateAggregatorItemTest.php
@@ -26,25 +26,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_feed');
     $this->executeMigration('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 214c6d3..43fc0b4 100644
--- a/core/modules/block/src/Tests/Migrate/d6/MigrateBlockTest.php
+++ b/core/modules/block/src/Tests/Migrate/d6/MigrateBlockTest.php
@@ -22,46 +22,25 @@ class MigrateBlockTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  static $modules = array(
+  public static $modules = [
+    'filter',
     'block',
     'views',
     'comment',
     'menu_ui',
     'block_content',
     'node',
-  );
+    'text',
+  ];
 
   /**
    * {@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,8 +48,14 @@ protected function setUp() {
     $config->save();
 
     // Install one of D8's test themes.
-    \Drupal::service('theme_handler')->install(array('test_theme'));
-
+    \Drupal::service('theme_handler')->install(['test_theme']);
+
+    $this->executeMigration('d6_filter_format');
+    $this->executeMigration('block_content_type');
+    $this->executeMigration('block_content_body_field');
+    $this->executeMigration('d6_custom_block');
+    $this->executeMigration('menu');
+    $this->executeMigration('d6_user_role');
     $this->executeMigration('d6_block');
   }
 
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..3110d2a 100644
--- a/core/modules/block_content/src/Tests/Migrate/d6/MigrateBlockContentTest.php
+++ b/core/modules/block_content/src/Tests/Migrate/d6/MigrateBlockContentTest.php
@@ -17,24 +17,19 @@
  */
 class MigrateBlockContentTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('block', 'block_content', 'filter', 'text');
+  public static $modules = ['block', 'block_content', 'filter', 'text'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(array('block_content'));
+    $this->installConfig(['block_content']);
     $this->installEntitySchema('block_content');
 
+    $this->executeMigration('d6_filter_format');
     $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');
   }
 
diff --git a/core/modules/book/src/Tests/Migrate/d6/MigrateBookConfigsTest.php b/core/modules/book/src/Tests/Migrate/d6/MigrateBookConfigsTest.php
index 6dc09cd..8e0f59a 100644
--- a/core/modules/book/src/Tests/Migrate/d6/MigrateBookConfigsTest.php
+++ b/core/modules/book/src/Tests/Migrate/d6/MigrateBookConfigsTest.php
@@ -24,7 +24,7 @@ class MigrateBookConfigsTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  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..2d6a139 100644
--- a/core/modules/book/src/Tests/Migrate/d6/MigrateBookTest.php
+++ b/core/modules/book/src/Tests/Migrate/d6/MigrateBookTest.php
@@ -17,39 +17,16 @@
  */
 class MigrateBookTest extends MigrateDrupal6TestBase {
 
-  public static $modules = array('book', 'system', 'node', 'field', 'text', 'entity_reference', 'user');
+  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..9d577b3 100644
--- a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentTest.php
@@ -19,10 +19,13 @@ 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'];
+  public static $modules = [
+    'comment',
+    // 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.
+    'rdf',
+  ];
 
   /**
    * {@inheritdoc}
@@ -34,37 +37,17 @@ 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->migrateContent();
+    $this->executeMigration('d6_comment_type');
+    $this->executeMigration('d6_comment_field');
+    $this->executeMigration('d6_comment_field_instance');
+    $this->executeMigration('d6_comment_entity_display');
+    $this->executeMigration('d6_comment_entity_form_display');
     $this->executeMigration('d6_comment');
   }
 
diff --git a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableDisplayBase.php b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableDisplayBase.php
index 0995df0..c4a56fa 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
-   */
-  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', 'node']);
+    $this->executeMigration('d6_node_type');
+    $this->executeMigration('d6_comment_type');
+    $this->executeMigration('d6_comment_field');
+    $this->executeMigration('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..4bda173 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;
 
 /**
@@ -21,27 +22,15 @@ class MigrateCommentVariableEntityFormDisplaySubjectTest extends MigrateDrupal6T
    *
    * @var array
    */
-  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->installConfig(['comment']);
+    $this->executeMigration('d6_comment_type');
     $this->executeMigration('d6_comment_entity_form_display_subject');
   }
 
@@ -49,11 +38,11 @@ protected function setUp() {
    * 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..21ce53b 100644
--- a/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableFieldTest.php
+++ b/core/modules/comment/src/Tests/Migrate/d6/MigrateCommentVariableFieldTest.php
@@ -17,30 +17,16 @@
  */
 class MigrateCommentVariableFieldTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('comment', 'node');
+  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->installConfig(['comment', 'node']);
+    $this->executeMigration('d6_node_type');
+    $this->executeMigration('d6_comment_type');
     $this->executeMigration('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..5624d32 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,39 +17,17 @@
  */
 class MigrateCommentVariableInstanceTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('comment', 'node');
+  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->installConfig(['comment', 'node']);
+    $this->executeMigration('d6_node_type');
+    $this->executeMigration('d6_comment_type');
+    $this->executeMigration('d6_comment_field');
     $this->executeMigration('d6_comment_field_instance');
   }
 
@@ -56,7 +35,7 @@ protected function setUp() {
    * 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 +45,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/contact/src/Tests/Migrate/d6/MigrateContactConfigsTest.php b/core/modules/contact/src/Tests/Migrate/d6/MigrateContactConfigsTest.php
index 2f17e92..e5473b7 100644
--- a/core/modules/contact/src/Tests/Migrate/d6/MigrateContactConfigsTest.php
+++ b/core/modules/contact/src/Tests/Migrate/d6/MigrateContactConfigsTest.php
@@ -24,21 +24,14 @@ class MigrateContactConfigsTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  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_category');
     $this->executeMigration('d6_contact_settings');
   }
 
diff --git a/core/modules/field/src/Tests/Migrate/d6/MigrateFieldFormatterSettingsTest.php b/core/modules/field/src/Tests/Migrate/d6/MigrateFieldFormatterSettingsTest.php
index c9e9912..0d90b3c 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;
 
 /**
@@ -22,49 +24,14 @@ class MigrateFieldFormatterSettingsTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'field', 'datetime', 'image', 'text', 'link', 'file', 'telephone');
+  public static $modules = ['link'];
 
   /**
    * {@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 +49,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 +117,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 +127,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 +138,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 +157,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 +167,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 +177,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..20487ce 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.
@@ -23,58 +24,21 @@ class MigrateFieldInstanceTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  public static $modules = array(
-    'telephone',
-    'link',
-    'file',
-    'image',
-    'datetime',
-    'node',
-    'field',
-    'text',
-  );
+  public static $modules = ['link'];
 
   /**
    * {@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 +108,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..77bc840 100644
--- a/core/modules/field/src/Tests/Migrate/d6/MigrateFieldTest.php
+++ b/core/modules/field/src/Tests/Migrate/d6/MigrateFieldTest.php
@@ -22,7 +22,7 @@ class MigrateFieldTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  public static $modules = array('field', 'telephone', 'link', 'file', 'image', 'datetime', 'node', 'options', 'text');
+  public static $modules = ['link'];
 
   /**
    * {@inheritdoc}
@@ -101,7 +101,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..f50e7b6 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;
 
 /**
@@ -21,47 +22,14 @@ class MigrateFieldWidgetSettingsTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  public static $modules = array(
-    'field',
-    'telephone',
-    'link',
-    'file',
-    'image',
-    'datetime',
-    'node',
-    'text',
-  );
+  public static $modules = ['link'];
 
   /**
    * {@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 +37,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 +106,6 @@ public function testWidgetSettings() {
     $component = $form_display->getComponent('field_test_datetime');
     $expected['weight'] = 12;
     $this->assertIdentical($expected, $component);
-
   }
 
 }
diff --git a/core/modules/file/src/Tests/Migrate/d6/MigrateFileTest.php b/core/modules/file/src/Tests/Migrate/d6/MigrateFileTest.php
index 18274fd..0ad19ee 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;
@@ -45,12 +46,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 +65,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 +82,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..a3a4dba 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;
 
 /**
@@ -21,24 +23,14 @@ class MigrateUploadEntityFormDisplayTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  static $modules = array('file', 'node');
+  public static $modules = array('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_form_display');
   }
 
@@ -46,20 +38,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..0b5e248 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;
 
 /**
@@ -22,14 +23,14 @@ class MigrateUploadFieldTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  static $modules = array('file', 'node');
+  public static $modules = array('file');
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $this->executeMigration('d6_upload_field');
+    $this->migrateFields();
   }
 
   /**
@@ -38,7 +39,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..6bfb202 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;
 
 /**
@@ -22,36 +23,14 @@ class MigrateUploadInstanceTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  static $modules = array('file', 'node');
+  public static $modules = array('file');
 
   /**
    * {@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 +51,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..105e8a6 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,44 @@
  *
  * @group migrate_drupal_6
  */
-class MigrateUploadTest extends MigrateUploadBase {
+class MigrateUploadTest extends MigrateDrupal6TestBase {
+
+  public static $modules = ['file'];
 
   /**
    * {@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 +61,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..0bf540a 100644
--- a/core/modules/forum/src/Tests/Migrate/d6/MigrateForumConfigsTest.php
+++ b/core/modules/forum/src/Tests/Migrate/d6/MigrateForumConfigsTest.php
@@ -31,11 +31,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..55cdc27 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,32 +22,14 @@
 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.
-   */
-  public function testSourcePlugin() {
-    $this->executeMigration('d6_imagecache_presets');
-    parent::testSourcePlugin();
-  }
-
-  /**
    * Test basic passing migrations.
    */
   public function testPassingMigration() {
diff --git a/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php b/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php
index 934c350..b2b6d2d 100644
--- a/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php
+++ b/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php
@@ -70,20 +70,4 @@ protected function installMigrations($version) {
     }
   }
 
-  /**
-   * Test that the source plugin provides a valid query and a valid count.
-   */
-  public function testSourcePlugin() {
-    if (isset($this->migration)) {
-      $source = $this->migration->getSourcePlugin();
-      // Make sure a SqlBase source has a valid query.
-      if ($source instanceof SqlBase) {
-        /** @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..443c493 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;
 
 /**
@@ -14,6 +15,16 @@
  */
 abstract class MigrateDrupal6TestBase extends MigrateDrupalTestBase {
 
+  public static $modules = [
+    'datetime',
+    'entity_reference',
+    'filter',
+    'image',
+    'node',
+    'telephone',
+    'text',
+  ];
+
   /**
    * {@inheritdoc}
    */
@@ -29,4 +40,91 @@ 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->executeMigration('d6_filter_format');
+    $this->executeMigration('d6_user_role');
+
+    if ($include_pictures) {
+      $this->installEntitySchema('file');
+      $this->executeMigration('d6_file');
+      $this->executeMigration('d6_user_picture_file');
+      $this->executeMigration('user_picture_field');
+      $this->executeMigration('user_picture_field_instance');
+      $this->executeMigration('user_picture_entity_display');
+      $this->executeMigration('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->executeMigration('d6_field');
+    $this->executeMigration('d6_field_instance');
+    $this->executeMigration('d6_field_instance_widget_settings');
+    $this->executeMigration('d6_view_modes');
+    $this->executeMigration('d6_field_formatter_settings');
+    $this->executeMigration('d6_upload_field');
+    $this->executeMigration('d6_upload_field_instance');
+  }
+
+  /**
+   * Executes all content migrations.
+   *
+   * @param bool $with_revisions
+   *   If TRUE, migrates node revisions.
+   */
+  protected function migrateContent($with_revisions = FALSE) {
+    $this->migrateUsers(FALSE);
+    $this->migrateFields();
+
+    $this->executeMigration('d6_node_settings');
+    $this->installEntitySchema('node');
+    $migrations = Migration::loadMultiple(['d6_node:*']);
+    array_walk($migrations, [$this, 'executeMigration']);
+
+    if ($with_revisions) {
+      $migrations = Migration::loadMultiple(['d6_node_revision:*']);
+      array_walk($migrations, [$this, 'executeMigration']);
+    }
+  }
+
+  /**
+   * Executes all taxonomy migrations.
+   */
+  protected function migrateTaxonomy() {
+    $this->migrateContentTypes();
+    $this->executeMigration('d6_taxonomy_vocabulary');
+    $this->executeMigration('d6_vocabulary_field');
+    $this->executeMigration('d6_vocabulary_field_instance');
+    $this->executeMigration('d6_vocabulary_entity_display');
+    $this->executeMigration('d6_vocabulary_entity_form_display');
+    $this->installEntitySchema('taxonomy_term');
+    $this->executeMigration('d6_taxonomy_term');
+  }
+
 }
diff --git a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeBundleSettingsTest.php b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeBundleSettingsTest.php
index a5e2724..2ef7aca 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,45 +19,19 @@
 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');
@@ -66,21 +42,20 @@ public function setUp() {
    * 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..789ae1d 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;
 
 /**
@@ -23,20 +22,8 @@ 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:*']);
+    array_walk($migrations, [$this, 'executeMigration']);
 
     $migrations = Migration::loadMultiple(['d6_node_revision:*']);
     array_walk($migrations, [$this, 'executeMigration']);
diff --git a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTest.php b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTest.php
index 1c3f0c2..c2d141a 100644
--- a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTest.php
+++ b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeTest.php
@@ -23,14 +23,12 @@ 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');
+
+    $migrations = Migration::loadMultiple(['d6_node:*']);
+    array_walk($migrations, [$this, 'executeMigration']);
 
     // This is required for the second import below.
     \Drupal::database()->truncate(Migration::load('d6_node__story')->getIdMap()->mapTableName())->execute();
-    $this->standalone = TRUE;
   }
 
   /**
@@ -57,11 +55,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 +76,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/path/src/Tests/Migrate/d6/MigrateUrlAliasTest.php b/core/modules/path/src/Tests/Migrate/d6/MigrateUrlAliasTest.php
index c02ee75..5d3ff49 100644
--- a/core/modules/path/src/Tests/Migrate/d6/MigrateUrlAliasTest.php
+++ b/core/modules/path/src/Tests/Migrate/d6/MigrateUrlAliasTest.php
@@ -7,13 +7,13 @@
 
 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
  */
@@ -39,7 +39,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 +48,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 +64,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/search/src/Tests/Migrate/d6/MigrateSearchPageTest.php b/core/modules/search/src/Tests/Migrate/d6/MigrateSearchPageTest.php
index 4a07223..b5854f1 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.
@@ -23,7 +23,7 @@ class MigrateSearchPageTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  static $modules = array('node', 'search');
+  static $modules = array('search');
 
   /**
    * {@inheritdoc}
@@ -39,7 +39,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 +57,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/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/d6/MigrateTaxonomyTermTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTaxonomyTermTest.php
index e21d04d..9dc6d51 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTaxonomyTermTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTaxonomyTermTest.php
@@ -17,22 +17,15 @@
  */
 class MigrateTaxonomyTermTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('taxonomy', 'text');
+  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_vocabulary');
     $this->executeMigration('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..e95605f 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;
 
@@ -39,7 +40,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..f754c43 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeRevisionTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeRevisionTest.php
@@ -8,28 +8,28 @@
 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 {
+
+  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);
+    $this->installSchema('node', ['node_access']);
+    $this->migrateContent(TRUE);
+    $this->migrateTaxonomy();
+
+    $migrations = Migration::loadMultiple(['d6_term_node:*']);
+    array_walk($migrations, [$this, 'executeMigration']);
 
     $migrations = Migration::loadMultiple(['d6_term_node_revision:*']);
     array_walk($migrations, [$this, 'executeMigration']);
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeTest.php
index 6f75a53..00a36cb 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateTermNodeTest.php
@@ -9,6 +9,7 @@
 
 use Drupal\migrate\Entity\Migration;
 use Drupal\migrate\MigrateExecutable;
+use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
 use Drupal\node\Entity\Node;
 
 /**
@@ -16,22 +17,19 @@
  *
  * @group migrate_drupal_6
  */
-class MigrateTermNodeTest extends MigrateTermNodeTestBase {
+class MigrateTermNodeTest extends MigrateDrupal6TestBase {
+
+  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);
+    $this->installSchema('node', ['node_access']);
+    $this->migrateContent();
+    $this->migrateTaxonomy();
+
     $migrations = Migration::loadMultiple(['d6_term_node:*']);
     array_walk($migrations, [$this, 'executeMigration']);
   }
@@ -40,9 +38,11 @@ protected function setUp() {
    * 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/MigrateVocabularyEntityFormDisplayTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyEntityFormDisplayTest.php
index db31790..0cfd633 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;
 
 /**
@@ -21,55 +23,14 @@ class MigrateVocabularyEntityFormDisplayTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  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 +38,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..b9fb6bc 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;
 
 /**
@@ -23,52 +24,14 @@ class MigrateVocabularyFieldInstanceTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  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 +53,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..df63aa5 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;
 
 /**
@@ -22,29 +23,14 @@ class MigrateVocabularyFieldTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  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 +45,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/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..a190520 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;
 
 /**
@@ -33,7 +34,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 +46,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..1cf6720 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;
 
 /**
@@ -23,13 +22,10 @@ class MigrateUserProfileValuesTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  static $modules = array(
+  public static $modules = array(
     'link',
     'options',
-    'datetime',
-    'text',
     'file',
-    'image',
   );
 
   /**
@@ -37,99 +33,12 @@ class MigrateUserProfileValuesTest extends MigrateDrupal6TestBase {
    */
   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->executeMigration('user_profile_field');
+    $this->executeMigration('user_profile_field_instance');
+    $this->executeMigration('user_profile_entity_display');
+    $this->executeMigration('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..b005400 100644
--- a/core/modules/user/src/Tests/Migrate/d6/MigrateUserRoleTest.php
+++ b/core/modules/user/src/Tests/Migrate/d6/MigrateUserRoleTest.php
@@ -23,7 +23,7 @@ class MigrateUserRoleTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  static $modules = array('filter', 'node');
+  public static $modules = array('node');
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php b/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php
index 9980ba0..f1c1fdd 100644
--- a/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php
+++ b/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php
@@ -25,13 +25,10 @@ class MigrateUserTest extends MigrateDrupal6TestBase {
    *
    * @var array
    */
-  static $modules = array(
+  public static $modules = array(
     'link',
     'options',
-    'datetime',
-    'text',
     'file',
-    'image',
   );
 
   /**
@@ -43,23 +40,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 +54,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 +68,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();
   }
 
   /**
