PHPunit Drupal8: тип сущности "узел" не существует - PullRequest
0 голосов
/ 30 апреля 2019

После генерации модуля с drupal:

vendor/bin/drupal generate:module

я попытался запустить модульное тестирование в моем новом модуле в этом файле: modules / custom / candidacy_analyser / tests / src / Functional / LoadTest.php

, поэтому я использовал эту команду после создания phpunit.xml и поместил ее в ядро ​​

vendor/bin/phpunit --configuration core  modules/custom/candidacy_analyser/tests/src/Functional/LoadTest.php

, но обнаружил ошибку:

Произошла 1 ошибка:

1) Drupal \ Tests \ candidacy_analyser \ Functional \ LoadTest :: testLoad Drupal \ Component \ Plugin \ Exception \ PluginNotFoundException: тип сущности "узел" не существует.

Stacktrace:

/ var / www / html / core / lib / Drupal / Core / Entity / EntityTypeManager.php: 133 /var/www/html/core/lib/Drupal/Core/Entity/EntityManager.php: 54 /var/www/html/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php:117 /var/www/html/core/lib/Drupal/Core/Field/BaseFieldDefinition.php: 713 /var/www/html/core/lib/Drupal/Core/Field/BaseFieldDefinition.php:736 / var / www / html / core / lib / Drupal / Core / Entity / Sql / DefaultTableMapping.php: 388 /var/www/html/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php:696 / var / www / html / core / lib / Drupal / Core / Entity / Sql / SqlContentEntityStorage.php: 309 /var/www/html/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php:1397 /var/www/html/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php1483 /var/www/html/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php:1398 /var/www/html/core/lib/Drupal/Core/Entity/EntityTypeListener.php:71 / var /www / html / core / lib / Drupal / Core / Entity / EntityManager.php: 534 /var/www/html/core/lib/Drupal/Core/Entity/EntityDefinitionUpdateManager.php:157 / var / www / html / core /lib / Drupal / Core / Extension / ModuleInstaller.php: 239 /var/www/html/core/lib/Drupal/Core/ProxyClass/Extension/ModuleInstaller.php:83 / var / www / html / core / lib / Drupal /Core / Test / FunctionalTestSetupTrait.php: 414 /var/www/html/core/tests/Drupal/Tests/BrowserTestBase.php:572 /var/www/html/core/tests/Drupal/Tests/BrowserTestBase.php:398 /вар / WWW / HTML / модули / сustom / candidacy_analyser / tests / src / Functional / LoadTest.php: 33

созданный файл: LoadTest.php:

<?php

namespace Drupal\Tests\candidacy_analyser\Functional;

use Drupal\Core\Url;
use Drupal\Tests\BrowserTestBase;

/**
 * Simple test to ensure that main page loads with module enabled.
 *
 * @group candidacy_analyser
 */
class LoadTest extends BrowserTestBase {

  /**
   * Modules to enable.
   *
   * @var array
   */
  public static $modules = ['candidacy_analyser'];

  /**
   * A user with permission to administer site configuration.
   *
   * @var \Drupal\user\UserInterface
   */
  protected $user;

  /**
   * {@inheritdoc}
   */
  protected function setUp() {
    parent::setUp();
    $this->user = $this->drupalCreateUser(['administer site configuration']);
    $this->drupalLogin($this->user);
  }

  /**
   * Tests that the home page loads with a 200 response.
   */
  public function testLoad() {
    $this->drupalGet(Url::fromRoute('<front>'));
    $this->assertSession()->statusCodeEquals(200);
  }

}

Любая помощь, пожалуйста?

1 Ответ

0 голосов
/ 15 мая 2019

Попробуйте определить node как один из ваших $ модулей:

public static $modules = ['node', 'candidacy_analyser'];

Возможно, вам также потребуется включить это в setup():

$this->installEntitySchema('node');
...