series() public static méthode

public static series ( ) : string
Résultat string
Exemple #1
0
 private static function doGenerateMock($args, $isAbstract = false)
 {
     $testCase = self::extractTestCaseFromArgs($args);
     $methodName = $isAbstract ? 'getMockForAbstractClass' : 'getMock';
     $generatorClass = new \PHPUnit_Framework_MockObject_Generator();
     // using PHPUnit 5.4 mocks registration
     if (version_compare(\PHPUnit_Runner_Version::series(), '5.4', '>=') && $testCase instanceof \PHPUnit_Framework_TestCase) {
         $mock = call_user_func_array([$generatorClass, $methodName], $args);
         $testCase->registerMockObject($mock);
         return $mock;
     }
     if ($testCase instanceof \PHPUnit_Framework_TestCase) {
         $generatorClass = $testCase;
     }
     return call_user_func_array([$generatorClass, $methodName], $args);
 }
Exemple #2
0
 /**
  * @since Method available since Release 4.0.0
  */
 protected function handleSelfUpdate($upgrade = false)
 {
     $this->printVersionString();
     $localFilename = realpath($_SERVER['argv'][0]);
     if (!is_writable($localFilename)) {
         print 'No write permission to update ' . $localFilename . "\n";
         exit(PHPUnit_TextUI_TestRunner::EXCEPTION_EXIT);
     }
     if (!extension_loaded('openssl')) {
         print "The OpenSSL extension is not loaded.\n";
         exit(PHPUnit_TextUI_TestRunner::EXCEPTION_EXIT);
     }
     if (!$upgrade) {
         $remoteFilename = sprintf('https://phar.phpunit.de/phpunit-%s.phar', file_get_contents(sprintf('https://phar.phpunit.de/latest-version-of/phpunit-%s', PHPUnit_Runner_Version::series())));
     } else {
         $remoteFilename = sprintf('https://phar.phpunit.de/phpunit%s.phar', PHPUnit_Runner_Version::getReleaseChannel());
     }
     $tempFilename = tempnam(sys_get_temp_dir(), 'phpunit') . '.phar';
     // Workaround for https://bugs.php.net/bug.php?id=65538
     $caFile = dirname($tempFilename) . '/ca.pem';
     copy(__PHPUNIT_PHAR_ROOT__ . '/ca.pem', $caFile);
     print 'Updating the PHPUnit PHAR ... ';
     $options = ['ssl' => ['allow_self_signed' => false, 'cafile' => $caFile, 'verify_peer' => true]];
     file_put_contents($tempFilename, file_get_contents($remoteFilename, false, stream_context_create($options)));
     chmod($tempFilename, 0777 & ~umask());
     try {
         $phar = new Phar($tempFilename);
         unset($phar);
         rename($tempFilename, $localFilename);
         unlink($caFile);
     } catch (Throwable $_e) {
         $e = $_e;
     } catch (Exception $_e) {
         $e = $_e;
     }
     if (isset($e)) {
         unlink($caFile);
         unlink($tempFilename);
         print " done\n\n" . $e->getMessage() . "\n";
         exit(2);
     }
     print " done\n";
     exit(PHPUnit_TextUI_TestRunner::SUCCESS_EXIT);
 }
 /**
  * Handles the command-line arguments.
  *
  * A child class of PHPUnit_TextUI_Command can hook into the argument
  * parsing by adding the switch(es) to the $longOptions array and point to a
  * callback method that handles the switch(es) in the child class like this
  *
  * <code>
  * <?php
  * class MyCommand extends PHPUnit_TextUI_Command
  * {
  *     public function __construct()
  *     {
  *         // my-switch won't accept a value, it's an on/off
  *         $this->longOptions['my-switch'] = 'myHandler';
  *         // my-secondswitch will accept a value - note the equals sign
  *         $this->longOptions['my-secondswitch='] = 'myOtherHandler';
  *     }
  *
  *     // --my-switch  -> myHandler()
  *     protected function myHandler()
  *     {
  *     }
  *
  *     // --my-secondswitch foo -> myOtherHandler('foo')
  *     protected function myOtherHandler ($value)
  *     {
  *     }
  *
  *     // You will also need this - the static keyword in the
  *     // PHPUnit_TextUI_Command will mean that it'll be
  *     // PHPUnit_TextUI_Command that gets instantiated,
  *     // not MyCommand
  *     public static function main($exit = true)
  *     {
  *         $command = new static;
  *
  *         return $command->run($_SERVER['argv'], $exit);
  *     }
  *
  * }
  * </code>
  *
  * @param array $argv
  */
 protected function handleArguments(array $argv)
 {
     if (defined('__PHPUNIT_PHAR__')) {
         $this->longOptions['check-version'] = null;
     }
     try {
         $this->options = PHPUnit_Util_Getopt::getopt($argv, 'd:c:hv', array_keys($this->longOptions));
     } catch (PHPUnit_Framework_Exception $t) {
         $this->showError($t->getMessage());
     }
     foreach ($this->options[0] as $option) {
         switch ($option[0]) {
             case '--colors':
                 $this->arguments['colors'] = $option[1] ?: PHPUnit_TextUI_ResultPrinter::COLOR_AUTO;
                 break;
             case '--bootstrap':
                 $this->arguments['bootstrap'] = $option[1];
                 break;
             case '--columns':
                 if (is_numeric($option[1])) {
                     $this->arguments['columns'] = (int) $option[1];
                 } elseif ($option[1] == 'max') {
                     $this->arguments['columns'] = 'max';
                 }
                 break;
             case 'c':
             case '--configuration':
                 $this->arguments['configuration'] = $option[1];
                 break;
             case '--coverage-clover':
                 $this->arguments['coverageClover'] = $option[1];
                 break;
             case '--coverage-crap4j':
                 $this->arguments['coverageCrap4J'] = $option[1];
                 break;
             case '--coverage-html':
                 $this->arguments['coverageHtml'] = $option[1];
                 break;
             case '--coverage-php':
                 $this->arguments['coveragePHP'] = $option[1];
                 break;
             case '--coverage-text':
                 if ($option[1] === null) {
                     $option[1] = 'php://stdout';
                 }
                 $this->arguments['coverageText'] = $option[1];
                 $this->arguments['coverageTextShowUncoveredFiles'] = false;
                 $this->arguments['coverageTextShowOnlySummary'] = false;
                 break;
             case '--coverage-xml':
                 $this->arguments['coverageXml'] = $option[1];
                 break;
             case 'd':
                 $ini = explode('=', $option[1]);
                 if (isset($ini[0])) {
                     if (isset($ini[1])) {
                         ini_set($ini[0], $ini[1]);
                     } else {
                         ini_set($ini[0], true);
                     }
                 }
                 break;
             case '--debug':
                 $this->arguments['debug'] = true;
                 break;
             case 'h':
             case '--help':
                 $this->showHelp();
                 exit(PHPUnit_TextUI_TestRunner::SUCCESS_EXIT);
                 break;
             case '--filter':
                 $this->arguments['filter'] = $option[1];
                 break;
             case '--testsuite':
                 $this->arguments['testsuite'] = $option[1];
                 break;
             case '--generate-configuration':
                 $this->printVersionString();
                 printf("Generating phpunit.xml in %s\n\n", getcwd());
                 print 'Bootstrap script (relative to path shown above; default: vendor/autoload.php): ';
                 $bootstrapScript = trim(fgets(STDIN));
                 print 'Tests directory (relative to path shown above; default: tests): ';
                 $testsDirectory = trim(fgets(STDIN));
                 print 'Source directory (relative to path shown above; default: src): ';
                 $src = trim(fgets(STDIN));
                 if ($bootstrapScript == '') {
                     $bootstrapScript = 'vendor/autoload.php';
                 }
                 if ($testsDirectory == '') {
                     $testsDirectory = 'tests';
                 }
                 if ($src == '') {
                     $src = 'src';
                 }
                 $generator = new PHPUnit_Util_ConfigurationGenerator();
                 file_put_contents('phpunit.xml', $generator->generateDefaultConfiguration(PHPUnit_Runner_Version::series(), $bootstrapScript, $testsDirectory, $src));
                 printf("\nGenerated phpunit.xml in %s\n", getcwd());
                 exit(PHPUnit_TextUI_TestRunner::SUCCESS_EXIT);
                 break;
             case '--group':
                 $this->arguments['groups'] = explode(',', $option[1]);
                 break;
             case '--exclude-group':
                 $this->arguments['excludeGroups'] = explode(',', $option[1]);
                 break;
             case '--test-suffix':
                 $this->arguments['testSuffixes'] = explode(',', $option[1]);
                 break;
             case '--include-path':
                 $includePath = $option[1];
                 break;
             case '--list-groups':
                 $this->arguments['listGroups'] = true;
                 break;
             case '--list-suites':
                 $this->arguments['listSuites'] = true;
                 break;
             case '--printer':
                 $this->arguments['printer'] = $option[1];
                 break;
             case '--loader':
                 $this->arguments['loader'] = $option[1];
                 break;
             case '--log-junit':
                 $this->arguments['junitLogfile'] = $option[1];
                 break;
             case '--log-teamcity':
                 $this->arguments['teamcityLogfile'] = $option[1];
                 break;
             case '--process-isolation':
                 $this->arguments['processIsolation'] = true;
                 break;
             case '--repeat':
                 $this->arguments['repeat'] = (int) $option[1];
                 break;
             case '--stderr':
                 $this->arguments['stderr'] = true;
                 break;
             case '--stop-on-error':
                 $this->arguments['stopOnError'] = true;
                 break;
             case '--stop-on-failure':
                 $this->arguments['stopOnFailure'] = true;
                 break;
             case '--stop-on-warning':
                 $this->arguments['stopOnWarning'] = true;
                 break;
             case '--stop-on-incomplete':
                 $this->arguments['stopOnIncomplete'] = true;
                 break;
             case '--stop-on-risky':
                 $this->arguments['stopOnRisky'] = true;
                 break;
             case '--stop-on-skipped':
                 $this->arguments['stopOnSkipped'] = true;
                 break;
             case '--fail-on-warning':
                 $this->arguments['failOnWarning'] = true;
                 break;
             case '--fail-on-risky':
                 $this->arguments['failOnRisky'] = true;
                 break;
             case '--teamcity':
                 $this->arguments['printer'] = 'PHPUnit_Util_Log_TeamCity';
                 break;
             case '--testdox':
                 $this->arguments['printer'] = 'PHPUnit_Util_TestDox_ResultPrinter_Text';
                 break;
             case '--testdox-group':
                 $this->arguments['testdoxGroups'] = explode(',', $option[1]);
                 break;
             case '--testdox-exclude-group':
                 $this->arguments['testdoxExcludeGroups'] = explode(',', $option[1]);
                 break;
             case '--testdox-html':
                 $this->arguments['testdoxHTMLFile'] = $option[1];
                 break;
             case '--testdox-text':
                 $this->arguments['testdoxTextFile'] = $option[1];
                 break;
             case '--testdox-xml':
                 $this->arguments['testdoxXMLFile'] = $option[1];
                 break;
             case '--no-configuration':
                 $this->arguments['useDefaultConfiguration'] = false;
                 break;
             case '--no-extensions':
                 $this->arguments['noExtensions'] = true;
                 break;
             case '--no-coverage':
                 $this->arguments['noCoverage'] = true;
                 break;
             case '--globals-backup':
                 $this->arguments['backupGlobals'] = true;
                 break;
             case '--static-backup':
                 $this->arguments['backupStaticAttributes'] = true;
                 break;
             case 'v':
             case '--verbose':
                 $this->arguments['verbose'] = true;
                 break;
             case '--atleast-version':
                 exit(version_compare(PHPUnit_Runner_Version::id(), $option[1], '>=') ? PHPUnit_TextUI_TestRunner::SUCCESS_EXIT : PHPUnit_TextUI_TestRunner::FAILURE_EXIT);
                 break;
             case '--version':
                 $this->printVersionString();
                 exit(PHPUnit_TextUI_TestRunner::SUCCESS_EXIT);
                 break;
             case '--dont-report-useless-tests':
                 $this->arguments['reportUselessTests'] = false;
                 break;
             case '--strict-coverage':
                 $this->arguments['strictCoverage'] = true;
                 break;
             case '--disable-coverage-ignore':
                 $this->arguments['disableCodeCoverageIgnore'] = true;
                 break;
             case '--strict-global-state':
                 $this->arguments['beStrictAboutChangesToGlobalState'] = true;
                 break;
             case '--disallow-test-output':
                 $this->arguments['disallowTestOutput'] = true;
                 break;
             case '--disallow-resource-usage':
                 $this->arguments['beStrictAboutResourceUsageDuringSmallTests'] = true;
                 break;
             case '--enforce-time-limit':
                 $this->arguments['enforceTimeLimit'] = true;
                 break;
             case '--disallow-todo-tests':
                 $this->arguments['disallowTodoAnnotatedTests'] = true;
                 break;
             case '--reverse-list':
                 $this->arguments['reverseList'] = true;
                 break;
             case '--check-version':
                 $this->handleVersionCheck();
                 break;
             case '--whitelist':
                 $this->arguments['whitelist'] = $option[1];
                 break;
             default:
                 $optionName = str_replace('--', '', $option[0]);
                 if (isset($this->longOptions[$optionName])) {
                     $handler = $this->longOptions[$optionName];
                 } elseif (isset($this->longOptions[$optionName . '='])) {
                     $handler = $this->longOptions[$optionName . '='];
                 }
                 if (isset($handler) && is_callable([$this, $handler])) {
                     $this->{$handler}($option[1]);
                 }
         }
     }
     $this->handleCustomTestSuite();
     if (!isset($this->arguments['test'])) {
         if (isset($this->options[1][0])) {
             $this->arguments['test'] = $this->options[1][0];
         }
         if (isset($this->options[1][1])) {
             $this->arguments['testFile'] = realpath($this->options[1][1]);
         } else {
             $this->arguments['testFile'] = '';
         }
         if (isset($this->arguments['test']) && is_file($this->arguments['test']) && substr($this->arguments['test'], -5, 5) != '.phpt') {
             $this->arguments['testFile'] = realpath($this->arguments['test']);
             $this->arguments['test'] = substr($this->arguments['test'], 0, strrpos($this->arguments['test'], '.'));
         }
     }
     if (!isset($this->arguments['testSuffixes'])) {
         $this->arguments['testSuffixes'] = ['Test.php', '.phpt'];
     }
     if (isset($includePath)) {
         ini_set('include_path', $includePath . PATH_SEPARATOR . ini_get('include_path'));
     }
     if ($this->arguments['loader'] !== null) {
         $this->arguments['loader'] = $this->handleLoader($this->arguments['loader']);
     }
     if (isset($this->arguments['configuration']) && is_dir($this->arguments['configuration'])) {
         $configurationFile = $this->arguments['configuration'] . '/phpunit.xml';
         if (file_exists($configurationFile)) {
             $this->arguments['configuration'] = realpath($configurationFile);
         } elseif (file_exists($configurationFile . '.dist')) {
             $this->arguments['configuration'] = realpath($configurationFile . '.dist');
         }
     } elseif (!isset($this->arguments['configuration']) && $this->arguments['useDefaultConfiguration']) {
         if (file_exists('phpunit.xml')) {
             $this->arguments['configuration'] = realpath('phpunit.xml');
         } elseif (file_exists('phpunit.xml.dist')) {
             $this->arguments['configuration'] = realpath('phpunit.xml.dist');
         }
     }
     if (isset($this->arguments['configuration'])) {
         try {
             $configuration = PHPUnit_Util_Configuration::getInstance($this->arguments['configuration']);
         } catch (Throwable $t) {
             print $t->getMessage() . "\n";
             exit(PHPUnit_TextUI_TestRunner::FAILURE_EXIT);
         }
         $phpunitConfiguration = $configuration->getPHPUnitConfiguration();
         $configuration->handlePHPConfiguration();
         /*
          * Issue #1216
          */
         if (isset($this->arguments['bootstrap'])) {
             $this->handleBootstrap($this->arguments['bootstrap']);
         } elseif (isset($phpunitConfiguration['bootstrap'])) {
             $this->handleBootstrap($phpunitConfiguration['bootstrap']);
         }
         /*
          * Issue #657
          */
         if (isset($phpunitConfiguration['stderr']) && !isset($this->arguments['stderr'])) {
             $this->arguments['stderr'] = $phpunitConfiguration['stderr'];
         }
         if (isset($phpunitConfiguration['extensionsDirectory']) && !isset($this->arguments['noExtensions']) && extension_loaded('phar')) {
             $this->handleExtensions($phpunitConfiguration['extensionsDirectory']);
         }
         if (isset($phpunitConfiguration['columns']) && !isset($this->arguments['columns'])) {
             $this->arguments['columns'] = $phpunitConfiguration['columns'];
         }
         if (!isset($this->arguments['printer']) && isset($phpunitConfiguration['printerClass'])) {
             if (isset($phpunitConfiguration['printerFile'])) {
                 $file = $phpunitConfiguration['printerFile'];
             } else {
                 $file = '';
             }
             $this->arguments['printer'] = $this->handlePrinter($phpunitConfiguration['printerClass'], $file);
         }
         if (isset($phpunitConfiguration['testSuiteLoaderClass'])) {
             if (isset($phpunitConfiguration['testSuiteLoaderFile'])) {
                 $file = $phpunitConfiguration['testSuiteLoaderFile'];
             } else {
                 $file = '';
             }
             $this->arguments['loader'] = $this->handleLoader($phpunitConfiguration['testSuiteLoaderClass'], $file);
         }
         if (!isset($this->arguments['test'])) {
             $testSuite = $configuration->getTestSuiteConfiguration(isset($this->arguments['testsuite']) ? $this->arguments['testsuite'] : null);
             if ($testSuite !== null) {
                 $this->arguments['test'] = $testSuite;
             }
         }
     } elseif (isset($this->arguments['bootstrap'])) {
         $this->handleBootstrap($this->arguments['bootstrap']);
     }
     if (isset($this->arguments['printer']) && is_string($this->arguments['printer'])) {
         $this->arguments['printer'] = $this->handlePrinter($this->arguments['printer']);
     }
     if (isset($this->arguments['test']) && is_string($this->arguments['test']) && substr($this->arguments['test'], -5, 5) == '.phpt') {
         $test = new PHPUnit_Runner_PhptTestCase($this->arguments['test']);
         $this->arguments['test'] = new PHPUnit_Framework_TestSuite();
         $this->arguments['test']->addTest($test);
     }
     if (!isset($this->arguments['test']) || isset($this->arguments['testDatabaseLogRevision']) && !isset($this->arguments['testDatabaseDSN'])) {
         $this->showHelp();
         exit(PHPUnit_TextUI_TestRunner::EXCEPTION_EXIT);
     }
 }