WordPress.org

Make WordPress Core

Opened 14 months ago

Closed 14 months ago

Last modified 14 months ago

#23690 closed enhancement (fixed)

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

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

Description (last modified by scribu)

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

<?php

$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:

<?php

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

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

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

Change History (3)

scribu14 months ago

comment:1 scribu14 months ago

  • Owner set to scribu
  • Resolution set to fixed
  • Status changed from new to closed

In 1232/tests:

Use require_once to load includes/functions.php

fixes #23690

comment:2 scribu14 months ago

  • Description modified (diff)
Note: See TracTickets for help on using tickets.