公司动态
wp-browser 自定义配置详解:用一份 .env 文件打造完美测试环境
wp-browser 自定义配置详解用一份 .env 文件打造完美测试环境【免费下载链接】wp-browserThe easy and reliable way to test WordPress with Codeception. 10 years of proven success.项目地址: https://gitcode.com/gh_mirrors/wp/wp-browserwp-browser是用 Codeception 测试 WordPress 网站、插件和主题最简单可靠的工具历经 10 年生产验证。它的自定义配置机制让一切测试环境参数都集中在一份.env文件里——数据库地址、WordPress 根目录、Chromedriver 端口、管理员账号……改一个文件即可切换整套测试环境无论是本地调试还是 CI 持续集成都能复用。为什么选择 .env 文件管理测试环境wp-browser 基于 Codeception 的**动态配置Dynamic Configuration**能力把配置参数从测试套件文件中剥离出来统一存放在tests/.env文件中。这样做有三大好处集中管理所有模块WPLoader、WPDb、WPWebDriver 等共享同一份参数无需在每个 suite 里重复填写环境隔离本地开发、CI 流水线、容器环境只需替换不同的.env文件代码零改动可版本化将tests/.env提交到版本库任何开发者composer install后都能重建出完全一致的测试环境。.env文件的解析由src/Utils/Env.php中的envFile()方法完成支持注释行#开头、带引号的值和行内注释语法与前端生态的 dotenv 完全一致。三步上手初始化 wp-browser 自定义配置整个初始化过程只需两条命令在项目根目录通过 Composer 安装开发依赖composer require --dev lucatume/wp-browser运行初始化命令vendor/bin/codecept init wpbrowser在向导提示是否使用默认配置时选择no跳过默认的 SQLite PHP 内置服务器方案进入自定义配置流程向导会依次询问你约 20 个问题测试套件命名、WordPress 安装路径、测试数据库主机/用户名/密码/表前缀、站点 URL、管理员账号等。每一个回答都会实时写入tests/.env文件。 如果某个问题回答错了完全不用重新初始化——直接用编辑器修改tests/.env或对应的tests/suite.suite.yml文件即可。.env 文件必会的 10 个核心变量下面这张速查表覆盖了tests/.env中最关键的变量照着填就能跑通全部测试套件变量名含义示例值WORDPRESS_ROOT_DIRWordPress 根目录含wp-load.php的目录支持绝对或相对路径vendor/wordpress或/var/www/wordpressWORDPRESS_URL测试站点的完整访问地址供浏览器级测试使用http://localhost:8080WORDPRESS_DOMAIN站点域名须与WORDPRESS_URL保持一致localhost:8080WORDPRESS_DB_URL测试数据库连接串MySQL 或 SQLitemysql://user:passhost:3306/wpdbWORDPRESS_TABLE_PREFIX线上站点的表前缀默认wp_wp_TEST_TABLE_PREFIX单元测试安装时使用的独立表前缀建议与上者不同test_WORDPRESS_ADMIN_USER站点管理员用户名adminWORDPRESS_ADMIN_PASSWORD站点管理员密码secret!passwordCHROMEDRIVER_HOSTChromedriver 服务地址本机运行通常为localhost容器栈中为容器名chromedriverCHROMEDRIVER_PORTChromedriver 端口容器环境中需与暴露端口一致9515或4444几个容易踩坑的细节WORDPRESS_DB_URL支持两种格式MySQL 用mysql://user:passwordhost:port/dbnameSQLite 则直接写文件路径sqlite://path/to/database/fileWORDPRESS_DOMAIN不含协议头WORDPRESS_URL是http://localhost:8080时域名只写localhost:8080两个表前缀要分开WORDPRESS_TABLE_PREFIX对应WORDPRESS_URL下真实运行的站点TEST_TABLE_PREFIX是 WPLoader 模块安装 WordPress 时的独立前缀两者混用会导致测试相互污染。自定义站点结构的进阶配置如果你的项目使用 Bedrock 等非标准目录结构WordPress 放在web/子目录、内容目录另行指定需要进一步配置 WPLoader 模块 才能正确定位站点内容。相关能力集中在src/Module/WPLoader.php中常用配置参数包括wpRootFolderWordPress 根目录路径支持相对 Codeception 根目录的路径dbUrl集成测试专用数据库连接串强烈建议与功能/验收测试的数据库分开避免数据互相干扰WP_CONTENT_DIR/WP_PLUGIN_DIR/WPMU_PLUGIN_DIR自定义内容、插件、must-use 插件目录适配任意目录结构plugins集成测试中需要激活的插件列表格式为插件目录/主文件.php。 注意WPLoader 只负责加载不会替你下载父主题或依赖插件这些需要预先放入对应的 WordPress 安装目录。一次命令完成预飞检查配置完成后运行四条命令即可验证整个测试栈是否就绪空套件也能跑通即代表配置无误vendor/bin/codecept run acceptance vendor/bin/codecept run functional vendor/bin/codecept run wpunit vendor/bin/codecept run unit如果某个套件报错先对照上面的变量速查表检查tests/.env路径与凭据是 90% 以上报错的根源。常见问题 FAQQ1密码可以提交到版本库吗tests/.env中的是测试环境凭据指向的数据库本身只用于测试数据会被重置因此推荐连同配置一起提交保证 CI 与本地行为一致。切勿把生产环境数据库连接串写进该文件。Q2在 Docker 或 Vagrant 里跑测试路径和数据库地址要改吗要。WORDPRESS_ROOT_DIR与数据库主机都是相对于运行测试的机器而言的宿主机上 WordPress 在/var/www/wordpress容器内可能就是/var/www/html。若希望一套配置两处通用优先使用相对路径wp-browser 会自动解析。Q3什么时候必须放弃默认配置三种典型场景你的项目已占用db.phpdrop-in 文件与 SQLite 方案冲突、测试基于子域名的多站点、使用自定义目录结构。这三种情况都请使用本文介绍的自定义配置方案。延伸阅读自定义配置官方说明docs/custom-configuration.md默认配置SQLite 一键方案docs/default-configuration.mdWPLoader 模块完整参数docs/modules/WPLoader.md环境变量解析实现src/Utils/Env.phpWPLoader 模块源码src/Module/WPLoader.php【免费下载链接】wp-browserThe easy and reliable way to test WordPress with Codeception. 10 years of proven success.项目地址: https://gitcode.com/gh_mirrors/wp/wp-browser创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考