Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rask/wp-test-framework

A librarized version of the WordPress core PHPUnit test framework
https://github.com/rask/wp-test-framework

phpunit testing-framework wordpress wordpress-development wordpress-php-library

Last synced: 6 days ago
JSON representation

A librarized version of the WordPress core PHPUnit test framework

Awesome Lists containing this project

README

        

# rask/wp-test-framework

Extracted and librarized version of WordPress core's PHPUnit test framework to help with writing integration tests in WordPress plugins and themes.

The test framework is fetched from `https://develop.svn.wordpress.org/trunk/tests/phpunit/` and is stored in `src/phpunit` (with minor changes to make it work better as a Composer package).

The sources are updated when needed, so there may be minor differences between the core framework and this extracted library version. Let the maintainers know if there are bigger changes which need to be merged here.

## Installation

This library should be installed as a Composer dependency inside your plugin or theme:

$ composer require --dev rask/wp-test-framework

### WordPress testing installation setup

You need to have a WordPress instance downloaded locally into a directory where your user account can load and execute PHP code from:

$ cd /home/you/wordpress
$ wp-cli core download

Next, you do not need to install WP in there but instead you need a `wp-tests-config.php` file to be available. It is similar to a regular `wp-config.php` but is solely for testing purposes.

You can find an example configuration at `https://develop.svn.wordpress.org/trunk/wp-tests-config-sample.php`. Copy the contents into the WordPress root
directory (`ABSPATH`) and set up the configuration for your system (databases, etc.).

Your plugin/theme can (and probably should) live outside the WordPress testing installation.

## Setting up PHPUnit for your plugin/theme

Inside your plugin/theme directory you need to setup PHPUnit. Any regular-ish `phpunit.xml` configuration should work. In your PHPUnit bootstrap file you should load the WordPress test framework as such: