如何强制Cron以在简单最简单期间保存的配置? -- 8 领域 和 cron 领域 和 testing 领域 drupal 相关 的问题

How to force cron to use config saved during a SimpleTest?


1
vote

问题

中文

i使用drupal simpleTest webtestbase为自定义模块写一个测试,它实现hook_cron()。该测试保存了Cron使用的配置对象,然后运行Cron:

  function testCron() {     $config = Drupal::service('config.factory')->getEditable('mymodule.settings');     $config       ->set('some_setting', 'some value')       ->set('another_setting', 'another value');     Drupal::service('cron')->run(); }   

保存设置,可以在测试期间使用。但是当我想在Cron中使用它们时(在mymodule.module中):

  /**  * Implements hook_cron().  */ function mymodule_cron() {     $config = Drupal::config('mymodule.settings');     ... }   

然后不是保存的值,使用config / import / mymodule.settings.yml的默认设置。

如何强制Cron使用测试中保存的设置?

英文原文

I write a test using Drupal\simpletest\WebTestBase for a custom module, which implements hook_cron(). The test saves a configuration object, which should be used by the cron, and then runs the cron:

function testCron() {     $config = \Drupal::service('config.factory')->getEditable('mymodule.settings');     $config       ->set('some_setting', 'some value')       ->set('another_setting', 'another value');     \Drupal::service('cron')->run(); } 

The settings are saved and can be used during the test. But when I want to use them in the cron (in mymodule.module):

/**  * Implements hook_cron().  */ function mymodule_cron() {     $config = \Drupal::config('mymodule.settings');     ... } 

then instead of the saved values, the default settings from config/import/mymodule.settings.yml are used.

How can I force the cron to use the settings saved in the test?

        
       
       

回答列表

3
 
vote
vote
最佳答案
 

评论后,您在测试中缺少保存呼叫。

这意味着只有在GetEdia()返回的Runtime对象中的变更仅在GetEdia()和Get()和GetEdaita()不共享静态缓存中,您就没有看到更改。

 

As commented, you were missing the save call in the test.

That means that the change is only in the runtime object returned by getEditable() and since get() and getEditable() do not share the static cache, you didn't see the change.

 
 

相关问题

1  通过实体过滤EVA字段附加到  ( Filtering by the entity an eva field is attached to ) 
我有一个非常嵌套的实体参考关系集,它们都是所有节点/内容类型,但每个都是不同的捆绑/类型。这是一种: 内容键入的字段,指向内容类型b 在内容类型b上有一个字段,指向内容类型c 内容类型C的字段指向内容类型D 在显示内容D型时,我希望在其指向的那个中嵌套,每次向后返回返回。所以,像: Content Ty...

1  如何使我的自定义主题建议最具体  ( How to make my custom theme suggestion the most specific ) 
是否可以保证我的自定义主题建议是主题建议列表的顶部?类似于以下的东西 <!-- FILE NAME SUGGESTIONS: x my-custom-theme-suggestion.html.twig x input--textfield.html.twig // ALSO WHY DO I HAVE...

0  特定字段的特定输入格式如何像Drupal 7?  ( How set specific input format for specific field like in drupal 7 ) 
我需要Drupal 7功能,其中我可以为特定字段选择特定的输入格式,而在Drupal 8中,这是基于权限,并且我真的不喜欢它,并且对于特定项目,我需要良好的旧D7行为。 现在我必须在页面加载期间更改输入格式的静态缓存,以实现提供特定输入格式的目标,但它是非常糟糕的方法,但我还没有找到一种简单的方法来实现这一目标。 ...

