diff --git a/composer.json b/composer.json index 746c2c29..06684f07 100644 --- a/composer.json +++ b/composer.json @@ -23,11 +23,11 @@ "nunomaduro/termwind": "^1.15.1", "pestphp/pest-plugin": "^2.0.1", "pestphp/pest-plugin-arch": "^2.1.1", - "phpunit/phpunit": "^10.0.19" + "phpunit/phpunit": "^10.1.0" }, "conflict": { "webmozart/assert": "<1.11.0", - "phpunit/phpunit": ">10.0.19" + "phpunit/phpunit": ">10.1.0" }, "autoload": { "psr-4": { diff --git a/phpunit.xml b/phpunit.xml index c626b394..4aac1aa2 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -21,9 +21,9 @@ ./tests/Fixtures/Inheritance - + ./src - + diff --git a/src/Logging/TeamCity/TeamCityLogger.php b/src/Logging/TeamCity/TeamCityLogger.php index eadfada8..3a11cd5e 100644 --- a/src/Logging/TeamCity/TeamCityLogger.php +++ b/src/Logging/TeamCity/TeamCityLogger.php @@ -34,6 +34,7 @@ use PHPUnit\Event\TestSuite\Finished as TestSuiteFinished; use PHPUnit\Event\TestSuite\Started as TestSuiteStarted; use PHPUnit\Event\UnknownSubscriberTypeException; use PHPUnit\TestRunner\TestResult\Facade as TestResultFacade; +use ReflectionClass; use Symfony\Component\Console\Output\ConsoleOutput; use Symfony\Component\Console\Output\OutputInterface; @@ -207,13 +208,16 @@ final class TeamCityLogger $style = new Style($this->output); $telemetry = $event->telemetryInfo(); + if ($this->withoutDuration) { + $reflector = new ReflectionClass($telemetry); + $property = $reflector->getProperty('snapshot'); + $property->setAccessible(true); + $snapshot = $property->getValue($telemetry); + assert($snapshot instanceof Snapshot); + $telemetry = new Info( - new Snapshot( - $telemetry->time(), - $telemetry->memoryUsage(), - $telemetry->peakMemoryUsage(), - ), + $snapshot, Duration::fromSecondsAndNanoseconds(1, 0), $telemetry->memoryUsageSinceStart(), $telemetry->durationSincePrevious(), diff --git a/src/Plugins/Parallel/Support/CompactPrinter.php b/src/Plugins/Parallel/Support/CompactPrinter.php index 95aec81d..aff82fa4 100644 --- a/src/Plugins/Parallel/Support/CompactPrinter.php +++ b/src/Plugins/Parallel/Support/CompactPrinter.php @@ -7,6 +7,7 @@ namespace Pest\Plugins\Parallel\Support; use NunoMaduro\Collision\Adapters\Phpunit\State; use NunoMaduro\Collision\Adapters\Phpunit\Style; use ParaTest\Options; +use PHPUnit\Event\Telemetry\GarbageCollectorStatus; use PHPUnit\Event\Telemetry\HRTime; use PHPUnit\Event\Telemetry\Info; use PHPUnit\Event\Telemetry\MemoryUsage; @@ -122,11 +123,25 @@ final class CompactPrinter $snapshotDuration = HRTime::fromSecondsAndNanoseconds((int) $duration->asSeconds(), $nanoseconds); $telemetryDuration = \PHPUnit\Event\Telemetry\Duration::fromSecondsAndNanoseconds((int) $duration->asSeconds(), $nanoseconds); + $status = gc_status(); + + $garbageCollectorStatus = new GarbageCollectorStatus( + $status['runs'], + $status['collected'], + $status['threshold'], + $status['roots'], + null, + null, + null, + null, + ); + $telemetry = new Info( new Snapshot( $snapshotDuration, MemoryUsage::fromBytes(0), MemoryUsage::fromBytes(0), + $garbageCollectorStatus, ), $telemetryDuration, MemoryUsage::fromBytes(0),