From dd643faa5cf513154b9039a336ed4345587fd924 Mon Sep 17 00:00:00 2001 From: Fabio Ivona Date: Wed, 22 Sep 2021 10:17:44 +0200 Subject: [PATCH] adds a new --ci option to pest binary --- bin/pest | 7 ++++--- src/Repositories/TestRepository.php | 4 ++++ src/TestSuite.php | 10 +++++++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/bin/pest b/bin/pest index 2735abfc..d34ddad6 100755 --- a/bin/pest +++ b/bin/pest @@ -31,7 +31,8 @@ use Symfony\Component\Console\Output\OutputInterface; $rootPath = dirname($autoloadPath, 2); $argv = new ArgvInput(); - $testSuite = TestSuite::getInstance($rootPath, $argv->getParameterOption('--test-directory', 'tests')); + $workingEnv = $argv->hasParameterOption('--ci') ? 'ci' : 'local'; + $testSuite = TestSuite::getInstance($rootPath, $argv->getParameterOption('--test-directory', 'tests'), $workingEnv); $isDecorated = $argv->getParameterOption('--colors', 'always') !== 'never'; $output = new ConsoleOutput(ConsoleOutput::VERBOSITY_NORMAL, $isDecorated); @@ -45,9 +46,9 @@ use Symfony\Component\Console\Output\OutputInterface; $args = $_SERVER['argv']; // Let's remove any arguments that PHPUnit does not understand - if ($argv->hasParameterOption('--test-directory')) { + if ($argv->hasParameterOption(['--test-directory', '--ci'])) { foreach ($args as $key => $value) { - if (strpos($value, '--test-directory') !== false) { + if (strpos($value, '--test-directory') !== false || strpos($value, '--ci') !== false) { unset($args[$key]); } } diff --git a/src/Repositories/TestRepository.php b/src/Repositories/TestRepository.php index e522677a..502b9fd1 100644 --- a/src/Repositories/TestRepository.php +++ b/src/Repositories/TestRepository.php @@ -119,6 +119,10 @@ final class TestRepository */ private function testsUsingOnly(): array { + if (TestSuite::getInstance()->workingEnv === 'ci') { + return []; + } + return array_filter($this->state, function ($testFactory): bool { return $testFactory->only; }); diff --git a/src/TestSuite.php b/src/TestSuite.php index f2b5ccde..d91395d3 100644 --- a/src/TestSuite.php +++ b/src/TestSuite.php @@ -73,6 +73,13 @@ final class TestSuite */ public $testPath; + /** + * Holds the current working environment identifier. + * + * @var string + */ + public $workingEnv; + /** * Holds an instance of the test suite. * @@ -98,10 +105,11 @@ final class TestSuite /** * Returns the current instance of the test suite. */ - public static function getInstance(string $rootPath = null, string $testPath = null): TestSuite + public static function getInstance(string $rootPath = null, string $testPath = null, string $workingEnv = null): TestSuite { if (is_string($rootPath) && is_string($testPath)) { self::$instance = new TestSuite($rootPath, $testPath); + self::$instance->workingEnv = $workingEnv; foreach (Plugin::$callables as $callable) { $callable();