0  Drupal 8中的条件字段模块[已关闭]  ( Conditional fields module in drupal 8 ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅拍摄了一个问题,只有编辑此帖。 closed 1年前。 ...

4  无法将基于段落的功能导入新站点  ( Cannot import paragraph based feature into new site ) 
也许有一点功能的专业知识可以帮助我这里。 我有一个drupal网站,其中包含25段或如此类型的类型,我想将(一个逐一)导出到其自己的包含功能。 我安装了最新版本的功能,并创建了一个名为段落的新捆绑包。在此新捆绑包中,I启用了段落作为基本类型,因此它们是一个可导出选项。 我返回主功能admin,然后单击"创建新功能" ...

0  如何重定向评论表格?  ( How to redirect comment form ) 
我想在评论表单提交后重定向到节点。 但我尝试使用hook_form_alter hook,未发生重定向。 function pf_core_form_alter(&$form, DrupalCoreFormFormStateInterface $form_state, $form_id){ if($form_i...

0  使用具有不同核心版本的相同登录凭据  ( Use the same login credentials with different core versions ) 
我有一个drupal 7网站,我创建了新的drupal 8网站。我想在Drupal 8站点中使用Drupal 7站点的登录凭据。 如何实现这一目标? ...

0  仅在未选择选项(x)时,才能显示字段  ( How to display a field only if option x isnt selected ) 
在我的一个内容类型中,我有一个 status 字段(field_status),它是列表(文本)字段显示3无线电按钮选项设置为以下键|标签值: 0 | In Stock 1 |沉积 2 |出售 我有一个自定义枝形模板文件的这个内容类型,并且想知道如果选项不是0(有货),我将如何显示该值。有货是几乎是默认选...

3  隐藏/显示节点中的字段值  ( Hide show fields value in nodes ) 
我有一个内容类型=文章。我有2个字段。我想要的是,如果字段1为空或不包含任何值,请使用字段2替换此字段,(具有相同的CSS和HTML结构)否则默认情况下显示字段1的内容。 在d8中有没有办法? ...

2  自定义内容实体的操作批量表格  ( Operations bulk form for custom content entity ) 
有一个称为组织的自定义实体。我正在尝试构建一个视图来允许批量删除实体。 我检查了显示内容的视图,并且有一个字段以显示复选框(节点操作批量表单)。 此字段不会显示自定义实体。启用动作模块没有帮助。 为删除组织添加自定义操作,也不帮助。新动作显示在操作列表中,但"操作批量表单" 未显示在实体的视图上。 提前感谢您的帮助...

4  渲染曲线模板中的反应组件  ( Render react components in twig templates ) 
我在我的主题中使用React JS(通过NPM安装),并使用REST导出视图。我想将JSON视图数据渲染成React组件并在Twig模板中调用它们。 我现在的工作方式是我有js / main.js导入组件,例如:js / components / slider.jsx等。组件文件决定渲染的位置。例如: R...

-2  如何迁移数据(节点,用户和图像)? [关闭]  ( How do i migrate data nodes users and images ) 
关闭。这个问题是基于意见的。它目前不接受答案。 想要改进这个问题?更新问题,因此可以通过编辑此帖来回答事实和引用。 关闭 4年前。 ...

4  是否存在返回无效缓存项的条件?  ( Are there conditions where invalidated cache items are returned ) 
为什么我们使缓存标记无效,而不是使用这些标签的清除缓存项目?在什么条件下返回无效缓存? ...

0  如何在模板中使用缓存和条件渲染?  ( How to work with caching and conditional rendering in a template ) 
我添加了自定义模块函数,以允许 is_front 条件在块模板内工作。目的是在主页上显示网站口号,但不在网站的其余部分。该规则正常运行,但网站的缓存导致它会错误地呈现。如果我从首页清除缓存,则Slogan将显示Sitewide。如果我从另一个站点页面清除缓存,则在首页上不会显示Slogan。 我假设它是因为块的显示在...

2  使用内容和文件的混合创建视图  ( Create a view with mix of content and files ) 
是一种创建一个方法,允许显示两个实体类型的列表,例如,组合来自内容和文件实体文件视图的项目? 让我们说我们希望显示属于用户的所有内容的列表。我们为内容实体创建一个视图,然后将用户添加为所需的关系,但这不会显示要添加到视图中的文件字段。 ...

3  如何只添加特殊类别,只能仅为某些区域生成的所有块?  ( How can i add special classes to only all blocks thats generated in certain reg ) 
我想向自动在自定义区域生成的每个块中添加一些类。 例如,我想要在侧边栏中生成的所有块 - 左侧有一些特殊类,另外我不想在其他地区的那些块有那些类。 我尝试使用以下代码的内容将所需的类添加到左边栏中生成的每个块: region - sidebar-letth.html.twig {% set cla...

3  如何编辑Misc / print.css而不更改核心  ( How to edit misc print css without changing core ) 
我想编辑书本模块参考的核心/杂项/ print.css,我不知道如何。 如果我应该在某个地方移动print.css并在我的主题中加载新的print.css.info,或者是另一种方式对核心/杂项/ print.css进行更改而无需更改核心? ...

1  获取最新评论的时间戳  ( Get timestamp of most recent comment of an article ) 
我需要一篇文章的上次创建/更新的评论的日期。 Drupal 8中是否有任何API函数,如node-&gt; most_recent_comment?或者我必须检查循环中节点的每个评论日期吗? 编辑 - 解决方案: $node->comment->last_comment_timestamp; 请注意...

1  休息用户注册API,如何处理验证  ( Rest user registration api how to handle validation ) 
我是d8的新手,用drupal 8休息和休息Ui Contract模块构建应用程序。自8.3以来,用户注册API可用。但如果验证失败,它会抛出以下错误: The website encountered an unexpected error. Please try again later. 当我检查时,ad...

1  创建模块:表单配置类无效?  ( Creating a module form config class invalid ) 
我目前有一个工作模块,将ical链接解析为事件。这部分是工作。我现在正在尝试的是为我的模块创建一个配置页,允许我将链接输入到此ical文件。 我遵循多个指南,似乎似乎在同一位置结束: InvalidArgumentException: Class "Drupalgoogle_calendarFormGoogle...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.