diff --git a/src/Plugins/Tia.php b/src/Plugins/Tia.php index dda0f52de..3e03f156b 100644 --- a/src/Plugins/Tia.php +++ b/src/Plugins/Tia.php @@ -1238,6 +1238,10 @@ private function enterRecordMode(array $arguments): array return $arguments; } + if (! $this->piggybackCoverage && ! in_array('--no-coverage', $arguments, true)) { + $arguments[] = '--no-coverage'; + } + if (Parallel::isEnabled()) { $this->purgeWorkerPartials(); diff --git a/tests/Features/Tia/CoveragePiggyback.php b/tests/Features/Tia/CoveragePiggyback.php index 9b7319eab..a28b2280a 100644 --- a/tests/Features/Tia/CoveragePiggyback.php +++ b/tests/Features/Tia/CoveragePiggyback.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use Pest\Support\Coverage; use Tests\Fixtures\Tia\Project; afterEach(function (): void { @@ -39,6 +40,44 @@ ->and($graph['files'])->toContain('app/Calculator.php'); })->skipOnWindows(); +test('xml-configured coverage does not prevent tia recording', function (): void { + $project = Project::make('master'); + + $project->write('phpunit.xml', <<<'XML_WRAP' + + + + + ./tests + + + + + + + + + + ./app + + + + XML_WRAP); + + $result = $project->pest('--tia'); + + expect($result->exitCode)->toBe(0, $result->describe()) + ->and($project->graphExists())->toBeTrue() + ->and(array_keys($project->graph()['edges']))->toEqualCanonicalizing(array_keys(Project::EDGES)); +})->skipOnWindows()->skip(! Coverage::isAvailable(), 'Coverage is not available'); + test('a coverage report leaves the edges of an existing graph alone', function (): void { $project = Project::make('master'); $project->seed('master');