[wp-trac] [WordPress Trac] #42282: Execute PHPUnit continuously over watched files in local environments

WordPress Trac noreply at wordpress.org
Thu Oct 19 19:03:07 UTC 2017


#42282: Execute PHPUnit continuously over watched files in local environments
------------------------------+----------------------------------------
 Reporter:  iandunn           |      Owner:
     Type:  enhancement       |     Status:  new
 Priority:  normal            |  Milestone:  Awaiting Review
Component:  Build/Test Tools  |    Version:  trunk
 Severity:  normal            |   Keywords:  needs-patch good-first-bug
  Focuses:                    |
------------------------------+----------------------------------------
 Currently, PHPUnit tests have to be ran manually when working on a patch.
 To me, this feels tedious and means that I usually only run them when I
 reach a "milestone" in the process.

 Automatically the executing of tests when files are saved would encourage
 test-driven development, make problems in the changes obvious immediately,
 and generally make the developer experience smoother.

 There are a lot of solutions for devs to setup that automation
 independently (`inotifywait`, `watchman`, PhpStorm file watchers, etc) but
 they all require manual setup, and vary in quality.

 We already have `grunt watch` available in our environment, so we can use
 it to provide a simple command like `grunt watch:phpunit`, making it easy
 to run the tests automatically.

 By default, it could watch all PHP files and execute all tests in the
 `phpunit:default` task, but I think it'd be necessary to have options for
 specifying the watch target, test groups, and PHPUnit config (AJAX,
 Multisite, etc).

 [attachment:42282.diff] is a very rough proof of concept that runs the
 `community-events` test group when changes are made inside `wp-
 admin/includes`.

--
Ticket URL: <https://core.trac.wordpress.org/ticket/42282>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list