Developing for ElasticPress is easy. We provide tools that give you everything you need to test ElasticPress features and create Pull Requests. First thing you'll want to do is setup a local development environment.
Local Development Environment
We highly recommend using WP Local Docker V2 to develop for ElasticPress. This docker-based environment can be installed and setup via NPM. It comes with Elasticsearch out of the box.
After installing WP Local Docker V2, just run
10updocker create. Use
elasticpress.test as the hostname. Make sure to answer yes when it asks if you need Elasticsearch. After the site is created, follow the plugin install instructions.
wp-config.php file, insert the following to tell ElasticPress where Elasticsearch is located:
define( 'EP_HOST', 'http://elasticpress.test/__elasticsearch' );
composer install in the root of the plugin.
Unit Testing ElasticPress uses unit tests via the WordPress core unit testing library as well as acceptance tests with WP Acceptance.
To run unit tests, assuming you are using WP Local Docker V2 and Elasticsearch is running, SSH into your docker container by running
10updocker shell. Navigate to the root of the ElasticPress directory, first setup the test database:
composer run-script setup-local-tests
Now run the tests:
To run a specific test, pass the
EP_HOST="http://elasticsearch:9200" phpunit --filter=testSanitizeCredentials
To verify all of the code paths are being tested, you can generate an HTML code coverage report for your tests. Pass
--coverage-html test-coverage-html as a parameter and a report will be generated in that directory.
EP_HOST="http://elasticsearch:9200" phpunit --filter=testSanitizeCredentials --coverage-html test-coverage-html
To run WP Acceptance, navigate to the root of the plugin and run: