diff --git a/spec/Listener/CodeCoverageListenerSpec.php b/spec/Listener/CodeCoverageListenerSpec.php index 8c53a86..6808c1f 100644 --- a/spec/Listener/CodeCoverageListenerSpec.php +++ b/spec/Listener/CodeCoverageListenerSpec.php @@ -35,7 +35,7 @@ public function let(ConsoleIO $io, Driver $driver) public function it_can_process_all_directory_filtering_options(SuiteEvent $event) { $this->setOptions([ - 'blacklist' => [ + 'whitelist' => [ 'src', ['directory' => 'src', 'suffix' => 'Spec.php', 'prefix' => 'Get'], ['directory' => 'src', 'suffix' => 'Test.php'], diff --git a/src/Listener/CodeCoverageListener.php b/src/Listener/CodeCoverageListener.php index 5cf40dc..7f91f0a 100644 --- a/src/Listener/CodeCoverageListener.php +++ b/src/Listener/CodeCoverageListener.php @@ -69,7 +69,7 @@ public function __construct(ConsoleIO $io, CodeCoverage $coverage, array $report $this->reports = $reports; $this->options = [ 'whitelist' => ['src', 'lib'], - 'blacklist' => ['test', 'vendor', 'spec'], + 'blacklist' => [], 'whitelist_files' => [], 'blacklist_files' => [], 'output' => ['html' => 'coverage'], @@ -159,16 +159,31 @@ public function beforeSuite(SuiteEvent $event): void } } + $filter->includeFiles($this->options['whitelist_files']); + + if ((!empty($this->options['blacklist_files']) || !empty($this->options['blacklist'])) + && (!method_exists($filter, 'excludeFile') || !method_exists($filter, 'excludeDirectory')) + ) { + throw new \RuntimeException(<<options['blacklist'] as $option) { $settings = $this->filterDirectoryParams($option); - foreach ((new FileIteratorFacade)->getFilesAsArray($directory, $suffix, $prefix) as $file) { + foreach ((new FileIteratorFacade())->getFilesAsArray($directory, $suffix, $prefix) as $file) { $filter->excludeFile($file); } $filter->excludeDirectory($settings['directory'], $settings['suffix'], $settings['prefix']); } - $filter->includeFiles($this->options['whitelist_files']); - foreach ($this->options['blacklist_files'] as $option) { $filter->excludeFile($option); }