diff --git a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityDisplayTest.php b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityDisplayTest.php
index e1edd3c..fcdee8d 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityDisplayTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityDisplayTest.php
@@ -20,8 +20,8 @@ class MigrateCommentEntityDisplayTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
+    $this->migrateContentTypes();
     $this->executeMigrations([
-      'd7_node_type',
       'd7_comment_type',
       'd7_comment_field',
       'd7_comment_field_instance',
diff --git a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php
index f8c4a07..e09bf0e 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php
@@ -20,8 +20,8 @@ class MigrateCommentEntityFormDisplaySubjectTest extends MigrateDrupal7TestBase
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
+    $this->migrateContentTypes();
     $this->executeMigrations([
-      'd7_node_type',
       'd7_comment_type',
       'd7_comment_entity_form_display_subject',
     ]);
diff --git a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplayTest.php b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplayTest.php
index 1332a67..c62b1cc 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplayTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplayTest.php
@@ -20,8 +20,8 @@ class MigrateCommentEntityFormDisplayTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
+    $this->migrateContentTypes();
     $this->executeMigrations([
-      'd7_node_type',
       'd7_comment_type',
       'd7_comment_field',
       'd7_comment_field_instance',
diff --git a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldInstanceTest.php b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldInstanceTest.php
index c7d8959..e6ce97b 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldInstanceTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldInstanceTest.php
@@ -23,8 +23,8 @@ class MigrateCommentFieldInstanceTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
+    $this->migrateContentTypes();
     $this->executeMigrations([
-      'd7_node_type',
       'd7_comment_type',
       'd7_comment_field',
       'd7_comment_field_instance',
diff --git a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldTest.php b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldTest.php
index e6f8e28..2af4dd5 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldTest.php
@@ -22,8 +22,8 @@ class MigrateCommentFieldTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
+    $this->migrateContentTypes();
     $this->executeMigrations([
-      'd7_node_type',
       'd7_comment_type',
       'd7_comment_field',
     ]);
diff --git a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php
index 4d4df03..a9e8bef 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php
@@ -14,36 +14,14 @@
  */
 class MigrateCommentTest extends MigrateDrupal7TestBase {
 
-  public static $modules = ['filter', 'node', 'comment', 'text'];
-
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
 
-    $this->installConfig(static::$modules);
-    $this->installEntitySchema('node');
-    $this->installEntitySchema('comment');
-
-    $this->executeMigrations([
-      'd7_filter_format',
-      'd7_user_role',
-      'd7_user',
-    ]);
-    $this->executeMigration('d7_node_type');
-    // We only need the test_content_type node migration to run for real, so
-    // mock all the others.
-    $this->prepareMigrations(array(
-      'd7_node' => array(
-        array(array(0), array(0)),
-      ),
-    ));
-    $this->executeMigrations([
-      'd7_node',
-      'd7_comment_type',
-      'd7_comment',
-    ]);
+    $this->migrateContent();
+    $this->executeMigrations(['d7_comment_type', 'd7_comment']);
   }
 
   /**
diff --git a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTypeTest.php b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTypeTest.php
index 3f8fe4c..4977822 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTypeTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTypeTest.php
@@ -21,8 +21,8 @@ class MigrateCommentTypeTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installConfig(static::$modules);
+    $this->migrateContentTypes();
     $this->executeMigrations([
-      'd7_node_type',
       'd7_comment_type',
     ]);
   }
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php
index 14f37cb..0719ac2 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php
@@ -39,58 +39,6 @@ protected function setUp() {
     $this->installEntitySchema('comment');
     $this->installEntitySchema('taxonomy_term');
 
-    CommentType::create([
-      'id' => 'comment_node_page',
-      'label' => $this->randomMachineName(),
-    ])->save();
-    CommentType::create([
-      'id' => 'comment_node_article',
-      'label' => $this->randomMachineName(),
-    ])->save();
-    CommentType::create([
-      'id' => 'comment_node_blog',
-      'label' => $this->randomMachineName(),
-    ])->save();
-    CommentType::create([
-      'id' => 'comment_node_book',
-      'label' => $this->randomMachineName(),
-    ])->save();
-    CommentType::create([
-      'id' => 'comment_node_forum',
-      'label' => $this->randomMachineName(),
-    ])->save();
-    CommentType::create([
-      'id' => 'comment_node_test_content_type',
-      'label' => $this->randomMachineName(),
-    ])->save();
-
-    NodeType::create([
-      'type' => 'page',
-      'label' => $this->randomMachineName(),
-    ])->save();
-    NodeType::create([
-      'type' => 'article',
-      'label' => $this->randomMachineName(),
-    ])->save();
-    NodeType::create([
-      'type' => 'blog',
-      'label' => $this->randomMachineName(),
-    ])->save();
-    NodeType::create([
-      'type' => 'book',
-      'label' => $this->randomMachineName(),
-    ])->save();
-    NodeType::create([
-      'type' => 'forum',
-      'label' => $this->randomMachineName(),
-    ])->save();
-    NodeType::create([
-      'type' => 'test_content_type',
-      'label' => $this->randomMachineName(),
-    ])->save();
-
-    Vocabulary::create(['vid' => 'test_vocabulary'])->save();
-
     // Give one unfortunate field instance invalid display settings to ensure
     // that the migration provides an empty array as a default (thus avoiding
     // an "unsupported operand types" fatal).
@@ -148,9 +96,8 @@ protected function setUp() {
       ->condition('field_name', 'body')
       ->execute();
 
+    $this->migrateFieldInstances();
     $this->executeMigrations([
-      'd7_field',
-      'd7_field_instance',
       'd7_view_modes',
       'd7_field_formatter_settings',
     ]);
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php
index c50c324..5a3e434 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php
@@ -2,12 +2,9 @@
 
 namespace Drupal\Tests\field\Kernel\Migrate\d7;
 
-use Drupal\comment\Entity\CommentType;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\FieldConfigInterface;
-use Drupal\taxonomy\Entity\Vocabulary;
 use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
-use Drupal\node\Entity\NodeType;
 
 /**
  * Migrates Drupal 7 field instances.
@@ -39,34 +36,7 @@ class MigrateFieldInstanceTest extends MigrateDrupal7TestBase {
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(static::$modules);
-    $this->createType('page');
-    $this->createType('article');
-    $this->createType('blog');
-    $this->createType('book');
-    $this->createType('forum');
-    $this->createType('test_content_type');
-    Vocabulary::create(['vid' => 'test_vocabulary'])->save();
-    $this->executeMigrations(['d7_field', 'd7_field_instance']);
-  }
-
-  /**
-   * Creates a node type with a corresponding comment type.
-   *
-   * @param string $id
-   *   The node type ID.
-   */
-  protected function createType($id) {
-    NodeType::create(array(
-      'type' => $id,
-      'label' => $this->randomString(),
-    ))->save();
-
-    CommentType::create(array(
-      'id' => 'comment_node_' . $id,
-      'label' => $this->randomString(),
-      'target_entity_type_id' => 'node',
-    ))->save();
+    $this->migrateFieldInstances();
   }
 
   /**
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
index 7f2e024..8e7a011 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
@@ -42,14 +42,8 @@ protected function setUp() {
     $this->installEntitySchema('taxonomy_term');
     $this->installConfig(static::$modules);
 
-    $this->executeMigrations([
-      'd7_node_type',
-      'd7_comment_type',
-      'd7_taxonomy_vocabulary',
-      'd7_field',
-      'd7_field_instance',
-      'd7_field_instance_widget_settings',
-    ]);
+    $this->migrateFieldInstances();
+    $this->executeMigration('d7_field_instance_widget_settings');
   }
 
   /**
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldTest.php
index 4a0f8cd..d3f3b1e 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldTest.php
@@ -36,8 +36,7 @@ class MigrateFieldTest extends MigrateDrupal7TestBase {
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(static::$modules);
-    $this->executeMigration('d7_field');
+    $this->migrateFields();
   }
 
   /**
diff --git a/core/modules/migrate_drupal/tests/src/Kernel/d7/MigrateDrupal7TestBase.php b/core/modules/migrate_drupal/tests/src/Kernel/d7/MigrateDrupal7TestBase.php
index 3afa82d..c7eaadd 100644
--- a/core/modules/migrate_drupal/tests/src/Kernel/d7/MigrateDrupal7TestBase.php
+++ b/core/modules/migrate_drupal/tests/src/Kernel/d7/MigrateDrupal7TestBase.php
@@ -2,6 +2,9 @@
 
 namespace Drupal\Tests\migrate_drupal\Kernel\d7;
 
+use Drupal\comment\Entity\CommentType;
+use Drupal\node\Entity\NodeType;
+use Drupal\taxonomy\Entity\Vocabulary;
 use Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase;
 
 /**
@@ -9,6 +12,8 @@
  */
 abstract class MigrateDrupal7TestBase extends MigrateDrupalTestBase {
 
+  public static $modules = [];
+
   /**
    * {@inheritdoc}
    */
@@ -24,4 +29,124 @@ protected function getFixtureFilePath() {
     return __DIR__ . '/../../../fixtures/drupal7.php';
   }
 
+  /**
+   * Executes all field migrations.
+   */
+  protected function migrateFields() {
+    $this->executeMigration('d7_field');
+  }
+
+  /**
+   * Executes all field instance migrations.
+   */
+  protected function migrateFieldInstances() {
+    $this->createType('page');
+    $this->createType('article');
+    $this->createType('blog');
+    $this->createType('book');
+    $this->createType('forum');
+    $this->createType('test_content_type');
+    Vocabulary::create(['vid' => 'test_vocabulary'])->save();
+    $this->migrateFields();
+    $this->executeMigration('d7_field_instance');
+  }
+
+  /**
+   * Creates a node type with a corresponding comment type.
+   *
+   * @param string $id
+   *   The node type ID.
+   */
+  protected function createType($id) {
+    NodeType::create([
+      'type' => $id,
+      'label' => $this->randomString(),
+    ])->save();
+
+    CommentType::create([
+      'id' => 'comment_node_' . $id,
+      'label' => $this->randomString(),
+      'target_entity_type_id' => 'node',
+    ])->save();
+  }
+
+  /**
+   * Executes all user migrations.
+   *
+   * @param bool $include_pictures
+   *   If TRUE, migrates user pictures.
+   */
+  protected function migrateUsers($include_pictures = TRUE) {
+    // Prepare to migrate user pictures as well.
+    $this->installEntitySchema('file');
+    $migrations = ['d7_user_role', 'd7_user'];
+
+    $this->migrateFieldInstances();
+
+    if ($include_pictures) {
+      $migrations = array_merge([
+        'user_picture_field',
+        'user_picture_field_instance',
+      ], $migrations);
+    }
+
+    $this->executeMigrations($migrations);
+  }
+
+  /**
+   * Migrates node types.
+   */
+  protected function migrateContentTypes() {
+    $this->installConfig(['node']);
+    $this->executeMigration('d7_node_type');
+  }
+
+  /**
+   * Executes all content migrations.
+   *
+   * @param bool $include_revisions
+   *   If TRUE, migrates node revisions.
+   */
+  protected function migrateContent($include_revisions = FALSE) {
+    $modules = [
+      'comment',
+      'datetime',
+      'image',
+      'link',
+      'node',
+      'taxonomy',
+      'telephone',
+      'text',
+    ];
+    $this->enableModules($modules);
+    $this->installConfig('node');
+    $this->installConfig('comment');
+    $this->installEntitySchema('comment');
+    $this->installEntitySchema('node');
+
+    $this->migrateUsers(FALSE);
+    $this->migrateContentTypes();
+    $this->executeMigrations(['d7_node']);
+
+    if ($include_revisions) {
+      $this->executeMigrations(['d7_node_revision']);
+    }
+  }
+
+  /**
+   * Executes all taxonomy term migrations.
+   */
+  protected function migrateTaxonomyTerms() {
+    $this->installEntitySchema('taxonomy_term');
+
+    $this->migrateContentTypes();
+    $this->executeMigration('d7_comment_type');
+    $this->migrateFields();
+    $this->executeMigrations([
+      'd7_taxonomy_vocabulary',
+      'd7_field_instance',
+      'd7_taxonomy_term',
+    ]);
+  }
+
 }
diff --git a/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTypeTest.php b/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTypeTest.php
index 8b98ec3..acc5315 100644
--- a/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTypeTest.php
+++ b/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTypeTest.php
@@ -27,8 +27,7 @@ class MigrateNodeTypeTest extends MigrateDrupal7TestBase {
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(array('node'));
-    $this->executeMigration('d7_node_type');
+    $this->migrateContentTypes();
   }
 
   /**
diff --git a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php
index 214e784..ce3ba0f 100644
--- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php
+++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php
@@ -36,17 +36,8 @@ class MigrateTaxonomyTermTest extends MigrateDrupal7TestBase {
    */
   protected function setUp() {
     parent::setUp();
-    $this->installEntitySchema('taxonomy_term');
     $this->installConfig(static::$modules);
-
-    $this->executeMigrations([
-      'd7_node_type',
-      'd7_comment_type',
-      'd7_field',
-      'd7_taxonomy_vocabulary',
-      'd7_field_instance',
-      'd7_taxonomy_term'
-    ]);
+    $this->migrateTaxonomyTerms();
   }
 
   /**
diff --git a/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerNodeTest.php b/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerNodeTest.php
index 7045f45..277069c 100644
--- a/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerNodeTest.php
+++ b/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerNodeTest.php
@@ -32,10 +32,10 @@ protected function setUp() {
     $this->installSchema('node', ['node_access']);
     $this->installSchema('tracker', ['tracker_node', 'tracker_user']);
 
+    $this->migrateContentTypes();
     $this->executeMigrations([
       'd7_user_role',
       'd7_user',
-      'd7_node_type',
       'd7_node',
       'd7_tracker_node',
     ]);
diff --git a/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerUserTest.php b/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerUserTest.php
index 0acc4e5..70e4a75 100644
--- a/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerUserTest.php
+++ b/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerUserTest.php
@@ -32,10 +32,10 @@ protected function setUp() {
     $this->installSchema('node', ['node_access']);
     $this->installSchema('tracker', ['tracker_node', 'tracker_user']);
 
+    $this->migrateContentTypes();
     $this->executeMigrations([
       'd7_user_role',
       'd7_user',
-      'd7_node_type',
       'd7_node',
       'd7_tracker_node',
     ]);
diff --git a/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserTest.php b/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserTest.php
index d18d071..7f79c63 100644
--- a/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserTest.php
+++ b/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserTest.php
@@ -41,43 +41,7 @@ class MigrateUserTest extends MigrateDrupal7TestBase {
   protected function setUp() {
     parent::setUp();
 
-    // Prepare to migrate user pictures as well.
-    $this->installEntitySchema('file');
-    $this->createType('page');
-    $this->createType('article');
-    $this->createType('blog');
-    $this->createType('book');
-    $this->createType('forum');
-    $this->createType('test_content_type');
-    Vocabulary::create(['vid' => 'test_vocabulary'])->save();
-    $this->executeMigrations([
-      'language',
-      'user_picture_field',
-      'user_picture_field_instance',
-      'd7_user_role',
-      'd7_field',
-      'd7_field_instance',
-      'd7_user',
-    ]);
-  }
-
-  /**
-   * Creates a node type with a corresponding comment type.
-   *
-   * @param string $id
-   *   The node type ID.
-   */
-  protected function createType($id) {
-    NodeType::create([
-      'type' => $id,
-      'label' => $this->randomString(),
-    ])->save();
-
-    CommentType::create([
-      'id' => 'comment_node_' . $id,
-      'label' => $this->randomString(),
-      'target_entity_type_id' => 'node',
-    ])->save();
+    $this->migrateUsers();
   }
 
   /**
