diff --git a/bin/phpunit-swoole b/bin/phpunit-swoole index 926fcf21..f25ce2c2 100755 --- a/bin/phpunit-swoole +++ b/bin/phpunit-swoole @@ -2,12 +2,25 @@ SWOOLE_LOG_INFO, 'trace_flags' => 0, ]); @@ -40,9 +53,11 @@ if (!ini_get('date.timezone')) { } require $root . '/vendor/autoload.php'; +// 用于删除 PHPUnit 自带的无用信息 +require $root . '/ext/lib/Printer.php'; -const ZM_VERSION_ID = \ZM\ConsoleApplication::VERSION_ID; -const ZM_VERSION = \ZM\ConsoleApplication::VERSION; +const ZM_VERSION_ID = ConsoleApplication::VERSION_ID; +const ZM_VERSION = ConsoleApplication::VERSION; // 模拟define const ZM_PROCESS_MASTER = 1; @@ -64,19 +79,24 @@ $options['disable-safe-exit'] = true; $options['worker-num'] = 1; $options['private-mode'] = true; $options['log-error'] = true; -\ZM\Console\Console::setLevel(0); -$framework = new \ZM\Framework($options); -$start = new \ZM\Annotation\Swoole\OnStart(); + +$_SERVER['argv'][] = '--printer'; +$_SERVER['argv'][] = 'SEPrinter'; + +Console::setLevel(0); +$framework = new Framework($options); +$start = new OnStart(); $start->method = function () { try { - \ZM\Console\Console::setLevel(4); + Console::setLevel(ZM_TEST_LOG_DEBUG); $retcode = PHPUnit\TextUI\Command::main(false); - \ZM\Console\Console::setLevel(0); + Console::setLevel(0); } finally { - \ZM\Utils\ZMUtil::stop(($retcode ?? 1) !== 0); + Console::setLevel(0); + ZMUtil::stop(($retcode ?? 1) !== 0); } }; -\ZM\Event\EventManager::addEvent(\ZM\Annotation\Swoole\OnStart::class, $start); +EventManager::addEvent(OnStart::class, $start); $framework->start(); diff --git a/ext/lib/Printer.php b/ext/lib/Printer.php new file mode 100644 index 00000000..15705aa4 --- /dev/null +++ b/ext/lib/Printer.php @@ -0,0 +1,27 @@ + 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 SebastianBergmann\Version as VersionId; +use function array_slice; +use function dirname; +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 === '') { + $cmd = "grep -Eo '\\d+.\\d+.\\d+' --color=never " . __DIR__ . '/../../vendor/phpunit/phpunit/src/Runner/Version.php'; + self::$version = trim(exec($cmd)); + } + + 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(); + } +}