mirror of
https://github.com/buddypress/buddypress.git
synced 2026-07-21 20:54:17 +08:00
`wp-env` requires Docker and the latest Node.js LTS version. It gives us a set of new `npm` commands to easily generate a local WordPress environment to unit test, develop and contribute to BuddyPress code. To enjoy `wp-env`, make sure you have SVN or Git, composer, Node.js and Docker installed on your computer. Get the development version of BuddyPress using our SVN repository or its GitHub read-only mirror from this URL: https://buddypress.org/download/#trunk, and use the command to fetch the code locally into a `buddypress` folder. From your terminal software, move to this folder to install the needed libraries using the following commands. `npm install` `composer install` Once done, you can set up your local development environment using this single command: `npm run wp-env start` You can now access to your local environment and finish the WordPress setup (permalinks etc..) from this URL: `http://localhost:8888/wp-admin/` The administration credentials are: - Username: admin, - Password: password To stop the environment, you can use this command: `npm run wp-env stop` To run PHP unit tests, you can use this command: `npm run test-php` To run PHP unit tests on multisite, you can use this command: `npm run test-php-multisite` You can customize your local development setup using a file named `.wp-env.override.json `. Our default setup is using the WordPress development version and includes the BP REST plugin. For more details about `wp-env`, have a look at this documentation page: https://developer.wordpress.org/block-editor/packages/packages-env/ Props oztaser, mercime, vapvarun Fixes #8317 git-svn-id: https://buddypress.svn.wordpress.org/trunk@12712 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
40 lines
1.4 KiB
PHP
40 lines
1.4 KiB
PHP
<?php
|
|
|
|
require_once( dirname( __FILE__ ) . '/define-constants.php' );
|
|
|
|
$multisite = (int) ( defined( 'WP_TESTS_MULTISITE') && WP_TESTS_MULTISITE );
|
|
system( WP_PHP_BINARY . ' ' . escapeshellarg( dirname( __FILE__ ) . '/install.php' ) . ' ' . escapeshellarg( WP_TESTS_CONFIG_PATH ) . ' ' . escapeshellarg( WP_TESTS_DIR ) . ' ' . $multisite );
|
|
|
|
// Bootstrap BP
|
|
require dirname( __FILE__ ) . '/../../../src/bp-loader.php';
|
|
|
|
// Bail from redirects as they throw 'headers already sent' warnings.
|
|
tests_add_filter( 'wp_redirect', '__return_false' );
|
|
|
|
require_once( dirname( __FILE__ ) . '/mock-mailer.php' );
|
|
function _bp_mock_mailer( $class ) {
|
|
return 'BP_UnitTest_Mailer';
|
|
}
|
|
tests_add_filter( 'bp_send_email_delivery_class', '_bp_mock_mailer' );
|
|
|
|
/**
|
|
* Load up component action and screen code.
|
|
*
|
|
* In BuddyPress, this is loaded conditionally, but PHPUnit needs all files
|
|
* loaded at the same time to prevent weird load order issues.
|
|
*/
|
|
$components = array( 'activity', 'blogs', 'friends', 'groups', 'members', 'messages', 'notifications', 'settings', 'xprofile' );
|
|
foreach ( $components as $component ) {
|
|
add_action( "bp_{$component}_includes", function() use ( $component ) {
|
|
$dirs = array(
|
|
buddypress()->plugin_dir . 'bp-' . $component . '/actions/',
|
|
buddypress()->plugin_dir . 'bp-' . $component . '/screens/',
|
|
);
|
|
|
|
foreach ( $dirs as $dir ) {
|
|
foreach ( glob( $dir . "*.php" ) as $file ) {
|
|
require $file;
|
|
}
|
|
}
|
|
} );
|
|
}
|