getVersionString() public static méthode

public static getVersionString ( ) : string
Résultat string
Exemple #1
1
 public function execute(InputInterface $input, OutputInterface $output)
 {
     $options = $input->getOptions();
     if ($input->getArgument('test')) {
         $options['steps'] = true;
     }
     $suite = $input->getArgument('suite');
     $test = $input->getArgument('test');
     $codecept = new \Codeception\Codecept((array) $options);
     $suites = $suite ? array($suite) : \Codeception\Configuration::suites();
     $output->writeln(\Codeception\Codecept::versionString() . "\nPowered by " . \PHPUnit_Runner_Version::getVersionString());
     if ($suite and $test) {
         $codecept->runSuite($suite, $test);
     }
     if (!$test) {
         foreach ($suites as $suite) {
             $codecept->runSuite($suite);
         }
     }
     $codecept->printResult();
     if (!$input->getOption('no-exit')) {
         if ($codecept->getResult()->failureCount() or $codecept->getResult()->errorCount()) {
             exit(1);
         }
     }
 }
 public function testAdapterRunsPhpunitCommandWithAlltestsFileTarget()
 {
     $adapter = new \Mutateme\Adapter\Phpunit();
     $options = array('src' => dirname(__FILE__) . '/_files/phpunit2', 'tests' => dirname(__FILE__) . '/_files/phpunit2', 'base' => dirname(__FILE__) . '/_files/phpunit2', 'options' => 'AllMyTests.php');
     ob_start();
     $adapter->execute($options, true);
     $this->assertStringStartsWith(\PHPUnit_Runner_Version::getVersionString(), ob_get_clean());
 }
 public function testAdapterRunsPhpunitCommandWithAlltestsFileTarget()
 {
     $runner = m::mock('\\Mutagenesis\\Runner\\Base');
     $runner->shouldReceive('getOptions')->andReturn(array('src' => dirname(__FILE__) . '/_files/phpunit2', 'tests' => dirname(__FILE__) . '/_files/phpunit2', 'base' => dirname(__FILE__) . '/_files/phpunit2', 'cache' => sys_get_temp_dir(), 'clioptions' => array(), 'constraint' => 'AllTests.php'));
     $runner->shouldReceive(array('getBootstrap' => null, 'getTimeout' => 1200));
     $adapter = new \Mutagenesis\Adapter\Phpunit();
     $result = $adapter->runTests($runner, true, true);
     $this->assertStringStartsWith(\PHPUnit_Runner_Version::getVersionString(), $result[1]['stdout']);
 }
Exemple #4
0
 public function execute(InputInterface $input, OutputInterface $output)
 {
     $output->writeln(\Codeception\Codecept::versionString() . "\nPowered by " . \PHPUnit_Runner_Version::getVersionString());
     $options = $input->getOptions();
     if ($options['debug']) {
         $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE);
     }
     $options['verbosity'] = $output->getVerbosity();
     if (!extension_loaded('curl')) {
         throw new \Exception("Codeception requires CURL extension installed to make tests run\n" . "If you are not sure, how to install CURL, pls refer to StackOverflow\n\n" . "Notice: PHP for Apache/Nginx and CLI can have different php.ini files.\n" . "Please make sure that your PHP you run from console has CURL enabled.");
     }
     $config = Configuration::config($options['config']);
     $suite = $input->getArgument('suite');
     $test = $input->getArgument('test');
     if (!Configuration::isEmpty() && !$test && strpos($suite, $config['paths']['tests']) === 0) {
         list($matches, $suite, $test) = $this->matchTestFromFilename($suite, $config['paths']['tests']);
     }
     if ($options['group']) {
         $output->writeln(sprintf("[Groups] <info>%s</info> ", implode(', ', $options['group'])));
     }
     if ($input->getArgument('test')) {
         $options['steps'] = true;
     }
     if ($test) {
         $filter = $this->matchFilteredTestName($test);
         $options['filter'] = $filter;
     }
     $this->codecept = new \Codeception\Codecept((array) $options);
     if ($suite and $test) {
         $this->codecept->run($suite, $test);
     }
     if (!$test) {
         $suites = $suite ? explode(',', $suite) : Configuration::suites();
         $current_dir = Configuration::projectDir();
         $executed = $this->runSuites($suites, $options['skip']);
         foreach ($config['include'] as $included_config_file) {
             Configuration::config($full_path = $current_dir . $included_config_file);
             $namespace = $this->currentNamespace();
             $output->writeln("\n<fg=white;bg=magenta>\n[{$namespace}]: tests from {$full_path}\n</fg=white;bg=magenta>");
             $suites = $suite ? explode(',', $suite) : Configuration::suites();
             $executed += $this->runSuites($suites, $options['skip']);
         }
         if (!$executed) {
             throw new \RuntimeException(sprintf("Suite '%s' could not be found", implode(', ', $suites)));
         }
     }
     $this->codecept->printResult();
     if (!$input->getOption('no-exit')) {
         if ($this->codecept->getResult()->failureCount() or $this->codecept->getResult()->errorCount()) {
             exit(1);
         }
     }
 }
Exemple #5
0
 public function execute(InputInterface $input, OutputInterface $output)
 {
     $output->writeln(\Codeception\Codecept::versionString() . "\nPowered by " . \PHPUnit_Runner_Version::getVersionString());
     $options = $input->getOptions();
     if ($options['debug']) {
         $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
     }
     $config = Configuration::config($options['config']);
     $suite = $input->getArgument('suite');
     $test = $input->getArgument('test');
     if (!Configuration::isEmpty() && !$test && strpos($suite, $config['paths']['tests']) === 0) {
         list($matches, $suite, $test) = $this->matchTestFromFilename($suite, $config['paths']['tests']);
     }
     if ($options['group']) {
         $output->writeln(sprintf("[Groups] <info>%s</info> ", implode(', ', $options['group'])));
     }
     if ($input->getArgument('test')) {
         $options['steps'] = true;
     }
     $this->codecept = new \Codeception\Codecept((array) $options);
     if ($suite and $test) {
         $this->codecept->runSuite($suite, $test);
     }
     if (!$test) {
         $suites = $suite ? explode(',', $suite) : Configuration::suites();
         $current_dir = Configuration::projectDir();
         $executed = $this->runSuites($suites, $options['skip']);
         foreach ($config['include'] as $included_config_file) {
             Configuration::config($full_path = $current_dir . $included_config_file);
             $namespace = $this->currentNamespace();
             $output->writeln("\n<fg=white;bg=magenta>\n[{$namespace}]: tests from {$full_path}\n</fg=white;bg=magenta>");
             $suites = $suite ? explode(',', $suite) : Configuration::suites();
             $executed += $this->runSuites($suites, $options['skip']);
         }
         if (!$executed) {
             throw new \RuntimeException(sprintf("Suite '%s' could not be found", implode(', ', $suites)));
         }
     }
     $this->codecept->printResult();
     if (!$input->getOption('no-exit')) {
         if ($this->codecept->getResult()->failureCount() or $this->codecept->getResult()->errorCount()) {
             exit(1);
         }
     }
 }
Exemple #6
0
 public function execute(InputInterface $input, OutputInterface $output)
 {
     $output->writeln(\Codeception\Codecept::versionString() . "\nPowered by " . \PHPUnit_Runner_Version::getVersionString());
     $options = $input->getOptions();
     if ($options['group']) {
         $output->writeln(sprintf("[Groups] <info>%s</info> ", implode(', ', $options['group'])));
     }
     if ($input->getArgument('test') && strtolower(substr($input->getArgument('test'), -4)) === '.php') {
         $options['steps'] = true;
     }
     if ($input->getOption('debug')) {
         $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
     }
     $suite = $input->getArgument('suite');
     $test = $input->getArgument('test');
     $codecept = new \Codeception\Codecept((array) $options);
     $config = \Codeception\Configuration::config();
     if (strpos($suite, $config['paths']['tests']) === 0) {
         $matches = $this->matchTestFromFilename($suite, $config['paths']['tests']);
         $suite = $matches[1];
         $test = $matches[2];
     }
     $suites = $suite ? array($suite) : \Codeception\Configuration::suites();
     if ($suite and $test) {
         $codecept->runSuite($suite, $test);
     }
     if (!$test) {
         foreach ($suites as $suite) {
             $codecept->runSuite($suite);
         }
     }
     $codecept->printResult();
     if (!$input->getOption('no-exit')) {
         if ($codecept->getResult()->failureCount() or $codecept->getResult()->errorCount()) {
             exit(1);
         }
     }
 }
Exemple #7
0
 /**
  * Executes Run
  * 
  * @param \Symfony\Component\Console\Input\InputInterface $input
  * @param \Symfony\Component\Console\Output\OutputInterface $output
  * @throws \RuntimeException
  */
 public function execute(InputInterface $input, OutputInterface $output)
 {
     $this->ensureCurlIsAvailable();
     $this->options = $input->getOptions();
     $this->output = $output;
     $config = Configuration::config($this->options['config']);
     if (!$this->options['colors']) {
         $this->options['colors'] = $config['settings']['colors'];
     }
     if (!$this->options['silent']) {
         $this->output->writeln(Codecept::versionString() . "\nPowered by " . \PHPUnit_Runner_Version::getVersionString());
     }
     if ($this->options['debug']) {
         $this->output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE);
     }
     $userOptions = array_intersect_key($this->options, array_flip($this->passedOptionKeys($input)));
     $userOptions = array_merge($userOptions, $this->booleanOptions($input, ['xml', 'html', 'json', 'tap', 'coverage', 'coverage-xml', 'coverage-html']));
     $userOptions['verbosity'] = $this->output->getVerbosity();
     if ($this->options['no-colors']) {
         $userOptions['colors'] = false;
     }
     if ($this->options['group']) {
         $userOptions['groups'] = $this->options['group'];
     }
     if ($this->options['skip-group']) {
         $userOptions['excludeGroups'] = $this->options['skip-group'];
     }
     if ($this->options['report']) {
         $userOptions['silent'] = true;
     }
     if ($this->options['coverage-xml'] or $this->options['coverage-html'] or $this->options['coverage-text']) {
         $this->options['coverage'] = true;
     }
     $suite = $input->getArgument('suite');
     $test = $input->getArgument('test');
     if (!Configuration::isEmpty() && !$test && strpos($suite, $config['paths']['tests']) === 0) {
         list($matches, $suite, $test) = $this->matchTestFromFilename($suite, $config['paths']['tests']);
     }
     if ($this->options['group']) {
         $this->output->writeln(sprintf("[Groups] <info>%s</info> ", implode(', ', $this->options['group'])));
     }
     if ($input->getArgument('test')) {
         $this->options['steps'] = true;
     }
     if ($test) {
         $filter = $this->matchFilteredTestName($test);
         $userOptions['filter'] = $filter;
     }
     $this->codecept = new Codecept($userOptions);
     if ($suite and $test) {
         $this->codecept->run($suite, $test);
     }
     if (!$test) {
         $suites = $suite ? explode(',', $suite) : Configuration::suites();
         $this->executed = $this->runSuites($suites, $this->options['skip']);
         if (!empty($config['include'])) {
             $current_dir = Configuration::projectDir();
             $suites += $config['include'];
             $this->runIncludedSuites($config['include'], $current_dir);
         }
         if ($this->executed === 0) {
             throw new \RuntimeException(sprintf("Suite '%s' could not be found", implode(', ', $suites)));
         }
     }
     $this->codecept->printResult();
     if (!$input->getOption('no-exit')) {
         if (!$this->codecept->getResult()->wasSuccessful()) {
             exit(1);
         }
     }
 }
Exemple #8
0
 /**
  * Main function of the module. Outputs all content directly instead of collecting it and doing the output later.
  *
  * @return void
  */
 public function main()
 {
     $this->doc = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
     $this->doc->backPath = $GLOBALS['BACK_PATH'];
     if ($GLOBALS['BE_USER']->user['admin']) {
         $this->doc->docType = 'xhtml_strict';
         $this->doc->bodyTagAdditions = 'id="doc3"';
         $this->addAdditionalHeaderData();
         $this->cleanOutputBuffers();
         $this->outputService->output($this->doc->startPage($this->translate('title')) . $this->doc->header(PHPUnit_Runner_Version::getVersionString()));
         $this->renderRunTests();
         $this->outputService->output($this->doc->section($this->translate('shortcuts.title'), '<p>' . $this->translate('shortcuts.text') . '</p>
                 <p>' . $this->translate('shortcuts.browser_dependency') . '</p>
                 <ul>
                 <li>' . $this->translate('shortcuts.browser_safari_ie') . '</li>
                 <li>' . $this->translate('shortcuts.browser_firefox') . '</li>
                 </ul>' . $this->doc->section('', $this->createOpenNewWindowLink())));
     } else {
         $this->outputService->output($this->doc->startPage($this->translate('title')) . $this->doc->header($this->translate('title')) . $this->translate('admin_rights_needed'));
     }
     $this->outputService->output($this->doc->endPage());
 }
Exemple #9
0
 /**
  * @param PHPUnit_Framework_Test $suite
  * @param array                  $arguments
  * @param bool                   $exit
  *
  * @return PHPUnit_Framework_TestResult
  */
 public function doRun(PHPUnit_Framework_Test $suite, array $arguments = [], $exit)
 {
     if (isset($arguments['configuration'])) {
         $GLOBALS['__PHPUNIT_CONFIGURATION_FILE'] = $arguments['configuration'];
     }
     $this->handleConfiguration($arguments);
     $this->processSuiteFilters($suite, $arguments);
     if (isset($arguments['bootstrap'])) {
         $GLOBALS['__PHPUNIT_BOOTSTRAP'] = $arguments['bootstrap'];
     }
     if ($arguments['backupGlobals'] === false) {
         $suite->setBackupGlobals(false);
     }
     if ($arguments['backupStaticAttributes'] === true) {
         $suite->setBackupStaticAttributes(true);
     }
     if ($arguments['beStrictAboutChangesToGlobalState'] === true) {
         $suite->setbeStrictAboutChangesToGlobalState(true);
     }
     if (is_integer($arguments['repeat'])) {
         $test = new PHPUnit_Extensions_RepeatedTest($suite, $arguments['repeat'], $arguments['processIsolation']);
         $suite = new PHPUnit_Framework_TestSuite();
         $suite->addTest($test);
     }
     $result = $this->createTestResult();
     if (!$arguments['convertErrorsToExceptions']) {
         $result->convertErrorsToExceptions(false);
     }
     if (!$arguments['convertNoticesToExceptions']) {
         PHPUnit_Framework_Error_Notice::$enabled = false;
     }
     if (!$arguments['convertWarningsToExceptions']) {
         PHPUnit_Framework_Error_Warning::$enabled = false;
     }
     if ($arguments['stopOnError']) {
         $result->stopOnError(true);
     }
     if ($arguments['stopOnFailure']) {
         $result->stopOnFailure(true);
     }
     if ($arguments['stopOnWarning']) {
         $result->stopOnWarning(true);
     }
     if ($arguments['stopOnIncomplete']) {
         $result->stopOnIncomplete(true);
     }
     if ($arguments['stopOnRisky']) {
         $result->stopOnRisky(true);
     }
     if ($arguments['stopOnSkipped']) {
         $result->stopOnSkipped(true);
     }
     if ($this->printer === null) {
         if (isset($arguments['printer']) && $arguments['printer'] instanceof PHPUnit_Util_Printer) {
             $this->printer = $arguments['printer'];
         } else {
             $printerClass = 'PHPUnit_TextUI_ResultPrinter';
             if (isset($arguments['printer']) && is_string($arguments['printer']) && class_exists($arguments['printer'], false)) {
                 $class = new ReflectionClass($arguments['printer']);
                 if ($class->isSubclassOf('PHPUnit_TextUI_ResultPrinter')) {
                     $printerClass = $arguments['printer'];
                 }
             }
             $this->printer = new $printerClass(isset($arguments['stderr']) ? 'php://stderr' : null, $arguments['verbose'], $arguments['colors'], $arguments['debug'], $arguments['columns'], $arguments['reverseList']);
         }
     }
     if (!$this->printer instanceof PHPUnit_Util_Log_TAP) {
         $this->printer->write(PHPUnit_Runner_Version::getVersionString() . "\n");
         self::$versionStringPrinted = true;
         if ($arguments['verbose']) {
             $runtime = $this->runtime->getNameWithVersion();
             if ($this->runtime->hasXdebug()) {
                 $runtime .= sprintf(' with Xdebug %s', phpversion('xdebug'));
             }
             $this->writeMessage('Runtime', $runtime);
             if (isset($arguments['configuration'])) {
                 $this->writeMessage('Configuration', $arguments['configuration']->getFilename());
             }
         }
         if (isset($arguments['deprecatedCheckForUnintentionallyCoveredCodeSettingUsed'])) {
             print "Warning:       Deprecated configuration setting \"checkForUnintentionallyCoveredCode\" used\n";
         }
     }
     foreach ($arguments['listeners'] as $listener) {
         $result->addListener($listener);
     }
     $result->addListener($this->printer);
     if (isset($arguments['testdoxHTMLFile'])) {
         $result->addListener(new PHPUnit_Util_TestDox_ResultPrinter_HTML($arguments['testdoxHTMLFile']));
     }
     if (isset($arguments['testdoxTextFile'])) {
         $result->addListener(new PHPUnit_Util_TestDox_ResultPrinter_Text($arguments['testdoxTextFile']));
     }
     $codeCoverageReports = 0;
     if (isset($arguments['coverageClover'])) {
         $codeCoverageReports++;
     }
     if (isset($arguments['coverageCrap4J'])) {
         $codeCoverageReports++;
     }
     if (isset($arguments['coverageHtml'])) {
         $codeCoverageReports++;
     }
     if (isset($arguments['coveragePHP'])) {
         $codeCoverageReports++;
     }
     if (isset($arguments['coverageText'])) {
         $codeCoverageReports++;
     }
     if (isset($arguments['coverageXml'])) {
         $codeCoverageReports++;
     }
     if (isset($arguments['noCoverage'])) {
         $codeCoverageReports = 0;
     }
     if ($codeCoverageReports > 0) {
         if (!$this->runtime->canCollectCodeCoverage()) {
             $this->writeMessage('Error', 'No code coverage driver is available');
             $codeCoverageReports = 0;
         } elseif (!isset($arguments['whitelist']) && !$this->codeCoverageFilter->hasWhitelist()) {
             $this->writeMessage('Error', 'No whitelist configured, no code coverage will be generated');
             $codeCoverageReports = 0;
         }
     }
     if (!$this->printer instanceof PHPUnit_Util_Log_TAP) {
         $this->printer->write("\n");
     }
     if ($codeCoverageReports > 0) {
         $codeCoverage = new PHP_CodeCoverage(null, $this->codeCoverageFilter);
         $codeCoverage->setAddUncoveredFilesFromWhitelist($arguments['addUncoveredFilesFromWhitelist']);
         $codeCoverage->setCheckForUnintentionallyCoveredCode($arguments['strictCoverage']);
         $codeCoverage->setCheckForUnexecutedCoveredCode($arguments['strictCoverage']);
         $codeCoverage->setProcessUncoveredFilesFromWhitelist($arguments['processUncoveredFilesFromWhitelist']);
         if (isset($arguments['forceCoversAnnotation'])) {
             $codeCoverage->setForceCoversAnnotation($arguments['forceCoversAnnotation']);
         }
         if (isset($arguments['disableCodeCoverageIgnore'])) {
             $codeCoverage->setDisableIgnoredLines(true);
         }
         if (isset($arguments['whitelist'])) {
             $this->codeCoverageFilter->addDirectoryToWhitelist($arguments['whitelist']);
         }
         $result->setCodeCoverage($codeCoverage);
     }
     if ($codeCoverageReports > 1) {
         if (isset($arguments['cacheTokens'])) {
             $codeCoverage->setCacheTokens($arguments['cacheTokens']);
         }
     }
     if (isset($arguments['jsonLogfile'])) {
         $result->addListener(new PHPUnit_Util_Log_JSON($arguments['jsonLogfile']));
     }
     if (isset($arguments['tapLogfile'])) {
         $result->addListener(new PHPUnit_Util_Log_TAP($arguments['tapLogfile']));
     }
     if (isset($arguments['teamcityLogfile'])) {
         $result->addListener(new PHPUnit_Util_Log_TeamCity($arguments['teamcityLogfile']));
     }
     if (isset($arguments['junitLogfile'])) {
         $result->addListener(new PHPUnit_Util_Log_JUnit($arguments['junitLogfile'], $arguments['logIncompleteSkipped']));
     }
     $result->beStrictAboutTestsThatDoNotTestAnything($arguments['reportUselessTests']);
     $result->beStrictAboutOutputDuringTests($arguments['disallowTestOutput']);
     $result->beStrictAboutTodoAnnotatedTests($arguments['disallowTodoAnnotatedTests']);
     $result->beStrictAboutResourceUsageDuringSmallTests($arguments['beStrictAboutResourceUsageDuringSmallTests']);
     $result->enforceTimeLimit($arguments['enforceTimeLimit']);
     $result->setTimeoutForSmallTests($arguments['timeoutForSmallTests']);
     $result->setTimeoutForMediumTests($arguments['timeoutForMediumTests']);
     $result->setTimeoutForLargeTests($arguments['timeoutForLargeTests']);
     if ($suite instanceof PHPUnit_Framework_TestSuite) {
         $suite->setRunTestInSeparateProcess($arguments['processIsolation']);
     }
     $suite->run($result);
     unset($suite);
     $result->flushListeners();
     if ($this->printer instanceof PHPUnit_TextUI_ResultPrinter) {
         $this->printer->printResult($result);
     }
     if (isset($codeCoverage)) {
         if (isset($arguments['coverageClover'])) {
             $this->printer->write("\nGenerating code coverage report in Clover XML format ...");
             try {
                 $writer = new PHP_CodeCoverage_Report_Clover();
                 $writer->process($codeCoverage, $arguments['coverageClover']);
                 $this->printer->write(" done\n");
                 unset($writer);
             } catch (PHP_CodeCoverage_Exception $e) {
                 $this->printer->write(" failed\n" . $e->getMessage() . "\n");
             }
         }
         if (isset($arguments['coverageCrap4J'])) {
             $this->printer->write("\nGenerating Crap4J report XML file ...");
             try {
                 $writer = new PHP_CodeCoverage_Report_Crap4j($arguments['crap4jThreshold']);
                 $writer->process($codeCoverage, $arguments['coverageCrap4J']);
                 $this->printer->write(" done\n");
                 unset($writer);
             } catch (PHP_CodeCoverage_Exception $e) {
                 $this->printer->write(" failed\n" . $e->getMessage() . "\n");
             }
         }
         if (isset($arguments['coverageHtml'])) {
             $this->printer->write("\nGenerating code coverage report in HTML format ...");
             try {
                 $writer = new PHP_CodeCoverage_Report_HTML($arguments['reportLowUpperBound'], $arguments['reportHighLowerBound'], sprintf(' and <a href="https://phpunit.de/">PHPUnit %s</a>', PHPUnit_Runner_Version::id()));
                 $writer->process($codeCoverage, $arguments['coverageHtml']);
                 $this->printer->write(" done\n");
                 unset($writer);
             } catch (PHP_CodeCoverage_Exception $e) {
                 $this->printer->write(" failed\n" . $e->getMessage() . "\n");
             }
         }
         if (isset($arguments['coveragePHP'])) {
             $this->printer->write("\nGenerating code coverage report in PHP format ...");
             try {
                 $writer = new PHP_CodeCoverage_Report_PHP();
                 $writer->process($codeCoverage, $arguments['coveragePHP']);
                 $this->printer->write(" done\n");
                 unset($writer);
             } catch (PHP_CodeCoverage_Exception $e) {
                 $this->printer->write(" failed\n" . $e->getMessage() . "\n");
             }
         }
         if (isset($arguments['coverageText'])) {
             if ($arguments['coverageText'] == 'php://stdout') {
                 $outputStream = $this->printer;
                 $colors = $arguments['colors'] && $arguments['colors'] != PHPUnit_TextUI_ResultPrinter::COLOR_NEVER;
             } else {
                 $outputStream = new PHPUnit_Util_Printer($arguments['coverageText']);
                 $colors = false;
             }
             $processor = new PHP_CodeCoverage_Report_Text($arguments['reportLowUpperBound'], $arguments['reportHighLowerBound'], $arguments['coverageTextShowUncoveredFiles'], $arguments['coverageTextShowOnlySummary']);
             $outputStream->write($processor->process($codeCoverage, $colors));
         }
         if (isset($arguments['coverageXml'])) {
             $this->printer->write("\nGenerating code coverage report in PHPUnit XML format ...");
             try {
                 $writer = new PHP_CodeCoverage_Report_XML();
                 $writer->process($codeCoverage, $arguments['coverageXml']);
                 $this->printer->write(" done\n");
                 unset($writer);
             } catch (PHP_CodeCoverage_Exception $e) {
                 $this->printer->write(" failed\n" . $e->getMessage() . "\n");
             }
         }
     }
     if ($exit) {
         if ($result->wasSuccessful()) {
             if ($arguments['failOnRisky'] && !$result->allHarmless()) {
                 exit(self::FAILURE_EXIT);
             }
             if ($arguments['failOnWarning'] && $result->warningCount() > 0) {
                 exit(self::FAILURE_EXIT);
             }
             exit(self::SUCCESS_EXIT);
         }
         if ($result->errorCount() > 0) {
             exit(self::EXCEPTION_EXIT);
         }
         if ($result->failureCount() > 0) {
             exit(self::FAILURE_EXIT);
         }
     }
     return $result;
 }
 /**
  * isPhpunitVersionGreaterOrEquals
  * 
  * @param String $version for example '3.6.0'
  */
 public function isPhpunitVersionGreaterOrEquals($version)
 {
     $phpUnitVersion = explode(' ', PHPUnit_Runner_Version::getVersionString());
     return version_compare($phpUnitVersion[1], $version) >= 0;
 }
Exemple #11
0
    /**
     * Main function of the module. Outputs all content directly instead of collecting it and doing the output later.
     *
     * @return void
     */
    public function main()
    {
        if ($GLOBALS['BE_USER']->user['admin']) {
            $this->doc = t3lib_div::makeInstance('bigDoc');
            $this->doc->backPath = $GLOBALS['BACK_PATH'];
            $this->doc->docType = 'xhtml_strict';
            $this->doc->bodyTagAdditions = 'id="doc3"';
            $this->addAdditionalHeaderData();
            $this->cleanOutputBuffers();
            $this->outputService->output($this->doc->startPage($this->translate('title')) . $this->doc->header(PHPUnit_Runner_Version::getVersionString()));
            $this->renderRunTests();
            $this->outputService->output($this->doc->section('Keyboard shortcuts', '<p>Use "a" for running all tests, use "s" for running a single test and
					use "r" to re-run the latest tests; to open phpunit in a new window, use "n".</p>
					<p>Depending on your browser and system you will need to press some
					modifier keys:</p>
					<ul>
					<li>Safari, IE and Firefox 1.x: Use "Alt" button on Windows, "Ctrl" on Macs.</li>
					<li>Firefox 2.x and 3.x: Use "Alt-Shift" on Windows, "Ctrl-Shift" on Macs</li>
					</ul>' . $this->doc->section('', $this->createOpenNewWindowLink())));
        } else {
            $this->doc = t3lib_div::makeInstance('bigDoc');
            $this->doc->backPath = $GLOBALS['BACK_PATH'];
            $this->outputService->output($this->doc->startPage($this->translate('title')) . $this->doc->header($this->translate('title')) . $this->translate('admin_rights_needed'));
        }
        $this->outputService->output($this->doc->endPage());
    }
 * Set parameters  for logging (call via browser)
 * 
 * @todo put that in config.inc as well or remove that?
 */
define('CONFIGURATION', PATH_TO_TEST_DIR . "/conf.xml");
/*
 * Set up basic tine 2.0 environment
 */
require_once 'bootstrap.php';
// add test paths to autoloader
$autoloader = (require 'vendor/autoload.php');
$autoloader->set('', $path);
/*
 * Set white / black lists
 */
$phpUnitVersion = explode(' ', PHPUnit_Runner_Version::getVersionString());
if (version_compare($phpUnitVersion[1], "3.6.0") >= 0) {
    $filter = new PHP_CodeCoverage_Filter();
    $filter->addDirectoryToBlacklist(dirname(__FILE__));
} else {
    if (version_compare($phpUnitVersion[1], "3.5.0") >= 0) {
        PHP_CodeCoverage_Filter::getInstance()->addDirectoryToBlacklist(dirname(__FILE__));
    } else {
        PHPUnit_Util_Filter::addDirectoryToFilter(dirname(__FILE__));
    }
}
// get config
$configData = (include 'phpunitconfig.inc.php');
$config = new Zend_Config($configData);
$_SERVER['DOCUMENT_ROOT'] = $config->docroot;
Setup_TestServer::getInstance()->initFramework();
 private function showError($message)
 {
     print \PHPUnit_Runner_Version::getVersionString() . "\n\n";
     print $message . "\n";
     exit(\PHPUnit_TextUI_TestRunner::FAILURE_EXIT);
 }
Exemple #14
0
<?php

if (!class_exists('PHP_Timer', false)) {
    require 'PHP/Timer.php';
}
?>
      <div id="footer">
        <div class="w3c-valid-html"><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional"></a></div>

        <div class="w3c-valid-css"><a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS!"></a></div>
        <div class="copyright">&copy; <?php 
echo date('Y');
?>
 Nick Turner. Inspired by Matt Mueller.<br><?php 
echo htmlentities(PHPUnit_Runner_Version::getVersionString());
?>
<br><?php 
echo htmlentities(PHP_Timer::resourceUsage());
?>
</div>
      </div>
    </div>
    <script src="<?php 
echo $this->url('/template/javascript/jquery.js');
?>
" type="text/javascript" charset="utf-8"></script>
    <script src="<?php 
echo $this->url('/template/javascript/main.js');
?>
" type="text/javascript" charset="utf-8"></script>
  </body>
 /**
  * @param  string $buffer
  */
 public function write($buffer)
 {
     // A bit of a hack to intercept the version string announcing PHPUnit before it's printed;
     // done for --hide-summary. Unclean, but all else is worse.
     $hide_summary = $this->options->get('hide-summary');
     if ($hide_summary and $buffer === PHPUnit_Runner_Version::getVersionString() . "\n\n") {
         return;
     }
     print $buffer;
     if ($this->autoFlush) {
         $this->incrementalFlush();
     }
 }
Exemple #16
0
 /**
  */
 public static function printVersionString()
 {
     if (!self::$versionStringPrinted) {
         self::write(PHPUnit_Runner_Version::getVersionString() . "\n\n");
         self::$versionStringPrinted = TRUE;
     }
 }
Exemple #17
0
 private function printVersionString()
 {
     if ($this->versionStringPrinted) {
         return;
     }
     print PHPUnit_Runner_Version::getVersionString() . "\n\n";
     $this->versionStringPrinted = true;
 }
 /**
  * @param string $buffer
  */
 public function write($buffer)
 {
     if ($buffer !== \PHPUnit_Runner_Version::getVersionString() . "\n\n") {
         fwrite($this->getResource(), $buffer);
     }
 }
 /**
  * @param  PHPUnit_Framework_Test       $suite
  * @param  array                        $arguments
  * @return PHPUnit_Framework_TestResult
  */
 public function doRun(PHPUnit_Framework_Test $suite, array $arguments = array())
 {
     $this->handleConfiguration($arguments);
     $this->processSuiteFilters($suite, $arguments);
     if (isset($arguments['bootstrap'])) {
         $GLOBALS['__PHPUNIT_BOOTSTRAP'] = $arguments['bootstrap'];
     }
     if ($arguments['backupGlobals'] === false) {
         $suite->setBackupGlobals(false);
     }
     if ($arguments['backupStaticAttributes'] === true) {
         $suite->setBackupStaticAttributes(true);
     }
     if ($arguments['disallowChangesToGlobalState'] === true) {
         $suite->setDisallowChangesToGlobalState(true);
     }
     if (is_integer($arguments['repeat'])) {
         $test = new PHPUnit_Extensions_RepeatedTest($suite, $arguments['repeat'], $arguments['processIsolation']);
         $suite = new PHPUnit_Framework_TestSuite();
         $suite->addTest($test);
     }
     $result = $this->createTestResult();
     if (!$arguments['convertErrorsToExceptions']) {
         $result->convertErrorsToExceptions(false);
     }
     if (!$arguments['convertNoticesToExceptions']) {
         PHPUnit_Framework_Error_Notice::$enabled = false;
     }
     if (!$arguments['convertWarningsToExceptions']) {
         PHPUnit_Framework_Error_Warning::$enabled = false;
     }
     if ($arguments['stopOnError']) {
         $result->stopOnError(true);
     }
     if ($arguments['stopOnFailure']) {
         $result->stopOnFailure(true);
     }
     if ($arguments['stopOnIncomplete']) {
         $result->stopOnIncomplete(true);
     }
     if ($arguments['stopOnRisky']) {
         $result->stopOnRisky(true);
     }
     if ($arguments['stopOnSkipped']) {
         $result->stopOnSkipped(true);
     }
     if ($this->printer === null) {
         if (isset($arguments['printer']) && $arguments['printer'] instanceof PHPUnit_Util_Printer) {
             $this->printer = $arguments['printer'];
         } else {
             $printerClass = 'PHPUnit_TextUI_ResultPrinter';
             if (isset($arguments['printer']) && is_string($arguments['printer']) && class_exists($arguments['printer'], false)) {
                 $class = new ReflectionClass($arguments['printer']);
                 if ($class->isSubclassOf('PHPUnit_TextUI_ResultPrinter')) {
                     $printerClass = $arguments['printer'];
                 }
             }
             $this->printer = new $printerClass(isset($arguments['stderr']) ? 'php://stderr' : null, $arguments['verbose'], $arguments['colors'], $arguments['debug'], $arguments['columns']);
         }
     }
     if (!$this->printer instanceof PHPUnit_Util_Log_TAP) {
         $this->printer->write(PHPUnit_Runner_Version::getVersionString() . "\n");
         self::$versionStringPrinted = true;
         if ($arguments['verbose']) {
             $this->printer->write(sprintf("\nRuntime:\t%s", $this->runtime->getNameWithVersion()));
             if ($this->runtime->hasXdebug()) {
                 $this->printer->write(sprintf(" with Xdebug %s", phpversion('xdebug')));
             }
             if (isset($arguments['configuration'])) {
                 $this->printer->write(sprintf("\nConfiguration:\t%s", $arguments['configuration']->getFilename()));
             }
             $this->printer->write("\n");
         }
         if (isset($arguments['deprecatedStrictModeOption'])) {
             print "Warning:\tDeprecated option \"--strict\" used\n";
         } elseif (isset($arguments['deprecatedStrictModeSetting'])) {
             print "Warning:\tDeprecated configuration setting \"strict\" used\n";
         }
         if (isset($arguments['deprecatedSeleniumConfiguration'])) {
             print "Warning:\tDeprecated configuration setting \"selenium\" used\n";
         }
     }
     foreach ($arguments['listeners'] as $listener) {
         $result->addListener($listener);
     }
     $result->addListener($this->printer);
     if (isset($arguments['testdoxHTMLFile'])) {
         $result->addListener(new PHPUnit_Util_TestDox_ResultPrinter_HTML($arguments['testdoxHTMLFile']));
     }
     if (isset($arguments['testdoxTextFile'])) {
         $result->addListener(new PHPUnit_Util_TestDox_ResultPrinter_Text($arguments['testdoxTextFile']));
     }
     $codeCoverageReports = 0;
     if (isset($arguments['coverageClover'])) {
         $codeCoverageReports++;
     }
     if (isset($arguments['coverageCrap4J'])) {
         $codeCoverageReports++;
     }
     if (isset($arguments['coverageHtml'])) {
         $codeCoverageReports++;
     }
     if (isset($arguments['coveragePHP'])) {
         $codeCoverageReports++;
     }
     if (isset($arguments['coverageText'])) {
         $codeCoverageReports++;
     }
     if (isset($arguments['coverageXml'])) {
         $codeCoverageReports++;
     }
     if (!$this->printer instanceof PHPUnit_Util_Log_TAP) {
         if ($codeCoverageReports > 0 && !$this->codeCoverageFilter->hasWhitelist()) {
             $this->printer->write("Warning:\tNo whitelist configured for code coverage\n");
         }
         $this->printer->write("\n");
     }
     if ($codeCoverageReports > 0 && (!extension_loaded('tokenizer') || !$this->runtime->canCollectCodeCoverage())) {
         if (!extension_loaded('tokenizer')) {
             $this->showExtensionNotLoadedMessage('tokenizer', 'No code coverage will be generated.');
         } elseif (!extension_loaded('Xdebug')) {
             $this->showExtensionNotLoadedMessage('Xdebug', 'No code coverage will be generated.');
         }
         $codeCoverageReports = 0;
     }
     if ($codeCoverageReports > 0) {
         $codeCoverage = new PHP_CodeCoverage(null, $this->codeCoverageFilter);
         $codeCoverage->setAddUncoveredFilesFromWhitelist($arguments['addUncoveredFilesFromWhitelist']);
         $codeCoverage->setCheckForUnintentionallyCoveredCode($arguments['strictCoverage']);
         $codeCoverage->setProcessUncoveredFilesFromWhitelist($arguments['processUncoveredFilesFromWhitelist']);
         if (isset($arguments['forceCoversAnnotation'])) {
             $codeCoverage->setForceCoversAnnotation($arguments['forceCoversAnnotation']);
         }
         if (isset($arguments['mapTestClassNameToCoveredClassName'])) {
             $codeCoverage->setMapTestClassNameToCoveredClassName($arguments['mapTestClassNameToCoveredClassName']);
         }
         $result->setCodeCoverage($codeCoverage);
     }
     if ($codeCoverageReports > 1) {
         if (isset($arguments['cacheTokens'])) {
             $codeCoverage->setCacheTokens($arguments['cacheTokens']);
         }
     }
     if (isset($arguments['jsonLogfile'])) {
         $result->addListener(new PHPUnit_Util_Log_JSON($arguments['jsonLogfile']));
     }
     if (isset($arguments['tapLogfile'])) {
         $result->addListener(new PHPUnit_Util_Log_TAP($arguments['tapLogfile']));
     }
     if (isset($arguments['junitLogfile'])) {
         $result->addListener(new PHPUnit_Util_Log_JUnit($arguments['junitLogfile'], $arguments['logIncompleteSkipped']));
     }
     $result->beStrictAboutTestsThatDoNotTestAnything($arguments['reportUselessTests']);
     $result->beStrictAboutOutputDuringTests($arguments['disallowTestOutput']);
     $result->beStrictAboutTodoAnnotatedTests($arguments['disallowTodoAnnotatedTests']);
     $result->beStrictAboutTestSize($arguments['enforceTimeLimit']);
     $result->setTimeoutForSmallTests($arguments['timeoutForSmallTests']);
     $result->setTimeoutForMediumTests($arguments['timeoutForMediumTests']);
     $result->setTimeoutForLargeTests($arguments['timeoutForLargeTests']);
     if ($suite instanceof PHPUnit_Framework_TestSuite) {
         $suite->setRunTestInSeparateProcess($arguments['processIsolation']);
     }
     $suite->run($result);
     unset($suite);
     $result->flushListeners();
     if ($this->printer instanceof PHPUnit_TextUI_ResultPrinter) {
         $this->printer->printResult($result);
     }
     if (isset($codeCoverage)) {
         if (isset($arguments['coverageClover'])) {
             $this->printer->write("\nGenerating code coverage report in Clover XML format ...");
             $writer = new PHP_CodeCoverage_Report_Clover();
             $writer->process($codeCoverage, $arguments['coverageClover']);
             $this->printer->write(" done\n");
             unset($writer);
         }
         if (isset($arguments['coverageCrap4J'])) {
             $this->printer->write("\nGenerating Crap4J report XML file ...");
             $writer = new PHP_CodeCoverage_Report_Crap4j();
             $writer->process($codeCoverage, $arguments['coverageCrap4J']);
             $this->printer->write(" done\n");
             unset($writer);
         }
         if (isset($arguments['coverageHtml'])) {
             $this->printer->write("\nGenerating code coverage report in HTML format ...");
             $writer = new PHP_CodeCoverage_Report_HTML($arguments['reportLowUpperBound'], $arguments['reportHighLowerBound'], sprintf(' and <a href="http://phpunit.de/">PHPUnit %s</a>', PHPUnit_Runner_Version::id()));
             $writer->process($codeCoverage, $arguments['coverageHtml']);
             $this->printer->write(" done\n");
             unset($writer);
         }
         if (isset($arguments['coveragePHP'])) {
             $this->printer->write("\nGenerating code coverage report in PHP format ...");
             $writer = new PHP_CodeCoverage_Report_PHP();
             $writer->process($codeCoverage, $arguments['coveragePHP']);
             $this->printer->write(" done\n");
             unset($writer);
         }
         if (isset($arguments['coverageText'])) {
             if ($arguments['coverageText'] == 'php://stdout') {
                 $outputStream = $this->printer;
                 $colors = $arguments['colors'];
             } else {
                 $outputStream = new PHPUnit_Util_Printer($arguments['coverageText']);
                 $colors = false;
             }
             $processor = new PHP_CodeCoverage_Report_Text($arguments['reportLowUpperBound'], $arguments['reportHighLowerBound'], $arguments['coverageTextShowUncoveredFiles'], $arguments['coverageTextShowOnlySummary']);
             $outputStream->write($processor->process($codeCoverage, $colors));
         }
         if (isset($arguments['coverageXml'])) {
             $this->printer->write("\nGenerating code coverage report in PHPUnit XML format ...");
             $writer = new PHP_CodeCoverage_Report_XML();
             $writer->process($codeCoverage, $arguments['coverageXml']);
             $this->printer->write(" done\n");
             unset($writer);
         }
     }
     return $result;
 }
Exemple #20
0
    public function execute(InputInterface $input, OutputInterface $output)
    {
        $options = $input->getOptions();
        if (!$options['silent']) {
            $output->writeln(Codecept::versionString() . "\nPowered by " . \PHPUnit_Runner_Version::getVersionString());
        }
        if ($options['no-colors']) {
            $output->setDecorated(!$options['no-colors']);
        }
        if ($options['colors']) {
            $output->setDecorated($options['colors']);
        }

        $options = array_merge($options, $this->booleanOptions($input, ['xml','html','coverage','coverage-xml','coverage-html']));
        if ($options['debug']) {
            $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE);
        }
        $options['verbosity'] = $output->getVerbosity();

        $this->ensureCurlIsAvailable();

        $config = Configuration::config($options['config']);

        $suite = $input->getArgument('suite');
        $test  = $input->getArgument('test');

        if (! Configuration::isEmpty() && ! $test && strpos($suite, $config['paths']['tests']) === 0) {
            list($matches, $suite, $test) = $this->matchTestFromFilename($suite, $config['paths']['tests']);
        }

        if ($options['group']) {
            $output->writeln(sprintf("[Groups] <info>%s</info> ", implode(', ', $options['group'])));
        }
        if ($input->getArgument('test')) {
            $options['steps'] = true;
        }

        if ($test) {
            $filter            = $this->matchFilteredTestName($test);
            $options['filter'] = $filter;
        }

        $this->codecept = new Codecept((array)$options);

        if ($suite and $test) {
            $this->codecept->run($suite, $test);
        }

        if (! $test) {
            $suites      = $suite ? explode(',', $suite) : Configuration::suites();
            $current_dir = Configuration::projectDir();
            $executed    = $this->runSuites($suites, $options['skip']);
            foreach ($config['include'] as $included_config_file) {
                Configuration::config($full_path = $current_dir . $included_config_file);
                $namespace = $this->currentNamespace();
                $output->writeln(
                       "\n<fg=white;bg=magenta>\n[$namespace]: tests from $full_path\n</fg=white;bg=magenta>"
                );
                $suites = $suite ? explode(',', $suite) : Configuration::suites();
                $executed += $this->runSuites($suites, $options['skip']);
            }
            if (! $executed) {
                throw new \RuntimeException(
                    sprintf("Suite '%s' could not be found", implode(', ', $suites))
                );
            }
        }

        $this->codecept->printResult();

        if (! $input->getOption('no-exit')) {
            if (! $this->codecept->getResult()->wasSuccessful()) {
                exit(1);
            }
        }
    }