如何在Drupal8功能测试中导入配置同步文件?
我想知道如何在我正在测试的模块的功能测试中导入配置同步文件。例如,我有一些要测试的自定义内容类型,config/sync中有许多文件属于定义自定义内容类型的节点模块如何在Drupal8功能测试中导入配置同步文件?,drupal,phpunit,functional-testing,drupal-8,configuration-management,Drupal,Phpunit,Functional Testing,Drupal 8,Configuration Management,我想知道如何在我正在测试的模块的功能测试中导入配置同步文件。例如,我有一些要测试的自定义内容类型,config/sync中有许多文件属于定义自定义内容类型的节点模块 class ArticleControllerTest extends BrowserTestBase { protected static $modules = ['node', 'dist_source']; } 在测试的顶部,我定义了成功导入的模块,但它不包括配置同步设置,因此没有任何自定义内容类型。如何将这些导入到
class ArticleControllerTest extends BrowserTestBase {
protected static $modules = ['node', 'dist_source'];
}
在测试的顶部,我定义了成功导入的模块,但它不包括配置同步设置,因此没有任何自定义内容类型。如何将这些导入到我的测试环境中?在开始测试Drupal 8时,我有同样的问题。在阅读了一些文档和教程后,我尝试并了解了几种方法:
$this->configImporter()
帮助将配置从同步导入活动
$this->configImporter()
在Drupal\Tests\ConfigTestTrait
中退出。这个特性已经在一些基于测试类中使用,比如BrowserTestBase
然而,这种方法对我不起作用。因为,我使用了thunder安装配置文件。配置文件安装完成后,将存在默认内容。一旦$this->configImporter()
开始导入同步配置,它就会遇到一些错误,即某些实体类型无法更新,因为这些实体已经存在
创建一个测试配置文件
(还没试过)
如果Drupal站点是通过标准配置文件安装的,您可以尝试将同步配置放入测试配置文件中。模块可能会帮助您创建测试配置文件。配置和概要文件存在相关问题
将依赖于模块的配置放入config/install
或config/optional
(为我工作)
贡献的模块总是将配置放入config/install
和config/optional
中。安装模块后,配置还将写入数据库或活动存储器
在模块中开发配置时,帮助将配置导出到已开发模块的config/install
如果有人有相同的经验,请期待与我们分享。我在
setUp()
中的测试基类(extensed BrowserTestBase
)中这样做:
// import config from sync
$config_path = '/home/rainer/src/asdent/config/sync';
$config_source = new FileStorage($config_path);
\Drupal::service('config.installer')->installOptionalConfig($config_source);
效果很好
它就像一个drush cim sync
并在gitlab CI中为我的端2端自动phpunit测试提供生产配置。Hi Thomas,你知道了吗?