PHPunit Drupal8:“节点”实体类型不存在

时间:2019-04-30 13:23:41

标签: php drupal phpunit drupal-8

使用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/SqlContentEntityStorageSchema.php:309   /var/www/html/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php:1397   /var/www/html/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php:1483   /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   /var/www/html/modules/custom/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 :(得分:0)

尝试将node定义为$ modules之一:

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

您可能还需要将其包含在setup()中:

$this->installEntitySchema('node');