Testing a Patch

Alert: This page is under construction and may contain inaccurate information. Want to help fix it? Ping the #docs channel in WordPress Slack.

Testing patches is an important part of ensuring the quality of WordPress releases.

Using Grunt Using Grunt

Grunt is a great way to test patches that have been uploaded to Trac. To use grunt, follow these steps:

Note: Using VVV? Steps 1 through 6 are not necessary to get setup. However, you should use the command: vagrant ssh and go to the checkout of WordPress develop to run your grunt tasks through there. Note, you may have to use sudo if a command doesn’t work.

  1. Install nodejs and npm to your development environment.
  2. Clone the develop WordPress repository located at https://develop.svn.wordpress.org/
  3. Run npm install to get all the dependencies.
  4. Run npm run grunt build to get the fully-built version
  5. Setup your server to use /build as the root (varies depending on how your development environment is setup).
  6. In order for changes to /src to be reflected in /build, run npm run grunt watch while you are working.
  7. Alternatively, you can use /src as your document root, which may be much more convenient for PHP-focused development. You’ll need to run npm run grunt build -- --dev once, but after that you don’t need npm run grunt watch at all, unless you’re changing JavaScript/CSS. If you are, then use npm run grunt watch -- --dev instead of npm run grunt watch.

Now that grunt is setup, using it to test a patch is easy! Just type in npm run grunt patch:####, replacing #### with either a ticket number from Trac or a patch URL.

Ready to test your environment? Use npm run grunt test to automatically run automated tests. Note that this step requires phpunit to be installed.

If you’re a committer, be sure to run npm run grunt precommit before committing code, especially code that touches anything on the front-end (CSS/JS).

Note: if you are getting errors on running test or precommit and using Vagrant, try removing npm_modules and then running npm install. If errors continue try checking your permissions.

This section needs information on: SCRIPT_DEBUG (must be set to true), browserify + media, color schemes, and RTL.

And: A lot of this information should move to a different page because it’s not just about testing a patch. Where would you put a page on everything grunt?

Top ↑

Testing without Grunt Testing without Grunt

[This section needs to be renamed and filled with glorious content.]