lucatume/wp-browser
A set of Codeception modules to test WordPress projects.
4.7.1
4.3M downloads/mo
#2128 most downloaded on Packagist
lucatume/wp-browser
What this package is like to depend on
Last release 1 months ago
05 Jul 2026
Ships fairly regularly
a new release about every 6 weeks
Most releases are documented
notes for 322 of 420 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
420 releases · first in 2014
22 releases in the last 12 months
see the full history below
Release timeline
419 releases · Jul 2014 to Jul 2026
2015
2017
2019
2021
2023
2025
Releases
latest 60 of 420-
4.7.130 Jun 2026Release notes
Open source →4.7.1
Changed
- Refresh the bundled WordPress core PHPUnit test includes and the
sqlite-database-integrationplugin to their latest upstream versions (#809).
Release notes
Open source →Changed
- Refresh the bundled WordPress core PHPUnit test includes and the
sqlite-database-integrationplugin to their latest upstream versions (#809).
- Refresh the bundled WordPress core PHPUnit test includes and the
-
4.7.030 Jun 2026Release notes
Open source →4.7.0
Added
dev:rebuildcommand to build thetests/_wordpressinstallation used by the default configuration, e.g. on a fresh clone or in CI where it is not committed. Documented the default self-contained setup on GitHub Actions, with an example workflow (#807).init wpbrowserrecords the installed WordPress version in theWORDPRESS_VERSIONentry oftests/.env;dev:rebuildreuses it (override with--wp-version) so a rebuilt installation matches the version the committeddump.sqlwas generated from (#807).init wpbrowser(plugin and theme projects) writes atests/_wordpress/.gitignoreso the rebuildable WordPress installation is not committed; restore it withdev:rebuild(#807).init wpbrowser(plugin and theme projects) writes atests/Support/Data/.gitignorewith!dump.sqlso the database fixture is committed even when a global gitignore excludes*.sql(#807).
Fixed
init wpbrowserset up the default-configuration admin user with the email[email protected]; it now uses[email protected](#807).- MySQL server binary download no longer fails with HTTP 403:
dev.mysql.com's CDN started blocking the custom user agent, so the downloader now sends acurl/<version>user agent that is allowed through (#808).
Release notes
Open source →Added
dev:rebuildcommand to build thetests/_wordpressinstallation used by the default configuration, e.g. on a fresh clone or in CI where it is not committed. Documented the default self-contained setup on GitHub Actions, with an example workflow (#807).init wpbrowserrecords the installed WordPress version in theWORDPRESS_VERSIONentry oftests/.env;dev:rebuildreuses it (override with--wp-version) so a rebuilt installation matches the version the committeddump.sqlwas generated from (#807).init wpbrowser(plugin and theme projects) writes atests/_wordpress/.gitignoreso the rebuildable WordPress installation is not committed; restore it withdev:rebuild(#807).init wpbrowser(plugin and theme projects) writes atests/Support/Data/.gitignorewith!dump.sqlso the database fixture is committed even when a global gitignore excludes*.sql(#807).
Fixed
init wpbrowserset up the default-configuration admin user with the email[email protected]; it now uses[email protected](#807).- MySQL server binary download no longer fails with HTTP 403:
dev.mysql.com's CDN started blocking the custom user agent, so the downloader now sends acurl/<version>user agent that is allowed through (#808).
-
4.6.116 Jun 2026Release notes
Open source →4.6.1
Fixed
wp:db:exportfrom a SQLite installation no longer truncates values containing NUL bytes (e.g. serialized objects with protected/private properties): table rows are read with each column cast toBLOBso theSQLite3extension does not stop at the first NUL byte, and the full value is hex-encoded into the dump.
Release notes
Open source →Fixed
wp:db:exportfrom a SQLite installation no longer truncates values containing NUL bytes (e.g. serialized objects with protected/private properties): table rows are read with each column cast toBLOBso theSQLite3extension does not stop at the first NUL byte, and the full value is hex-encoded into the dump.
-
4.6.009 Jun 2026Release notes
Open source →4.6.0
Changed
- Replace the bundled
lucatume\WPBrowser\Opis\Closure\*library withlucatume\WPBrowser\Utils\Packerandlucatume\WPBrowser\Utils\PackedClosurefor closure serialization in the IPC pipeline.
Removed
- Drop the bundled
includes/opis/closure/library and itslucatume\WPBrowser\Opis\Closure\PSR-4 autoload entry.
Fixed
wp:db:exportfrom a SQLite installation no longer produces a non-importable dump: values are hex-encoded instead of achar(10)concatenation chain that overflowed SQLite's expression-depth limit on values with many newlines (#802).- The installer no longer fatals when setting up WordPress 7.0:
FileRequestbinds the$menu,$submenuand$compatadmin-menu globals to the global scope before loading the target file, so WordPress 7.0's admin bootstrap does not runuksort()on a null$menu(#804).
Breaking change
- The
lucatume\WPBrowser\Opis\Closure\*namespace is no longer autoloaded. None of its classes were part of the documented public API but the namespace was reachable via PSR-4; any consumer that imported or extended them must migrate tolucatume\WPBrowser\Utils\PackedClosure. - Consumers using
--classmap-authoritativeComposer installs must runcomposer installafter upgrading to drop the stale classmap entries.
Release notes
Open source →Changed
- Replace the bundled
lucatume\WPBrowser\Opis\Closure\*library withlucatume\WPBrowser\Utils\Packerandlucatume\WPBrowser\Utils\PackedClosurefor closure serialization in the IPC pipeline.
Removed
- Drop the bundled
includes/opis/closure/library and itslucatume\WPBrowser\Opis\Closure\PSR-4 autoload entry.
Fixed
wp:db:exportfrom a SQLite installation no longer produces a non-importable dump: values are hex-encoded instead of achar(10)concatenation chain that overflowed SQLite's expression-depth limit on values with many newlines (#802).- The installer no longer fatals when setting up WordPress 7.0:
FileRequestbinds the$menu,$submenuand$compatadmin-menu globals to the global scope before loading the target file, so WordPress 7.0's admin bootstrap does not runuksort()on a null$menu(#804).
Breaking change
- The
lucatume\WPBrowser\Opis\Closure\*namespace is no longer autoloaded. None of its classes were part of the documented public API but the namespace was reachable via PSR-4; any consumer that imported or extended them must migrate tolucatume\WPBrowser\Utils\PackedClosure. - Consumers using
--classmap-authoritativeComposer installs must runcomposer installafter upgrading to drop the stale classmap entries.
- Replace the bundled
-
4.5.1523 Feb 2026 -
4.5.1419 Feb 2026Release notes
Open source →4.5.14
Fixed
StubClassFactoryissue where mocking of internal classes would incorrectly detect optional constructor parameters.
Release notes
Open source →Fixed
StubClassFactoryissue where mocking of internal classes would incorrectly detect optional constructor parameters.
-
4.5.1318 Feb 2026Release notes
Open source →Changed
- Update Core PHPUnit test suite to latest version.
- Update SQLite database integration plugin from version
2.2.16to version2.2.17
-
4.5.1218 Feb 2026Release notes
Open source →Fixed
- Snapshot resolved config in
WPFilesystem::_initialize()to preserve absolute paths across tests when_resetConfig()or_reconfigure()is called.
- Snapshot resolved config in
-
4.5.1120 Jan 2026Release notes
Open source →Changed
- Guard
setAccessible()Reflection method calls with aPHP_VERSION_IDcheck to skip the no-op call on PHP >= 8.1. (thanks @BrianHenryIE) - Update the WordPress Core PHPUnit suite
- Update the SQLite database integration plugin from version
2.2.14to version2.2.16
- Guard
-
4.5.1021 Nov 2025Release notes
Open source →Fixed
- Wording in the default EndToEnd suite configuration files to reflect the nature of the suite.
-
4.5.905 Nov 2025Release notes
Open source →Fixed
- Anticipate plugins activation and loading in the
WPLoadermodule to ensure pluggable functions overridden in plugins will correctly apply.
- Anticipate plugins activation and loading in the
-
4.5.804 Nov 2025Release notes
Open source →Fixed
- Fixed
DB_PASSWORDconstant not being defined whendbPasswordconfiguration parameter is set to an empty string inWPLoadermodule, fixes #786.
- Fixed
-
4.5.709 Sep 2025Release notes
Open source →Fixed
- Updated
activatePluginanddeactivatePluginmethods inWPBrowserandWPWebDrivermodules to reload the plugins page after activation.
- Updated
-
4.5.608 Sep 2025Release notes
Open source →Fixed
- Updated
activatePluginanddeactivatePluginmethods inWPBrowserandWPWebDrivermodules to use WordPress 6.5+ compatible selectors.
- Updated
-
4.5.515 Aug 2025Release notes
Open source →Changed
- Better
WPLoadermodule output in exceptions (thanks @BrianHenryIE).
- Better
-
4.5.417 Jun 2025Release notes
Open source →Fixed
- Restored support for the
allow-rootconfiguration parameter in theWPCLImodule.
- Restored support for the
-
4.5.308 May 2025Release notes
Open source →Fixed
- Extensions event subscription to avoid type issues with newer PHP versions.
-
4.5.225 Apr 2025Release notes
Open source →Added
- The
WPLoadermodule will now attempt resolving theWP_CONTENT_DIR,WP_PLUGIN_DIR,WPMU_PLUGIN_DIRandpluginsFolderconfiguration parameters from the Codeception root directory if not possible to resolve them from the current working directory. (thanks @BrianHenryIE)
- The
-
4.5.124 Apr 2025Release notes
Open source →Fixed
- Correctly serialize and unserialize options in the SQLite database implementation.
- Fix
Symlinkerextension issue where the target link path would be built incorrectly.
-
4.5.023 Apr 2025Release notes
Open source →Changed
- Support
symfony/processandsymfony/filesystemversion>=7.0. - Set PHPUnit supported version to
<=12.0.0.
- Support
-
4.4.222 Feb 2025Release notes
Open source →Fixed
- Avoid duplicated definition issue in
GenerateWPUnitcommand. - Update MySQL server class download URLs
- Avoid duplicated definition issue in
-
4.4.109 Dec 2024Release notes
Open source →Fixed
- Ensure plugin activation is respected indifferent of plugins that might deactivate others during activation.
-
4.4.008 Dec 2024 -
4.3.1029 Nov 2024Release notes
Open source →Fixed
- Check the PID file for the PHP built-in server, MySQL and Chromedriver controllers to make sure the PID maps to an actually running process.
-
4.3.929 Nov 2024Nothing published for this version
-
4.3.827 Nov 2024 -
4.3.708 Nov 2024Release notes
Open source →Fixed
- In
WPDbmodule look up theWPFilesystemmodule with and without leading slash.
- In
-
4.3.602 Nov 2024Release notes
Open source →Fixed
- Fallback for missing
$_composer_autoload_pathfile. (thanks @andronocean)
- Fallback for missing
-
4.3.516 Oct 2024Release notes
Open source →Changed
- Improve
LoadSandboxerror and messaging (used by theWPLoadermodule whenloadOnly: true) around Codeception early exits. (thanks @andronocean)
- Improve
-
4.3.413 Sep 2024Release notes
Open source →Fixed
- Set proper
WPTetCase::factory()return type, so IDE autocompletion works (thanks @defunctl).
- Set proper
-
4.3.311 Sep 2024Release notes
Open source →Fixed
- Ensure the
WPLoadermodule will set the db constants when inloadOnly: truemode. - The
WPLoadermodule will now set theWPBROWSER_LOAD_ONLYenvironment variable to1when inloadOnly: trueand to0when inloadOnly: falsemode. - Updated documentation for the
WPLoadermodule to explicitly state that theconfigFlileparameter will be used both when inloadOnly: trueandloadOnly: falsemodes.
- Ensure the
-
4.3.210 Sep 2024Release notes
Open source →Fixed
- Doc-block namespace in the
WPRestApiTestCaseclass, thanks @TimothyBJacobs.
- Doc-block namespace in the
-
4.3.107 Sep 2024Release notes
Open source →Fixed
mysqlcommand output in theMysqlServerControllerinformation output.
-
4.3.001 Sep 2024Release notes
Open source →Added
- Support for PHPUnit 10 and 11.
- The
MysqlServerControllerextension.
Fixed
- Ensure the
WPLoadermodule will initialize correctly when used inloadOnlymode not using theEventDispatcherBridgeextension. (thanks @lxbdr) - Support loading the
wpdbclass from either theclass-wpdb.phpfile or thewp-db.phpone, supporting older versions of WordPress (thanks @BrianHenryIE) - Read content, plugins and mu-plugins directories paths from the
WPLoaderconfiguration parameters correctly. - In the
WPTestCaseclass, remove attachments created during tests between tests.
-
4.2.526 Jun 2024 -
4.2.406 Jun 2024Release notes
Open source →Added
- Re-added the
Symlinkerextension to allow for the symlinking of plugins and themes in place during tests. - Update setup to use the
Symlinkerextension.
- Re-added the
-
4.2.303 Jun 2024Release notes
Open source →Fixed
- Disable strict connection ID check for SQLite databases to avoid errors in tests.
-
4.2.225 May 2024Release notes
Open source →Changed
- Better messaging when throwing due to disconnected database.
- Add the
WPLoader::beStrictAboutWpdbConnectionIdconfiguration parameter, defaults totrue, to throw if db connection changes during setup before class.
-
4.2.124 May 2024Release notes
Open source →Fixed
- Throw on disconnected db in
WPTestCase::setUpBeforeClass, iterates over the fix for #720.
- Throw on disconnected db in
-
4.2.024 May 2024Release notes
Open source →Added
- Allow plugins to be loaded from arbitrary absolute or relative paths in the
WPLoadermodule. - Allow themes to be loaded from arbitrary absolute or relative paths in the
WPLoadermodule. - Support an array argument for the
themeconfiguration parameter in theWPLoadermodule to define[parent-theme, child-theme]pairs.
- Allow plugins to be loaded from arbitrary absolute or relative paths in the
-
4.1.918 May 2024Release notes
Open source →Fixed
- Avoid calling
wpdb::db_connect()twice duringWPLoaderbootstrap. (thanks @calvinalkan)
- Avoid calling
-
4.1.813 May 2024 -
4.1.712 Apr 2024 -
4.1.607 Apr 2024Release notes
Open source →Changed
- Load WordPress at
SUITE_BEFOREin theWPLoadermodule, I had previously changed this toSUITE_INITbut that was causing issues. - Update Core PHPUnit tests
- Update SQLite plugin.
- Load WordPress at
-
4.1.528 Mar 2024Release notes
Open source →Changed
- Update init template to scaffold dump file path and example tests correctly (thanks @tarecord).
-
4.1.419 Mar 2024Release notes
Open source →Added
- The
AirplaneModemodule, based on thenorcross/airplane-modeplugin, to put the website under test in "airplane mode", preventing it from making any network requests during tests.
- The
-
4.1.313 Mar 2024Release notes
Open source →Added
lucatume\WPBrowser\Traits\UopzFunctionstrait to provide a set of functions to work with theuopzextension; see the documentation for more details.
-
4.1.207 Mar 2024Release notes
Open source →Changed
- Disable MU update routine in CLI router to speed up test execution.
-
4.1.105 Mar 2024Release notes
Open source →Changed
- Replace
ifsnop/mysqldump-phpwithdruidfi/mysqldump-phpfor better performance (thanks @staabm).
- Replace
-
4.1.020 Feb 2024Release notes
Open source →Changed
- The
WPTestCaseclass will not backup globals and static attributes by default. Version3of wp-browser did not backup globals and static attributes by default, this change in version4is aligned with that behaviour to ease migration from version3to version4.
Added
- Restored support for the
@runInSeparateProcessannotation for test methods. Along with it, improved support for the@dataProviderannotation for test methods used in conjunction with the@runInSeparateProcessannotation to run data provider methods at most once. - Implemented support for the
runTestsInSeparateProcessesannotation for test classes; supporting the@dataProviderannotation ro run data provider methods at most once. - Added support for the
#[RunInSeparateProcess]attribute for test methods and the#[RunTestsInSeparateProcesses]attribute for test classes. - Migration guide from version 3 to version 3.5 or 4
- The
-
4.0.2112 Feb 2024Release notes
Open source →Fixed
- Search more paths for Chrome binaries on linux (#694, thanks to @iateadonut)
Changed
- List paths searched for Chrome on current platform in debug output
-
4.0.2012 Feb 2024Release notes
Open source →Added
- Print file and line of failure during setup of plugin project, (#694, thanks to @iateadonut)
-
4.0.1909 Feb 2024Release notes
Open source →Fixed
- PHPUnit version 10+ warnings (#692)
Changed
- Updated Core PHPUnit test code from
wordpress/wordpress-develop. - Update SQLite plugin from
sqlite-database-integrationplugin.
-
4.0.1823 Jan 2024 -
4.0.1714 Dec 2023 -
4.0.1607 Dec 2023 -
4.0.1506 Dec 2023Release notes
Open source →Added
- The
WPLoader::silentlyActivatePluginsconfiguration parameter to activate plugins without firing theactivated_pluginaction.
- The
-
4.0.1406 Dec 2023Release notes
Open source →Added
- The
WPLoader::skipInstallconfiguration parameter to skip the WordPress installation when already installed.
- The
-
4.0.1328 Nov 2023Release notes
Open source →Changed
- Updated Core PHPUnit test suite
- Updated SQLite plugin from version 2.1.1 to 2.1.2
-
4.0.1225 Nov 2023Release notes
Open source →Added
- Added the
backupGlobals,backupGlobalsExcludeList,backupStaticAttributes,backupStaticAttributesExcludeListto theWPLoadermodule configuration file to provide a sweeping control over the state snapshot of test cases extending theWPTestCaseclass. Test cases overriding those properties explicitly will have their values respected.
- Added the