feat(parallel): Adds support for plugins to filter parallel arguments

This commit is contained in:
Luke Downing
2023-03-22 10:58:48 +00:00
parent 8b428357b2
commit 4c769fac66
3 changed files with 2 additions and 24 deletions

View File

@ -2,7 +2,7 @@ ARG PHP=8.1
FROM php:${PHP}-cli-alpine FROM php:${PHP}-cli-alpine
RUN apk update \ RUN apk update \
&& apk add zip libzip-dev icu-dev && apk add zip libzip-dev icu-dev git
RUN docker-php-ext-configure zip RUN docker-php-ext-configure zip
RUN docker-php-ext-install zip RUN docker-php-ext-install zip

View File

@ -10,7 +10,7 @@ namespace Pest\Contracts\Plugins;
interface HandlesArguments interface HandlesArguments
{ {
/** /**
* Adds arguments before of the Test Suite execution. * Adds arguments before the Test Suite execution.
* *
* @param array<int, string> $arguments * @param array<int, string> $arguments
* @return array<int, string> * @return array<int, string>

View File

@ -15,9 +15,7 @@ use Pest\Support\Container;
use Pest\TestSuite; use Pest\TestSuite;
use function Pest\version; use function Pest\version;
use Symfony\Component\Console\Application; use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Console\Output\OutputInterface;
final class Parallel implements HandlesArguments final class Parallel implements HandlesArguments
{ {
@ -86,12 +84,6 @@ final class Parallel implements HandlesArguments
*/ */
private function runTestSuiteInParallel(array $arguments): int private function runTestSuiteInParallel(array $arguments): int
{ {
if (! class_exists(ParaTestCommand::class)) {
$this->askUserToInstallParatest();
return Command::FAILURE;
}
$handlers = array_filter( $handlers = array_filter(
array_map(fn ($handler): object|string => Container::getInstance()->get($handler), self::HANDLERS), array_map(fn ($handler): object|string => Container::getInstance()->get($handler), self::HANDLERS),
fn ($handler): bool => $handler instanceof HandlesArguments, fn ($handler): bool => $handler instanceof HandlesArguments,
@ -128,20 +120,6 @@ final class Parallel implements HandlesArguments
); );
} }
/**
* Outputs a message to the user asking them to install ParaTest as a dev dependency.
*/
private function askUserToInstallParatest(): void
{
/** @var OutputInterface $output */
$output = Container::getInstance()->get(OutputInterface::class);
$output->writeln([
'<fg=red>Pest Parallel requires ParaTest to run.</>',
'Please run <fg=yellow>composer require --dev brianium/paratest</>.',
]);
}
/** /**
* Builds an instance of the Paratest command. * Builds an instance of the Paratest command.
*/ */