I want to add a taxonomy term and add field to it. My current code looks this way:
<?php namespace DrupalTestspermissions_by_termKernel; use DrupalKernelTestsKernelTestBase; use DrupalfieldEntityFieldStorageConfig; use DrupaltaxonomyEntityVocabulary; /** * 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 DrupaltaxonomyVocabularyInterface */ protected $vocabulary; function setUp() { parent::setUp(); $this->installEntitySchema('taxonomy_term'); // Create a vocabulary. $this->vocabulary = Vocabulary::create([ 'name' => 'Views testing tags', 'vid' => 'views_testing_tags', ]); $this->vocabulary->save(); // Add a translatable field to the vocabulary. $field = FieldStorageConfig::create(array( 'field_name' => 'field_foo', 'entity_type' => 'taxonomy_term', 'type' => 'text', )); $field->save(); FieldConfig::create([ 'field_name' => 'field_foo', 'entity_type' => 'taxonomy_term', 'label' => 'Foo', 'bundle' => 'views_testing_tags', ])->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) DrupalTestspermissions_by_termKernelSelectTermTest::testSomething DrupalCoreEntityExceptionNoCorrespondingEntityClassException: The DrupalfieldEntityFieldStorageConfig 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:
DrupalCoreEntityExceptionNoCorrespondingEntityClassException: The DrupalfieldEntityFieldStorageConfig 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?
Sponsored by SupremePR