get() 공개 정적인 메소드

Finds the test case for the corresponding class name.
public static get ( string $class ) : string
$class string A fully-namespaced class reference for which to find a test case.
리턴 string Returns the class name of a test case for `$class`, or `null` if none exists.
예제 #1
0
 /**
  * Takes an instance of an object (usually a Collection object) containing test
  * instances. Adds affected tests to the test collection.
  *
  * @param object $report Instance of Report which is calling apply.
  * @param array $tests The test to apply this filter on
  * @param array $options Not used.
  * @return object Returns the instance of `$tests`.
  */
 public static function apply($report, $tests, array $options = array())
 {
     $affected = array();
     $testsClasses = $tests->map('get_class', array('collect' => false));
     foreach ($tests as $test) {
         $affected = array_merge($affected, self::_affected($test->subject()));
     }
     $affected = array_unique($affected);
     foreach ($affected as $class) {
         $test = Unit::get($class);
         if ($test && !in_array($test, $testsClasses)) {
             $tests[] = new $test();
         }
         $report->collect(__CLASS__, array($class => $test));
     }
     return $tests;
 }
예제 #2
0
 /**
  * Runs tests given a path to a directory or file containing tests. The path to the
  * test(s) may be absolute or relative to the current working directory.
  *
  * {{{
  * li3 test lithium/tests/cases/core/ObjectTest.php
  * li3 test lithium/tests/cases/core
  * }}}
  *
  * If you are in the working directory of an application or plugin and wish to run all tests,
  * simply execute the following:
  *
  * {{{
  * li3 test tests/cases
  * }}}
  *
  * If you are in the working directory of an application and wish to run a plugin, execute one
  * of the following:
  *
  * {{{
  * li3 test libraries/<plugin>/tests/cases
  * li3 test <plugin>/tests/cases
  * }}}
  *
  *
  * This will run `<library>/tests/cases/<package>/<class>Test.php`:
  *
  * {{{
  * li3 test <library>/<package>/<class>.php
  * }}}
  *
  * @param string $path Absolute or relative path to tests or a file which
  *                     corresponding test should be run.
  * @return boolean Will exit with status `1` if one or more tests failed otherwise with `0`.
  */
 public function run($path = null)
 {
     if (!($path = $this->_path($path))) {
         return false;
     }
     if (!preg_match('/(tests|Test\\.php)/', $path)) {
         if (!($path = Unit::get($path))) {
             $this->error('Cannot map path to test path.');
             return static::EXIT_NO_TEST;
         }
     }
     $handlers = $this->_handlers;
     if (!isset($handlers[$this->format]) || !is_callable($handlers[$this->format])) {
         $this->error(sprintf('No handler for format `%s`... ', $this->format));
         return false;
     }
     $filters = $this->filters ? array_map('trim', explode(',', $this->filters)) : array();
     $params = compact('filters') + array('format' => $this->format);
     $runner = function ($options = array()) use($path, $params) {
         error_reporting(E_ALL | E_STRICT | E_DEPRECATED);
         return Dispatcher::run($path, $params + $options);
     };
     $report = $handlers[$this->format]($runner, $path);
     $stats = $report->stats();
     return $stats['success'];
 }