PHPUnit_TextUI_Command::run PHP Method

run() public method

public run ( array $argv, boolean $exit = true ) : integer
$argv array
$exit boolean
return integer
    public function run(array $argv, $exit = true)
    {
        $this->handleArguments($argv);
        $runner = $this->createRunner();
        if (is_object($this->arguments['test']) && $this->arguments['test'] instanceof PHPUnit_Framework_Test) {
            $suite = $this->arguments['test'];
        } else {
            $suite = $runner->getTest($this->arguments['test'], $this->arguments['testFile'], $this->arguments['testSuffixes']);
        }
        if ($this->arguments['listGroups']) {
            $this->printVersionString();
            print "Available test group(s):\n";
            $groups = $suite->getGroups();
            sort($groups);
            foreach ($groups as $group) {
                print " - {$group}\n";
            }
            if ($exit) {
                exit(PHPUnit_TextUI_TestRunner::SUCCESS_EXIT);
            } else {
                return PHPUnit_TextUI_TestRunner::SUCCESS_EXIT;
            }
        }
        if ($this->arguments['listSuites']) {
            $this->printVersionString();
            print "Available test suite(s):\n";
            $configuration = PHPUnit_Util_Configuration::getInstance($this->arguments['configuration']);
            $suiteNames = $configuration->getTestSuiteNames();
            foreach ($suiteNames as $suiteName) {
                print " - {$suiteName}\n";
            }
            if ($exit) {
                exit(PHPUnit_TextUI_TestRunner::SUCCESS_EXIT);
            } else {
                return PHPUnit_TextUI_TestRunner::SUCCESS_EXIT;
            }
        }
        unset($this->arguments['test']);
        unset($this->arguments['testFile']);
        try {
            $result = $runner->doRun($suite, $this->arguments, $exit);
        } catch (PHPUnit_Framework_Exception $e) {
            print $e->getMessage() . "\n";
        }
        $return = PHPUnit_TextUI_TestRunner::FAILURE_EXIT;
        if (isset($result) && $result->wasSuccessful()) {
            $return = PHPUnit_TextUI_TestRunner::SUCCESS_EXIT;
        } elseif (!isset($result) || $result->errorCount() > 0) {
            $return = PHPUnit_TextUI_TestRunner::EXCEPTION_EXIT;
        }
        return $return;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Call the same functions used by the CLI PHPUnit
  * to engage the tests
  * @param string $modulePath path to the phpunit.xml to use
  * @return int
  * 0: Tests successful
  * 1: Tests failed
  * 2: Failed with exception
  */
 public function run($modulePath, $params = array())
 {
     $runner = new \PHPUnit_TextUI_Command();
     $options = array('--configuration', $modulePath . '/phpunit.xml');
     if (isset($params['filter']) && !empty($params['filter'])) {
         $options[] = '--filter';
         $options[] = $params['filter'];
     }
     if (isset($params['coverage']) && !empty($params['coverage'])) {
         $coverage = $params['coverage'];
         $path = $this->getCoveragePath();
         switch ($coverage) {
             case 'html':
                 $options[] = '--coverage-html';
                 $path .= '/html';
                 $options[] = $path;
                 break;
             default:
                 $options[] = '--coverage-text';
                 break;
         }
         echo "Coverage data will be written to {$path}" . PHP_EOL;
     }
     array_unshift($options, 'phpunit');
     return $runner->run($options, false);
 }
All Usage Examples Of PHPUnit_TextUI_Command::run