diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2021-04-15 00:52:54 +0200 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2021-04-15 00:52:54 +0200 |
commit | f8f01743b8b5256dda9e199f5d8e77ddb9eea278 (patch) | |
tree | f13001c67460cfab30c664ee80065823fb941c6d /tests/bootstrap.php | |
parent | 68df3cb908f8d6658fa39ef81a923bf8dc21509d (diff) | |
download | gigologadmin-f8f01743b8b5256dda9e199f5d8e77ddb9eea278.tar.gz gigologadmin-f8f01743b8b5256dda9e199f5d8e77ddb9eea278.tar.bz2 gigologadmin-f8f01743b8b5256dda9e199f5d8e77ddb9eea278.zip |
Fix test setup for wp-env.
After much reading I finally found the magic incantations, so now we can
run tests with real database access. This means we no longer need the
primitive $wpdb_stub.
The setup as now _requires_ wp-env, or an environment set up
sufficiently similar. Running in wp-env is the easiest, so aim for that.
I've added a `run-tests` script that will invoke the magic incantation
without having to remember it every time.
To set up for testing:
1. make sure you have composer[1] installed.
2. run `composer install`
3. make sure you have wp-env[2] installed
4. start the wordpress env: `wp-env start`
5. run the tests: `./run-tests`
Let the thousand tests bloom!
[1]: https://github.com/wp-phpunit/wp-phpunit
[2]: https://www.npmjs.com/package/@wordpress/env
Diffstat (limited to 'tests/bootstrap.php')
-rw-r--r-- | tests/bootstrap.php | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100644 index 0000000..0878ff7 --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,33 @@ +<?php +/** + * PHPUnit bootstrap file + * + * @package Sample_Plugin + */ + +//$_tests_dir = getenv( 'WP_TESTS_DIR' ); +require_once dirname( dirname( __FILE__ ) ) . '/vendor/autoload.php'; +$_tests_dir = getenv( 'WP_TESTS_DIR' ) ?: getenv( 'WP_PHPUNIT__DIR' ); + +if ( ! $_tests_dir ) { + $_tests_dir = rtrim( sys_get_temp_dir(), '/\\' ) . '/wordpress-tests-lib'; +} + +if ( ! file_exists( $_tests_dir . '/includes/functions.php' ) ) { + echo "Could not find $_tests_dir/includes/functions.php, have you run bin/install-wp-tests.sh ?"; + exit( 1 ); +} + +// Give access to tests_add_filter() function. +require_once $_tests_dir . '/includes/functions.php'; + +/** + * Manually load the plugin being tested. + */ +function _manually_load_plugin() { + require dirname( dirname( __FILE__ ) ) . '/giglogadmin.php'; +} +tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' ); + +// Start up the WP testing environment. +require $_tests_dir . '/includes/bootstrap.php'; |