Build/Test Tools: Add support for PHPUnit 6+.
This adds a compatibility shim for the new namespaced structure of PHPUnit and the removed `setExpectedException()` method. In addition, this updates the Travis config so PHPUnit 6.1 is used where appropriate. Props miyauchi, gitlost. Fixes #39822 git-svn-id: https://develop.svn.wordpress.org/trunk@40536 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
208a5dd57f
commit
ce8a915c06
@ -67,7 +67,11 @@ before_script:
|
||||
# Install the specified version of PHPUnit depending on the PHP version:
|
||||
if [[ "$WP_TRAVISCI" == "travis:phpunit" ]]; then
|
||||
case "$TRAVIS_PHP_VERSION" in
|
||||
7.1|7.0|hhvm|nightly)
|
||||
7.1|7.0|nightly)
|
||||
echo "Using PHPUnit 6.1"
|
||||
composer global require "phpunit/phpunit=6.1.*"
|
||||
;;
|
||||
hhvm)
|
||||
echo "Using PHPUnit 5.7"
|
||||
composer global require "phpunit/phpunit=5.7.*"
|
||||
;;
|
||||
|
@ -3,6 +3,12 @@
|
||||
* Installs WordPress for running the tests and loads WordPress and the test libraries
|
||||
*/
|
||||
|
||||
/**
|
||||
* Compatibility with PHPUnit 6+
|
||||
*/
|
||||
if ( class_exists( 'PHPUnit\Runner\Version' ) ) {
|
||||
require_once dirname( __FILE__ ) . '/phpunit6-compat.php';
|
||||
}
|
||||
|
||||
$config_file_path = dirname( dirname( __FILE__ ) );
|
||||
if ( ! file_exists( $config_file_path . '/wp-tests-config.php' ) ) {
|
||||
|
37
tests/phpunit/includes/phpunit6-compat.php
Normal file
37
tests/phpunit/includes/phpunit6-compat.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
if ( class_exists( 'PHPUnit\Runner\Version' ) && version_compare( PHPUnit\Runner\Version::id(), '6.0', '>=' ) ) {
|
||||
|
||||
class_alias( 'PHPUnit\Framework\TestCase', 'PHPUnit_Framework_TestCase' );
|
||||
class_alias( 'PHPUnit\Framework\Exception', 'PHPUnit_Framework_Exception' );
|
||||
class_alias( 'PHPUnit\Framework\ExpectationFailedException', 'PHPUnit_Framework_ExpectationFailedException' );
|
||||
class_alias( 'PHPUnit\Framework\Error\Notice', 'PHPUnit_Framework_Error_Notice' );
|
||||
class_alias( 'PHPUnit\Framework\Test', 'PHPUnit_Framework_Test' );
|
||||
class_alias( 'PHPUnit\Framework\Warning', 'PHPUnit_Framework_Warning' );
|
||||
class_alias( 'PHPUnit\Framework\AssertionFailedError', 'PHPUnit_Framework_AssertionFailedError' );
|
||||
class_alias( 'PHPUnit\Framework\TestSuite', 'PHPUnit_Framework_TestSuite' );
|
||||
class_alias( 'PHPUnit\Framework\TestListener', 'PHPUnit_Framework_TestListener' );
|
||||
class_alias( 'PHPUnit\Util\GlobalState', 'PHPUnit_Util_GlobalState' );
|
||||
class_alias( 'PHPUnit\Util\Getopt', 'PHPUnit_Util_Getopt' );
|
||||
|
||||
class PHPUnit_Util_Test extends PHPUnit\Util\Test {
|
||||
|
||||
public static function getTickets( $className, $methodName ) {
|
||||
$annotations = self::parseTestMethodAnnotations( $className, $methodName );
|
||||
|
||||
$tickets = array();
|
||||
|
||||
if ( isset( $annotations['class']['ticket'] ) ) {
|
||||
$tickets = $annotations['class']['ticket'];
|
||||
}
|
||||
|
||||
if ( isset( $annotations['method']['ticket'] ) ) {
|
||||
$tickets = array_merge( $tickets, $annotations['method']['ticket'] );
|
||||
}
|
||||
|
||||
return array_unique( $tickets );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -415,6 +415,27 @@ class WP_UnitTestCase extends PHPUnit_Framework_TestCase {
|
||||
array_push( $this->expected_doing_it_wrong, $doing_it_wrong );
|
||||
}
|
||||
|
||||
/**
|
||||
* PHPUnit 6+ compatibility shim.
|
||||
*
|
||||
* @param mixed $exception
|
||||
* @param string $message
|
||||
* @param int|string $code
|
||||
*/
|
||||
public function setExpectedException( $exception, $message = '', $code = null ) {
|
||||
if ( is_callable( 'parent::setExpectedException' ) ) {
|
||||
parent::setExpectedException( $exception, $message, $code );
|
||||
} else {
|
||||
$this->expectException( $exception );
|
||||
if ( '' !== $message ) {
|
||||
$this->expectExceptionMessage( $message );
|
||||
}
|
||||
if ( null !== $code ) {
|
||||
$this->expectExceptionCode( $code );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function deprecated_function_run( $function ) {
|
||||
if ( ! in_array( $function, $this->caught_deprecated ) )
|
||||
$this->caught_deprecated[] = $function;
|
||||
|
Loading…
Reference in New Issue
Block a user