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..d2cfa5d 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityDisplayTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityDisplayTest.php
@@ -19,10 +19,8 @@ class MigrateCommentEntityDisplayTest extends MigrateDrupal7TestBase {
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(static::$modules);
+    $this->migrateCommentTypes();
     $this->executeMigrations([
-      'd7_node_type',
-      'd7_comment_type',
       'd7_comment_field',
       'd7_comment_field_instance',
       'd7_comment_entity_display',
diff --git a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php
index f8c4a07..c8e4a93 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplaySubjectTest.php
@@ -19,12 +19,8 @@ class MigrateCommentEntityFormDisplaySubjectTest extends MigrateDrupal7TestBase
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(static::$modules);
-    $this->executeMigrations([
-      'd7_node_type',
-      'd7_comment_type',
-      'd7_comment_entity_form_display_subject',
-    ]);
+    $this->migrateCommentTypes();
+    $this->executeMigrations(['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..a81b404 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplayTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityFormDisplayTest.php
@@ -19,10 +19,8 @@ class MigrateCommentEntityFormDisplayTest extends MigrateDrupal7TestBase {
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(static::$modules);
+    $this->migrateCommentTypes();
     $this->executeMigrations([
-      'd7_node_type',
-      'd7_comment_type',
       'd7_comment_field',
       'd7_comment_field_instance',
       'd7_comment_entity_form_display',
diff --git a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldInstanceTest.php b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldInstanceTest.php
index c7d8959..27a1849 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldInstanceTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldInstanceTest.php
@@ -22,10 +22,8 @@ class MigrateCommentFieldInstanceTest extends MigrateDrupal7TestBase {
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(static::$modules);
+    $this->migrateCommentTypes();
     $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..191c03b 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentFieldTest.php
@@ -21,12 +21,8 @@ class MigrateCommentFieldTest extends MigrateDrupal7TestBase {
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(static::$modules);
-    $this->executeMigrations([
-      'd7_node_type',
-      'd7_comment_type',
-      'd7_comment_field',
-    ]);
+    $this->migrateCommentTypes();
+    $this->executeMigrations(['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 f1e094f..4e73e81 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,25 @@
  */
 class MigrateCommentTest extends MigrateDrupal7TestBase {
 
-  public static $modules = ['filter', 'node', 'comment', 'text'];
+  public static $modules = [
+    'comment',
+    'datetime',
+    'image',
+    'link',
+    'node',
+    'taxonomy',
+    'telephone',
+    'text',
+  ];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-
-    $this->installConfig(static::$modules);
-    $this->installEntitySchema('node');
+    $this->migrateContent();
     $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([
-      'd7_node' => [
-        [[0], [0]],
-      ],
-    ]);
-    $this->executeMigrations([
-      'd7_node',
-      'd7_comment_type',
-      'd7_comment',
-    ]);
+    $this->executeMigrations(['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..f5c4adc 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTypeTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTypeTest.php
@@ -20,11 +20,7 @@ class MigrateCommentTypeTest extends MigrateDrupal7TestBase {
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(static::$modules);
-    $this->executeMigrations([
-      'd7_node_type',
-      'd7_comment_type',
-    ]);
+    $this->migrateCommentTypes();
   }
 
   /**
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 dd38569..1814992 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->migrateFields();
     $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 1e3df9e..900ffbe 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php
@@ -5,7 +5,6 @@
 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;
 
@@ -39,34 +38,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([
-      'type' => $id,
-      'label' => $this->randomString(),
-    ])->save();
-
-    CommentType::create([
-      'id' => 'comment_node_' . $id,
-      'label' => $this->randomString(),
-      'target_entity_type_id' => 'node',
-    ])->save();
+    $this->migrateFields();
   }
 
   /**
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 5a47e38..d22436a 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->migrateFields();
+    $this->executeMigration('d7_field_instance_widget_settings');
   }
 
   /**
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..584c6c1 100644
--- a/core/modules/migrate_drupal/tests/src/Kernel/d7/MigrateDrupal7TestBase.php
+++ b/core/modules/migrate_drupal/tests/src/Kernel/d7/MigrateDrupal7TestBase.php
@@ -24,4 +24,81 @@ protected function getFixtureFilePath() {
     return __DIR__ . '/../../../fixtures/drupal7.php';
   }
 
+  /**
+   * Executes all field migrations.
+   */
+  protected function migrateFields() {
+    $this->executeMigration('d7_field');
+    $this->migrateCommentTypes();
+    $this->executeMigration('d7_taxonomy_vocabulary');
+    $this->executeMigration('d7_field_instance');
+  }
+
+  /**
+   * 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->migrateFields();
+
+    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->installEntitySchema('node');
+    $this->executeMigration('d7_node_type');
+  }
+
+  /**
+   * Migrates comment types.
+   */
+  protected function migrateCommentTypes() {
+    $this->migrateContentTypes();
+    $this->installConfig(['comment']);
+    $this->executeMigration('d7_comment_type');
+  }
+
+  /**
+   * Executes all content migrations.
+   *
+   * @param bool $include_revisions
+   *   If TRUE, migrates node revisions.
+   */
+  protected function migrateContent($include_revisions = FALSE) {
+    $this->migrateCommentTypes();
+
+    $this->migrateUsers(FALSE);
+    $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->migrateFields();
+    $this->executeMigrations(['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 549021f..87124d6 100644
--- a/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTypeTest.php
+++ b/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTypeTest.php
@@ -20,15 +20,14 @@ class MigrateNodeTypeTest extends MigrateDrupal7TestBase {
    *
    * @var array
    */
-  public static $modules = ['node', 'text', 'filter'];
+  public static $modules = ['node', 'text'];
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
-    $this->installConfig(['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 7d73daf..b9ec507 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();
   }
 
   /**
