summaryrefslogtreecommitdiffstats
path: root/tests/bootstrap.php
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2021-04-15 00:52:54 +0200
committerHarald Eilertsen <haraldei@anduin.net>2021-04-15 00:52:54 +0200
commitf8f01743b8b5256dda9e199f5d8e77ddb9eea278 (patch)
treef13001c67460cfab30c664ee80065823fb941c6d /tests/bootstrap.php
parent68df3cb908f8d6658fa39ef81a923bf8dc21509d (diff)
downloadgigologadmin-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.php33
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';