public function preload() { $this->scenario->setFeature($this->getSpecFromMethod()); $code = $this->getSourceCode(); $this->parser->parseFeature($code); $this->parser->attachMetadata(Annotation::forMethod($this->testClassInstance, $this->testMethod)->raw()); $this->getMetadata()->getService('di')->injectDependencies($this->testClassInstance); }
public function preload() { $this->scenario->setFeature($this->getSpecFromMethod()); $code = $this->getSourceCode(); $this->parser->parseFeature($code); $this->parser->attachMetadata(Annotation::forMethod($this->testClassInstance, $this->testMethod)->raw()); $this->getMetadata()->getService('di')->injectDependencies($this->testClassInstance); // add example params to feature if ($this->getMetadata()->getCurrent('example')) { $params = implode(', ', array_values($this->getMetadata()->getCurrent('example'))); $this->getScenario()->setFeature($this->getScenario()->getFeature() . ' | ' . $params); } }
public function preload() { $this->scenario->setFeature($this->getSpecFromMethod()); $code = $this->getSourceCode(); $this->parser->parseFeature($code); $this->parser->attachMetadata(Annotation::forMethod($this->testClassInstance, $this->testMethod)->raw()); $this->getMetadata()->getService('di')->injectDependencies($this->testClassInstance); // add example params to feature if ($this->getMetadata()->getCurrent('example')) { $step = new Comment('', $this->getMetadata()->getCurrent('example')); $this->getScenario()->setFeature($this->getScenario()->getFeature() . ' | ' . $step->getArgumentsAsString(100)); } }
function loadTests($file) { Parser::validate($file); $name = basename($file, 'Cept.php'); $cept = new CeptFormat($name, $file); $this->tests[] = $cept; }
public function loadTests($path) { Parser::load($path); $testClasses = Parser::getClassesFromFile($path); foreach ($testClasses as $testClass) { $reflected = new \ReflectionClass($testClass); if (!$reflected->isInstantiable()) { continue; } foreach ($reflected->getMethods(\ReflectionMethod::IS_PUBLIC) as $method) { $test = $this->createTestFromPhpUnitMethod($reflected, $method); if (!$test) { continue; } $this->tests[] = $test; } } }
public function loadTests($file) { Parser::load($file); $testClasses = Parser::getClassesFromFile($file); foreach ($testClasses as $testClass) { if (substr($testClass, -strlen('Cest')) !== 'Cest') { continue; } if (!(new \ReflectionClass($testClass))->isInstantiable()) { continue; } $unit = new $testClass(); $methods = get_class_methods($testClass); foreach ($methods as $method) { $test = $this->createTestForMethod($unit, $method, $file); if ($test) { $this->tests[] = $test; } } } }
public function loadTests($file) { Parser::load($file); $testClasses = Parser::getClassesFromFile($file); foreach ($testClasses as $testClass) { if (substr($testClass, -strlen('Cest')) !== 'Cest') { continue; } if (!(new \ReflectionClass($testClass))->isInstantiable()) { continue; } $unit = new $testClass(); $methods = get_class_methods($testClass); foreach ($methods as $method) { if (strpos($method, '_') === 0) { continue; } $rawExamples = Annotation::forMethod($unit, $method)->fetchAll('example'); if (count($rawExamples)) { $examples = array_map(function ($v) { return Annotation::arrayValue($v); }, $rawExamples); $dataProvider = new \PHPUnit_Framework_TestSuite_DataProvider(); foreach ($examples as $k => $example) { if ($example === null) { throw new TestParseException($file, "Example for {$testClass}->{$method} contains invalid data:\n" . $rawExamples[$k] . "\n" . "Make sure this is a valid JSON (Hint: \"-char for strings) or a single-line annotation in Doctrine-style"); } $test = new CestFormat($unit, $method, $file); $test->getMetadata()->setCurrent(['example' => $example]); $groups = Annotation::forMethod($unit, $method)->fetchAll('group'); $dataProvider->addTest($test, $groups); } $this->tests[] = $dataProvider; continue; } $this->tests[] = new CestFormat($unit, $method, $file); } } }
public function testParseFileWithClass() { if (version_compare(PHP_VERSION, '5.5.0', '<')) { $this->markTestSkipped('only for php 5.5'); } $classes = Parser::getClassesFromFile(codecept_data_dir('php55Test')); $this->assertEquals(['php55Test'], $classes); }
public function addCest($file) { $testClasses = Parser::getClassesFromFile($file); foreach ($testClasses as $testClass) { $reflected = new \ReflectionClass($testClass); if ($reflected->isAbstract()) { continue; } $unit = new $testClass(); $methods = get_class_methods($testClass); foreach ($methods as $method) { $test = $this->createTestFromCestMethod($unit, $method, $file); if (!$test) { continue; } $this->tests[] = $test; } } }
/** * @group core */ public function testClassesFromFile() { $classes = Parser::getClassesFromFile(codecept_data_dir('DummyClass.php')); $this->assertContains('DummyClass', $classes); $classes = Parser::getClassesFromFile(codecept_data_dir('SimpleWithDependencyInjectionCest.php')); $this->assertContains('simpleDI\\LoadedTestWithDependencyInjectionCest', $classes); $this->assertContains('simpleDI\\AnotherCest', $classes); }
public function testParseFileWhichUnsetsFileVariable() { $classes = Parser::getClassesFromFile(codecept_data_dir('unsetFile.php')); $this->assertEquals([], $classes); }