Make WordPress Core

Opened 3 years ago

Last modified 3 years ago

#23690 closed enhancement

Allow plugin test bootstraps access to tests_add_filter() earlier — at Initial Version

Reported by: scribu Owned by:
Milestone: WordPress.org Priority: normal
Severity: normal Version:
Component: Unit Tests Keywords:
Focuses: Cc:


Currently, plugins that have their own unit tests have a bootstrap.php file that looks like this:


$GLOBALS['wp_tests_options'] = array(
    'active_plugins' => array( basename( dirname( dirname( __FILE__ ) ) ) . '/my-plugin.php' ),

require getenv( 'WP_TESTS_DIR' ) . '/includes/bootstrap.php';

The problem is that the plugin folder needs to be inside WP_CONTENT_DIR . '/plugins/', which is an artificial requirement.

The bootstrap file could just require() the plugin file themselves and everything will work, *except* for one thing: hooks such as 'plugins_loaded' or 'init'.

With the attached patch, the file could look like this:


require_once getenv( 'WP_TESTS_DIR' ) . '/includes/functions.php';

tests_add_filter( 'plugins_loaded', function() {
	require __DIR__ . '/../my-plugin.php';
}, 0 );

require getenv( 'WP_TESTS_DIR' ) . '/includes/bootstrap.php';

Change History (1)

@scribu3 years ago

Note: See TracTickets for help on using tickets.