From bb74535002d864f0342906cbffacf2944abfc15c Mon Sep 17 00:00:00 2001 From: davert Date: Tue, 12 Jan 2021 05:33:48 +0200 Subject: [PATCH 1/5] Added nunomaduro/collision for better stack traces --- composer.json | 3 ++- src/Codeception/Subscriber/Console.php | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index b75bf8953c..42ebe1d87f 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,8 @@ "symfony/yaml": ">=4.4 <6.0", "symfony/css-selector": ">=4.4 <6.0", "behat/gherkin": "^4.6.2", - "codeception/stub": "^3.7" + "codeception/stub": "^3.7", + "nunomaduro/collision": "^5.1" }, "require-dev": { "vlucas/phpdotenv": "^4.0 | ^5.0", diff --git a/src/Codeception/Subscriber/Console.php b/src/Codeception/Subscriber/Console.php index ba54264eaf..8a0f12ed39 100644 --- a/src/Codeception/Subscriber/Console.php +++ b/src/Codeception/Subscriber/Console.php @@ -18,9 +18,11 @@ use Codeception\Test\Interfaces\ScenarioDriven; use Codeception\TestInterface; use Codeception\Util\Debug; +use NunoMaduro\Collision\Writer; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Formatter\OutputFormatter; use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Whoops\Exception\Inspector; class Console implements EventSubscriberInterface { @@ -465,6 +467,20 @@ public function printExceptionTrace($e) return; } + $writer = (new Writer())->setOutput($this->output); + $inspector = new Inspector($e); + + $writer->ignoreFilesIn([ + '/vendor\/codeception\/', + '/vendor\/phpunit\/phpunit\/src/', + '/vendor\/mockery\/mockery/', + '/vendor\/laravel\/framework\/src\/Illuminate\/Testing/', + '/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Testing/', + ]); + + $writer->showTrace(false); + $writer->write($inspector); + if ($this->rawStackTrace) { $this->message(OutputFormatter::escape(\PHPUnit\Util\Filter::getFilteredStacktrace($e, true, false)))->writeln(); From 33c0683cebf5db1a5eb7acbe4362559f03002336 Mon Sep 17 00:00:00 2001 From: davert Date: Tue, 12 Jan 2021 14:24:32 +0200 Subject: [PATCH 2/5] removed title duplication --- src/Codeception/Subscriber/Console.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Codeception/Subscriber/Console.php b/src/Codeception/Subscriber/Console.php index 8a0f12ed39..ce045461a1 100644 --- a/src/Codeception/Subscriber/Console.php +++ b/src/Codeception/Subscriber/Console.php @@ -479,6 +479,7 @@ public function printExceptionTrace($e) ]); $writer->showTrace(false); + $writer->showTitle(false); $writer->write($inspector); if ($this->rawStackTrace) { From 7f1fde29034a2e7f97bb4cda1f94d0ee87cfc69d Mon Sep 17 00:00:00 2001 From: davert Date: Tue, 12 Jan 2021 05:33:48 +0200 Subject: [PATCH 3/5] Added nunomaduro/collision for better stack traces --- composer.json | 3 ++- src/Codeception/Subscriber/Console.php | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index b75bf8953c..42ebe1d87f 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,8 @@ "symfony/yaml": ">=4.4 <6.0", "symfony/css-selector": ">=4.4 <6.0", "behat/gherkin": "^4.6.2", - "codeception/stub": "^3.7" + "codeception/stub": "^3.7", + "nunomaduro/collision": "^5.1" }, "require-dev": { "vlucas/phpdotenv": "^4.0 | ^5.0", diff --git a/src/Codeception/Subscriber/Console.php b/src/Codeception/Subscriber/Console.php index 57305abad4..46ff1d86ab 100644 --- a/src/Codeception/Subscriber/Console.php +++ b/src/Codeception/Subscriber/Console.php @@ -22,6 +22,7 @@ use Codeception\Test\Interfaces\ScenarioDriven; use Codeception\TestInterface; use Codeception\Util\Debug; +use NunoMaduro\Collision\Writer; use PHPUnit\Framework\AssertionFailedError; use PHPUnit\Framework\ExceptionWrapper; use PHPUnit\Framework\ExpectationFailedException; @@ -32,6 +33,7 @@ use Symfony\Component\Console\Formatter\OutputFormatter; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Whoops\Exception\Inspector; use function array_count_values; use function array_map; use function array_merge; @@ -545,6 +547,21 @@ public function printExceptionTrace($exception): void return; } + $writer = (new Writer())->setOutput($this->output); + $inspector = new Inspector($exception); + + $writer->ignoreFilesIn([ + '/vendor\/codeception\/', + '/vendor\/phpunit\/phpunit\/src/', + '/vendor\/mockery\/mockery/', + '/vendor\/laravel\/framework\/src\/Illuminate\/Testing/', + '/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Testing/', + ]); + + $writer->showTrace(false); + $writer->showTitle(false); + $writer->write($inspector); + if ($this->rawStackTrace) { $this->message(OutputFormatter::escape(PHPUnitFilter::getFilteredStacktrace($exception, true, false)))->writeln(); From 59283cde0e23e005d1d6381b4279146e5c656f0e Mon Sep 17 00:00:00 2001 From: Gintautas Miselis Date: Wed, 10 Feb 2021 11:54:37 +0200 Subject: [PATCH 4/5] Fix mistake in pattern --- src/Codeception/Subscriber/Console.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Codeception/Subscriber/Console.php b/src/Codeception/Subscriber/Console.php index 46ff1d86ab..78c763739a 100644 --- a/src/Codeception/Subscriber/Console.php +++ b/src/Codeception/Subscriber/Console.php @@ -551,7 +551,7 @@ public function printExceptionTrace($exception): void $inspector = new Inspector($exception); $writer->ignoreFilesIn([ - '/vendor\/codeception\/', + '/vendor\/codeception/', '/vendor\/phpunit\/phpunit\/src/', '/vendor\/mockery\/mockery/', '/vendor\/laravel\/framework\/src\/Illuminate\/Testing/', From e6fbfb4b08b182f1f2d423e50aa855cb33fe0f59 Mon Sep 17 00:00:00 2001 From: Davert Date: Tue, 30 Aug 2022 01:32:58 +0300 Subject: [PATCH 5/5] revamped collision PR --- composer.json | 3 ++- src/Codeception/Subscriber/Console.php | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index f6901fd7a4..faca78eca9 100644 --- a/composer.json +++ b/composer.json @@ -34,7 +34,8 @@ "symfony/finder": ">=6.0 <7.0", "symfony/yaml": ">=6.0 <7.0", "symfony/var-dumper": ">=6.0 < 7.0", - "psy/psysh": "^0.11.2" + "psy/psysh": "^0.11.2", + "nunomaduro/collision": "^6.3" }, "require-dev": { "ext-simplexml": "*", diff --git a/src/Codeception/Subscriber/Console.php b/src/Codeception/Subscriber/Console.php index e202d85575..285c2cbba3 100644 --- a/src/Codeception/Subscriber/Console.php +++ b/src/Codeception/Subscriber/Console.php @@ -38,7 +38,9 @@ use Symfony\Component\Console\Formatter\OutputFormatterStyle; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use NunoMaduro\Collision\Writer; +use Whoops\Exception\Inspector; use function array_map; use function array_merge; use function array_reverse;