fix phpunit printer (#112)

This commit is contained in:
sunxyw 2022-05-02 17:02:39 +08:00 committed by GitHub
parent 8c2036b6b4
commit a393b3aff5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 102 deletions

View File

@ -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);

View File

@ -1,27 +0,0 @@
<?php /** @noinspection ALL */
declare(strict_types=1);
if (($v = version_compare('9.0', \Composer\InstalledVersions::getVersionRanges('phpunit/phpunit'))) > 0) {
eval(<<<ERT
class SEPrinter extends \PHPUnit\TextUI\ResultPrinter
{
public function write(string \$buffer): void
{
echo str_replace(['#StandWith', 'Ukraine'], '', \$buffer);
}
}
ERT
);
} elseif ($v < 0) {
eval (<<<ERT2
class SEPrinter extends \PHPUnit\TextUI\DefaultResultPrinter implements \PHPUnit\TextUI\ResultPrinter
{
public function write(string \$buffer): void
{
echo str_replace(['#StandWith', 'Ukraine'], '', \$buffer);
}
}
ERT2
);
}

View File

@ -1,68 +0,0 @@
<?php
declare(strict_types=1);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* 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();
}
}