I want to add a taxonomy term and add field to it. My current code looks this way:
<?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->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) 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?