有什么办法让单元测试读取主题函数.php吗?

时间:2013-03-25 作者:Emerson Maningo

我已经对一个插件进行了单元测试,在我需要激活主题并检查主题是否为插件提供了正确的挂钩数据的部分之前,该插件工作得很好。

在我正在测试的插件中,我使用了apply\\u filters来实现主题函数中定义的add\\u filter挂钩。php。

这是我的单元测试代码:

function test_theme_hooks() {       

//Define required plugins for testing
$requiredplugins=array( \'0\' => \'myplugin1/plugin1.php\',\'1\' => \'myplugin2/plugin2.php\');

//Activate plugins
update_option(\'active_plugins\',$requiredplugins);       

//Activate theme    
switch_theme(\'my_theme_to_test\', \'my_theme_to_test\');

//Get groups defined by the theme
$Class_My_Plugin = new Class_My_Plugin;

    $groups_definedfrom_theme = $Class_My_Plugin->get_groups();

    $correct_groups=array(\'0\'=>\'Some array\');


    $this->assertEqual($correct_groups,$groups_definedfrom_theme);

}
问题是,主题似乎发挥了作用。测试期间不读取或执行php。我已手动检查主题是否已成功切换/启用以及所需的插件。但是$groups\\u definedfrom\\u主题的结果为NULL,这是不正确的。

如何正确执行此测试或如何使单元测试读取活动主题函数的任何提示。php及其过滤器?

谢谢你的帮助。

1 个回复
SO网友:middlesister

唯一的事情switch_theme() 要做的是在数据库中设置一个选项,说明哪个主题处于活动状态。因此,主题文件将不会通过使用该文件包含在内。

您需要自己将文件包括在测试函数中setUp()函数或setUpBeforeClass()测试类的函数。或者在类外的文件顶部。

如果你想让wordpress加载它,你也可以在$GLOBALS[\'wp_tests_options\'] 在引导程序中。php文件,但这将强制激活整个单元测试套件的主题,这可能不是您想要的。

结束

相关推荐