Comments (8)
First idea that comes to mind and the path of less resistance is to use the bootstrapActions
parameter in WPLoader
config to run the action in charge of creating the tables and to hook the table creation method to a test action.
E.g.
add_action( 'init', [ $tables, 'maybe_create_tables' ] );
// probably not in production code but in a tests config file
add_action( 'test_init_alias', [ $tables, 'maybe_create_tables' ] );
and in WPLoader
configuration file:
bootstrapActions:
- test_init_alias
Running the installation in a separate process is not an impossible task though and I might explore it but I'd like to try easier solutions first.
from wp-browser.
An update on this: I've pushed a first draft code to the https://github.com/lucatume/wp-browser/tree/enhance/separated-process-install branch.
For the time being it does little but replicate what the core testing suite does but that's a start.
Will iterate on this.
from wp-browser.
Yes, this works (almost).
I had to make one change in isolated-install.php. After the defines loop (lines 10-12), I added:
$table_prefix = WP_TESTS_TABLE_PREFIX;
Otherwise all the tables are created with no prefix.
from wp-browser.
Thanks for pointing it out; I've pushed a commit to the branch to fix that.
I've left the code in a branch as I've not yet taken the time to verify all the functionalities; what's that "almost" about?
from wp-browser.
what's that "almost" about?
Just the table prefix comment.
Also, I note that a custom WP_CONTENT_DIR
doesn't carry through to the install. That's probably fine, but it does mean that custom tables created by plugins aren't deleted when the core tables are deleted. That works well for my purposes, but I'm not sure if it's a feature or a bug.
from wp-browser.
Ok, thanks.
I will look into the WP_CONTENT_DIR
issue as the expected behaviour is to carry over (I guess).
from wp-browser.
Refreshing the issue: how is this going?
from wp-browser.
Closing the issue due to lack of activity, should this not be resolved I will re-open.
from wp-browser.
Related Issues (20)
- [BUG] `amEditingUserWithId()` method missing from v4 HOT 1
- [BUG] Ajax tests fail HOT 2
- [BUG] Tests fail when being run from phpstorm HOT 3
- https://wpbrowser.wptestkit.dev/ not working HOT 1
- [FEATURE REQUEST] Add (grab|see)TransientInDatabase methods to WPDb
- [BUG] v4 doesn't like database names with periods in them HOT 1
- [DOC REQUEST] Test examples HOT 4
- [BUG] Can't access WP built-in functions even when using WPLoader HOT 14
- [BUG] Empty < Invalid database name: > when trying to add WPLoader HOT 2
- [BUG] v4 uses `__wakeup`, which many plugins have overridden with an error. HOT 3
- [BUG] WPLoader doesn't load wordpress installation HOT 12
- [DOC REQUEST] Setup issues HOT 4
- [BUG] Warnings while running tests HOT 1
- [SETUP ISSUE] failed activation, invalid Chrome binary HOT 4
- [FEATURE REQUEST] Integrate with ACF HOT 3
- [SETUP ISSUE] Teardown error — $wpdb is null HOT 5
- [FEATURE REQUEST] Lock WordPress to Specific Version HOT 4
- [BUG] race conditions & bugs due to connecting twice to database with WPTestCase and WPLoader | v3 HOT 13
- [Feature Request] - Question about dump option in WPLoader HOT 4
- Support for PHPUnit 10/11 and WebDriver 4 HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wp-browser.