From 38f1b794fbbe7423594ecdf013b14d915c7307ac Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 6 Nov 2025 15:49:17 +0100 Subject: [PATCH 1/3] skip unsued mask --- src/DependencyInjection/ContainerFactory.php | 8 ++++- .../UnusedDefinitionsAnalyzerTest.php | 34 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 tests/Analyzer/UnusedDefinitionsAnalyzer/UnusedDefinitionsAnalyzerTest.php diff --git a/src/DependencyInjection/ContainerFactory.php b/src/DependencyInjection/ContainerFactory.php index 12f6a31ec..4659cfcd2 100644 --- a/src/DependencyInjection/ContainerFactory.php +++ b/src/DependencyInjection/ContainerFactory.php @@ -50,9 +50,15 @@ public function create(): Container return $phpParserFactory->createForHostVersion(); }); + // silence in PHPUnit tests to keep output clear + $consoleOutput = new ConsoleOutput(); + $consoleOutput->setVerbosity( + defined('PHPUNIT_COMPOSER_INSTALL') ? ConsoleOutput::VERBOSITY_QUIET : ConsoleOutput::VERBOSITY_NORMAL + ); + $container->singleton( SymfonyStyle::class, - static fn (): SymfonyStyle => new SymfonyStyle(new ArrayInput([]), new ConsoleOutput()) + static fn (): SymfonyStyle => new SymfonyStyle(new ArrayInput([]), $consoleOutput) ); return $container; diff --git a/tests/Analyzer/UnusedDefinitionsAnalyzer/UnusedDefinitionsAnalyzerTest.php b/tests/Analyzer/UnusedDefinitionsAnalyzer/UnusedDefinitionsAnalyzerTest.php new file mode 100644 index 000000000..29d3ccc46 --- /dev/null +++ b/tests/Analyzer/UnusedDefinitionsAnalyzer/UnusedDefinitionsAnalyzerTest.php @@ -0,0 +1,34 @@ +unusedDefinitionsAnalyzer = $this->make(UnusedDefinitionsAnalyzer::class); + } + + public function test(): void + { + $featureFiles = BehatMetafilesFinder::findFeatureFiles([__DIR__ . '/Fixture']); + $contextFiles = BehatMetafilesFinder::findContextFiles([__DIR__ . '/Fixture']); + + $unusedDefinitions = $this->unusedDefinitionsAnalyzer->analyse( + $featureFiles, + $contextFiles + ); + + $this->assertCount(0, $unusedDefinitions); + } +} From 3c39c20e97de012bc05dc532f730e0189bc9e264 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 6 Nov 2025 15:55:05 +0100 Subject: [PATCH 2/3] add mask unused --- src/Analyzer/UnusedDefinitionsAnalyzer.php | 1 - stubs/Behat/Behat/Context/Context.php | 9 ++++++ .../Fixture/Contexts/SomeContext.php | 28 +++++++++++++++++++ .../Fixture/Features/some.feature | 5 ++++ .../UnusedDefinitionsAnalyzerTest.php | 12 ++++---- 5 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 stubs/Behat/Behat/Context/Context.php create mode 100644 tests/Analyzer/UnusedDefinitionsAnalyzer/Fixture/Contexts/SomeContext.php create mode 100644 tests/Analyzer/UnusedDefinitionsAnalyzer/Fixture/Features/some.feature diff --git a/src/Analyzer/UnusedDefinitionsAnalyzer.php b/src/Analyzer/UnusedDefinitionsAnalyzer.php index f74105fc5..c37bcd6fa 100644 --- a/src/Analyzer/UnusedDefinitionsAnalyzer.php +++ b/src/Analyzer/UnusedDefinitionsAnalyzer.php @@ -43,7 +43,6 @@ public function analyse(array $contextFiles, array $featureFiles): array $this->maskCollectionStatsPrinter->printStats($maskCollection); $featureInstructions = $this->usedInstructionResolver->resolveInstructionsFromFeatureFiles($featureFiles); - $maskProgressBar = $this->symfonyStyle->createProgressBar($maskCollection->count()); $unusedMasks = []; diff --git a/stubs/Behat/Behat/Context/Context.php b/stubs/Behat/Behat/Context/Context.php new file mode 100644 index 000000000..f69dc4948 --- /dev/null +++ b/stubs/Behat/Behat/Context/Context.php @@ -0,0 +1,9 @@ +assertCount(1, $featureFiles); - $unusedDefinitions = $this->unusedDefinitionsAnalyzer->analyse( - $featureFiles, - $contextFiles - ); + $contextFiles = BehatMetafilesFinder::findContextFiles([__DIR__ . '/Fixture/Contexts']); + $this->assertCount(1, $contextFiles); + + $unusedDefinitions = $this->unusedDefinitionsAnalyzer->analyse($contextFiles, $featureFiles); $this->assertCount(0, $unusedDefinitions); } From 19f01ccca3709b461e0297fb1bfa41664a157da3 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 6 Nov 2025 16:04:11 +0100 Subject: [PATCH 3/3] link --- .github/workflows/code_analysis.yaml | 4 ---- src/Analyzer/UnusedDefinitionsAnalyzer.php | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/code_analysis.yaml b/.github/workflows/code_analysis.yaml index 03c8b7469..6d8c91304 100644 --- a/.github/workflows/code_analysis.yaml +++ b/.github/workflows/code_analysis.yaml @@ -19,10 +19,6 @@ jobs: name: 'Composer Validate' run: composer validate --ansi - - - name: 'Rector' - run: composer rector --ansi - - name: 'Coding Standard' run: composer fix-cs --ansi diff --git a/src/Analyzer/UnusedDefinitionsAnalyzer.php b/src/Analyzer/UnusedDefinitionsAnalyzer.php index c37bcd6fa..dfceea212 100644 --- a/src/Analyzer/UnusedDefinitionsAnalyzer.php +++ b/src/Analyzer/UnusedDefinitionsAnalyzer.php @@ -16,6 +16,9 @@ use Symfony\Component\Console\Style\SymfonyStyle; use Symfony\Component\Finder\SplFileInfo; +/** + * @see \Rector\Behastan\Tests\Analyzer\UnusedDefinitionsAnalyzer\UnusedDefinitionsAnalyzerTest + */ final readonly class UnusedDefinitionsAnalyzer { /**