Make WordPress Core

Changeset 51602


Ignore:
Timestamp:
08/11/2021 02:30:29 PM (5 years ago)
Author:
SergeyBiryukov
Message:

Build/Test Tools: Hard deprecate WP_UnitTestCase_Base::checkRequirements().

The WP_UnitTestCase_Base::checkRequirements() method calls the parent::checkRequirements() method, but this method became private in PHPUnit 7.0 via commit sebastianbergmann/phpunit@932238a.

Aside from that, the TestCase::getAnnotations() method which is called next is now also removed in PHPUnit 9.5.

WP core does not use the method anymore, and the method only remains to prevent potentially breaking external integration tests relying on the method. However, in effect, the method is not functional anymore in PHPUnit 7.0+.

Follow-up to [893/tests], [894/tests], [896/tests], [918/tests], [30526], [40520], [40564], [43005], [44701], [51559-51577].

Props jrf.
See #46149.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/includes/abstract-testcase.php

    r51572 r51602  
    889889         * This is a custom extension of the PHPUnit requirements handling.
    890890         *
    891          * Contains legacy code for skipping tests that are associated with an open Trac ticket.
    892          * Core tests no longer support this behaviour.
    893          *
    894891         * @since 3.5.0
     892         * @deprecated 5.9.0 This method has not been functional since PHPUnit 7.0.
    895893         */
    896894        protected function checkRequirements() {
    897                 parent::checkRequirements();
    898 
    899                 $annotations = $this->getAnnotations();
    900 
    901                 $groups = array();
    902                 if ( ! empty( $annotations['class']['group'] ) ) {
    903                         $groups = array_merge( $groups, $annotations['class']['group'] );
    904                 }
    905                 if ( ! empty( $annotations['method']['group'] ) ) {
    906                         $groups = array_merge( $groups, $annotations['method']['group'] );
    907                 }
    908 
    909                 if ( ! empty( $groups ) ) {
    910                         if ( in_array( 'ms-required', $groups, true ) ) {
    911                                 $this->skipWithoutMultisite();
    912                         }
    913 
    914                         if ( in_array( 'ms-excluded', $groups, true ) ) {
    915                                 $this->skipWithMultisite();
    916                         }
    917                 }
    918 
    919                 // Core tests no longer check against open Trac tickets,
    920                 // but others using WP_UnitTestCase may do so.
    921                 if ( defined( 'WP_RUN_CORE_TESTS' ) && WP_RUN_CORE_TESTS ) {
    922                         return;
    923                 }
    924 
    925                 if ( WP_TESTS_FORCE_KNOWN_BUGS ) {
    926                         return;
    927                 }
    928                 $tickets = PHPUnit_Util_Test::getTickets( get_class( $this ), $this->getName( false ) );
    929                 foreach ( $tickets as $ticket ) {
    930                         if ( is_numeric( $ticket ) ) {
    931                                 $this->knownWPBug( $ticket );
    932                         } elseif ( 0 === strpos( $ticket, 'Plugin' ) ) {
    933                                 $ticket = substr( $ticket, 6 );
    934                                 if ( $ticket && is_numeric( $ticket ) ) {
    935                                         $this->knownPluginBug( $ticket );
    936                                 }
    937                         }
    938                 }
     895                return;
    939896        }
    940897
     
    959916         *
    960917         * @since 3.5.0
    961          *
    962918         * @deprecated No longer used since the Unit Test Trac was merged into the Core Trac.
    963919         *
Note: See TracChangeset for help on using the changeset viewer.