Kernel Test: Programmatically create a vocabulary and add a field to it I want to add a taxonomy term and add field to it. My current code looks this way:

&lt;?php

namespace Drupal\Tests\permissions_by_term\Kernel;

use Drupal\KernelTests\KernelTestBase;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\taxonomy\Entity\Vocabulary;

/**
 * Tests the ERR composite relationship upgrade path.
 *
 * @group permissions_by_term
 */
class SelectTermTest extends KernelTestBase {

  /**
   * {@inheritdoc}
   */
  public static $modules = array('taxonomy', 'text');

  /**
   * List of taxonomy term names by language.
   *
   * @var array
   */
  public $termNames = [];

  /**
   * The vocabulary used for creating terms.
   *
   * @var \Drupal\taxonomy\VocabularyInterface
   */
  protected $vocabulary;

  function setUp() {
    parent::setUp();

    $this-&gt;installEntitySchema('taxonomy_term');

    // Create a vocabulary.
    $this-&gt;vocabulary = Vocabulary::create([
      'name' =&gt; 'Views testing tags',
      'vid' =&gt; 'views_testing_tags',
    ]);
    $this-&gt;vocabulary-&gt;save();

    // Add a translatable field to the vocabulary.
    $field = FieldStorageConfig::create(array(
      'field_name' =&gt; 'field_foo',
      'entity_type' =&gt; 'taxonomy_term',
      'type' =&gt; 'text',
    ));
    $field-&gt;save();
    FieldConfig::create([
      'field_name' =&gt; 'field_foo',
      'entity_type' =&gt; 'taxonomy_term',
      'label' =&gt; 'Foo',
      'bundle' =&gt; 'views_testing_tags',
    ])-&gt;save();
  }

  public function testSomething() {
  }

}


If I run the test by the following command:


  vendor/bin/phpunit -c modules/permissions_by_term
  modules/permissions_by_term/tests/src/Kernel/SelectTermTest.php


I'm getting the following output:


  PHPUnit 4.8.11 by Sebastian Bergmann and contributors.
  
  E
  
  Time: 882 ms, Memory: 6.00Mb
  
  There was 1 error:
  
  1)
  Drupal\Tests\permissions_by_term\Kernel\SelectTermTest::testSomething
  Drupal\Core\Entity\Exception\NoCorrespondingEntityClassException: The
  Drupal\field\Entity\FieldStorageConfig class does not correspond to an
  entity type.
  
  /home/peter/Websites/pbt-d8/core/lib/Drupal/Core/Entity/EntityTypeRepository.php:98
  /home/peter/Websites/pbt-d8/core/lib/Drupal/Core/Entity/EntityManager.php:375
  /home/peter/Websites/pbt-d8/core/lib/Drupal/Core/Entity/Entity.php:509
  /home/peter/Websites/pbt-d8/modules/permissions_by_term/tests/src/Kernel/SelectTermTest.php:49
  
  FAILURES! Tests: 1, Assertions: 1, Errors: 1.


I do not understand this part:


  Drupal\Core\Entity\Exception\NoCorrespondingEntityClassException: The
  Drupal\field\Entity\FieldStorageConfig class does not correspond to an
  entity type.


As an example I have used the Drupal core taxonomy test from 


  core/modules/taxonomy/src/Tests/Views/TaxonomyFieldFilterTest.php


This test does what I want to do, but is not a Kernel test. It is a Simpletest, since it inherits from WebTestBase. If I use WebTestBase, it works. But the test is much slower then. Do you know what's missing in my code for running it as a Kernel Test?
You need to enable the field module so its entity types are present. Kernel test base does not enable required modules so the FieldConfig and FieldStorageConfig entity types don't exist until you enable the field module. Put it in the $modules property with 'taxonomy' and 'text'.