如何使用PHPUnit同时测试WordPress网站的所有插件、主题及数据库配置?
基于现有WordPress完整环境搭建多插件测试环境的方案
我折腾了好几个小时,搜了一堆指南,发现它们全是教怎么给单个插件搭测试环境——都是新建一个WordPress实例+空数据库。但我需要同时测试所有插件,因为很多插件之间有集成,而且它们的配置已经在现有数据库里了,没必要重新导到新测试库。
于是我对bin/install-wp-tests.sh做了以下修改:
- 在
install_wp()函数末尾添加一行:cp -a /$USER/wordpress/wp-content/. $WP_CORE_DIR/wp-content/ - 把
create_db()函数的内容替换成:
注:我的场景里,mysqldump $USER_wordpress > dump.sql --user="$DB_USER" --password="$DB_PASS"$EXTRA mysqladmin create $DB_NAME --user="$DB_USER" --password="$DB_PASS"$EXTRA mysql $DB_NAME < dump.sql --user="$DB_USER" --password="$DB_PASS"$EXTRA$USER_wordpress是现有WordPress数据库名称,/$USER/wordpress/wp-content/是wp-content目录的绝对路径
这样修改后,测试环境就会基于当前完整的WordPress安装环境,包含所有已安装/自定义的插件和现有数据库数据。
如果需要加载指定插件,要在tests/bootstrap.php文件的_manually_load_plugin()函数里设置,示例代码:
require rtrim( sys_get_temp_dir(), '/\\' ) . '/wordpress/wp-content/plugins/' . 'exampleplugin/exampleplugin.php';
之前参考的几个指南都没解决核心问题:怎么在测试里包含所有插件和数据库配置,从而在同一个测试里验证多插件集成并使用已有配置。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

