在为一个BrowserTestBase站点创建功能测试(扩展D8 )时,我将如何更改BrowserTestBase临时创建的站点的默认语言?
我试图用非英语语言在一个网站上运行测试,我想通过在测试用例中使用英语术语等来避免混淆。
据我所见,Drupal/Core/Test/FunctionalTestSetupTrait.php将默认的langcode设置为'en‘(在installParameters方法中),并且没有指定自定义安装参数的选项。除了手动黑客攻击之外,是否还有一种更优雅、“适当”的方式来改变这种行为?
如果这是不可能的,那么在创建站点语言之后,是否有可能在测试类的setUp方法中更改它呢?
发布于 2019-04-30 21:43:45
我想有几种方法。最简单的方法可能是重写installParameters()方法来指定所需的语言:
protected function installParameters() {
// This will come back with the langcode set to `en`.
$parameters = parent::installParameters();
// Update to desired langcode:
$parameters['parameters']['langcode'] = 'es';
return $parameters;
}我没有在内核中找到任何这样做的测试,但是有一些在通过UI安装过程中改变了它。(本例来自LanguagePathMonolingualTest)
// Make French the default language.
$edit = [
'site_default_language' => 'fr',
];
$this->drupalPostForm('admin/config/regional/language', $edit, t('Save configuration'));https://drupal.stackexchange.com/questions/278809
复制相似问题