feat: support for deprecated, notices, and warnings

This commit is contained in:
Nuno Maduro
2023-03-02 20:37:18 +00:00
parent 3f6b2e856e
commit 1e61034e86
11 changed files with 124 additions and 38 deletions

View File

@ -12,6 +12,7 @@ use function fread;
use function fseek;
use function ftell;
use function fwrite;
use NunoMaduro\Collision\Adapters\Phpunit\State;
use ParaTest\Options;
use Pest\Plugins\Parallel\Support\CompactPrinter;
use Pest\Support\StateGenerator;
@ -27,11 +28,21 @@ use Symfony\Component\Console\Output\OutputInterface;
/** @internal */
final class ResultPrinter
{
/**
* If the test should be marked as todo.
*/
public bool $lastWasTodo = false;
/**
* The "native" printer.
*/
public readonly Printer $printer;
/**
* The state.
*/
public int $passedTests = 0;
/**
* The "compact" printer.
*/
@ -140,7 +151,7 @@ final class ResultPrinter
return;
}
$state = (new StateGenerator())->fromPhpUnitTestResult($testResult);
$state = (new StateGenerator())->fromPhpUnitTestResult($this->passedTests, $testResult);
$this->compactPrinter->errors($state);
$this->compactPrinter->recap($state, $testResult, $duration, $this->options);
@ -148,6 +159,20 @@ final class ResultPrinter
private function printFeedbackItem(string $item): void
{
if ($this->lastWasTodo) {
$this->lastWasTodo = false;
return;
}
if ($item === 'T') {
$this->lastWasTodo = true;
}
if ($item === '.') {
$this->passedTests++;
}
$this->compactPrinter->descriptionItem($item);
}

View File

@ -36,8 +36,8 @@ final class CompactPrinter
'.' => ['gray', '.'],
'S' => ['yellow', 's'],
'T' => ['cyan', 't'],
'I' => ['yellow', 'i'],
'N' => ['yellow', 'i'],
'I' => ['yellow', '!'],
'N' => ['yellow', '!'],
'D' => ['yellow', '!'],
'R' => ['yellow', '!'],
'W' => ['yellow', '!'],
@ -106,7 +106,9 @@ final class CompactPrinter
*/
public function errors(State $state): void
{
$this->style->writeErrorsSummary($state, false);
$this->output->writeln('');
$this->style->writeErrorsSummary($state);
}
/**