[wp-trac] [WordPress Trac] #59150: Tests: update for PHPUnit Polyfills 1.1.0

WordPress Trac noreply at wordpress.org
Mon Aug 21 15:53:19 UTC 2023


#59150: Tests: update for PHPUnit Polyfills 1.1.0
--------------------------------------+-----------------------------
 Reporter:  jrf                       |       Owner:  SergeyBiryukov
     Type:  defect (bug)              |      Status:  closed
 Priority:  normal                    |   Milestone:  6.4
Component:  Build/Test Tools          |     Version:  trunk
 Severity:  normal                    |  Resolution:  fixed
 Keywords:  has-patch has-unit-tests  |     Focuses:
--------------------------------------+-----------------------------
Changes (by SergeyBiryukov):

 * status:  accepted => closed
 * resolution:   => fixed


Comment:

 In [changeset:"56421" 56421]:
 {{{
 #!CommitTicketReference repository="" revision="56421"
 Build/Test Tools: Update PHPUnit Polyfills to version 1.1.0.

 [https://github.com/sebastianbergmann/phpunit/blob/9.6/ChangeLog-9.6.md#961
 ---2023-02-03 PHPUnit 9.6.1] deprecated the `assertObjectHasAttribute()`
 and `assertObjectNotHasAttribute()` methods, leading to deprecation
 notices in a number of tests.

 [https://github.com/sebastianbergmann/phpunit/blob/10.1.3/ChangeLog-10.1.md#1010
 ---2023-04-14 PHPUnit 10.1.0] brought the methods back by popular request,
 though renamed as `assertObjectHasProperty()` and
 `assertObjectNotHasProperty()`, to prevent confusion with PHP 8.0
 attributes.

 This meant that users which cannot (yet) upgrade to PHPUnit 10.1+ would
 always have deprecation notices for these methods without recourse. So,
 after much discussion, the new methods have been backported to
 [https://github.com/sebastianbergmann/phpunit/blob/9.6/ChangeLog-9.6.md#9611
 ---2023-08-19 PHPUnit 9.6.11], leaving just the 10.0.x series with a
 deprecation notice and no recourse.

 What does this mean for WordPress?

 WordPress uses the [https://github.com/Yoast/PHPUnit-Polyfills PHPUnit
 Polyfills] to be able to write tests for the most recent versions of
 PHPUnit, with the Polyfills taking care of polyfilling any new PHPUnit
 methods on older PHPUnit versions.

 * The PHPUnit Polyfills 1.x series supports PHPUnit 4.x to 9.x.
 * The PHPUnit Polyfills 2.x series supports PHPUnit 5.x to 10.x.

 WordPress currently runs against PHPUnit 6.x to 9.x with PHPUnit Polyfills
 1.x, while the new methods were previously only included in PHPUnit
 Polyfills 2.0.0+, as they were introduced in PHPUnit 10.x.

 Since the `assertObjectHasProperty()` and `assertObjectNotHasProperty()`
 methods have been backported to PHPUnit 9.x, the PHPUnit Polyfills will
 now include these methods in the 1.x series as well.

 By upgrading to the latest [https://github.com/Yoast/PHPUnit-
 Polyfills/releases/tag/1.1.0 PHPUnit Polyfills 1.1.0] release, we can get
 rid of the deprecation notices related to the use of the
 `assertObjectHasAttribute()` and `assertObjectNotHasAttribute()` methods.

 This could have implications for plugins or themes running integration
 tests with WordPress if they have set their PHPUnit Polyfills dependency
 to a fixed version or have a too strict version constraint (limiting the
 PHPUnit Polyfills to the 1.0.x series). The solution for those plugins or
 themes is to update their version constraints for the PHPUnit Polyfills to
 allow for the 1.1.x series.

 Follow-up to [51559], [51598].

 Props jrf, ayeshrajans.
 Fixes #59150.
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/59150#comment:6>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list