From a393b3aff5837ae8db6ed64a2db678cfb4648dc7 Mon Sep 17 00:00:00 2001 From: sunxyw <31698606+sunxyw@users.noreply.github.com> Date: Mon, 2 May 2022 17:02:39 +0800 Subject: [PATCH] fix phpunit printer (#112) --- bin/phpunit-swoole | 20 ++++++++----- ext/lib/Printer.php | 27 ------------------ ext/lib/Version.php | 68 --------------------------------------------- 3 files changed, 13 insertions(+), 102 deletions(-) delete mode 100644 ext/lib/Printer.php delete mode 100644 ext/lib/Version.php diff --git a/bin/phpunit-swoole b/bin/phpunit-swoole index 36fa3e08..1bc0ee32 100755 --- a/bin/phpunit-swoole +++ b/bin/phpunit-swoole @@ -5,6 +5,8 @@ // 如果改成 true,则会在终端显示所有炸毛框架的 Log const ZM_TEST_LOG_DEBUG = false; +use PHPUnit\Runner\Version; +use PHPUnit\TextUI\TestRunner; use Swoole\Coroutine; use ZM\Annotation\Swoole\OnStart; use ZM\Command\RunServerCommand; @@ -17,9 +19,6 @@ use ZM\Utils\ZMUtil; $root = dirname(__DIR__); -// 用于删除无用信息 -require $root . '/ext/lib/Version.php'; - Coroutine::set([ 'log_level' => SWOOLE_LOG_INFO, 'trace_flags' => 0, @@ -53,8 +52,6 @@ if (!ini_get('date.timezone')) { } require $root . '/vendor/autoload.php'; -// 用于删除 PHPUnit 自带的无用信息 -require $root . '/ext/lib/Printer.php'; const ZM_VERSION_ID = ConsoleApplication::VERSION_ID; const ZM_VERSION = ConsoleApplication::VERSION; @@ -80,8 +77,17 @@ $options['worker-num'] = 1; $options['private-mode'] = true; $options['log-error'] = true; -$_SERVER['argv'][] = '--printer'; -$_SERVER['argv'][] = 'SEPrinter'; +spl_autoload_register(static function ($class) { + $map = [ + TestRunner::class => 'vendor/phpunit/phpunit/src/TextUI/TestRunner.php', + Version::class => 'vendor/phpunit/phpunit/src/Runner/Version.php', + ]; + if (isset($map[$class])) { + $source = file_get_contents(SOURCE_ROOT_DIR . '/' . $map[$class]); + $source = str_replace(['#StandWith', 'Ukraine', 'declare(strict_types=1);'], '', $source); + eval('?>' . $source); + } +}, true, true); Console::setLevel(0); $framework = new Framework($options); diff --git a/ext/lib/Printer.php b/ext/lib/Printer.php deleted file mode 100644 index 15705aa4..00000000 --- a/ext/lib/Printer.php +++ /dev/null @@ -1,27 +0,0 @@ - 0) { - eval(<< - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PHPUnit\Runner; - -use function array_slice; -use function explode; -use function implode; -use function strpos; - -/** - * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit - */ -final class Version -{ - /** - * @var string - */ - private static $pharVersion = ''; - - /** - * @var string - */ - private static $version = ''; - - /** - * Returns the current version of PHPUnit. - */ - public static function id(): string - { - if (self::$pharVersion !== '') { - return self::$pharVersion; - } - - if (self::$version === '') { - $file = __DIR__ . '/../../vendor/phpunit/phpunit/src/Runner/Version.php'; - preg_match('/\d+.\d+.\d+/', file_get_contents($file), $match); - self::$version = $match[0]; - } - - return self::$version; - } - - public static function series(): string - { - if (strpos(self::id(), '-')) { - $version = explode('-', self::id())[0]; - } else { - $version = self::id(); - } - - return implode('.', array_slice(explode('.', $version), 0, 2)); - } - - public static function getVersionString(): string - { - return 'PHPUnit ' . self::id(); - } -}