public function afterSuite(SuiteEvent $event) { if (!$this->io->isCodeGenerationEnabled()) { return; } foreach ($this->methods as $call => $arguments) { list($classname, $method) = explode('::', $call); if (in_array($method, $this->wrongMethodNames)) { continue; } $message = sprintf('Do you want me to create `%s()` for you?', $call); try { $resource = $this->resources->createResource($classname); } catch (\RuntimeException $e) { continue; } if ($this->io->askConfirmation($message)) { $this->generator->generate($resource, 'method', array('name' => $method, 'arguments' => $arguments)); $event->markAsWorthRerunning(); } } if ($this->wrongMethodNames) { $this->writeWrongMethodNameMessage(); $event->markAsNotWorthRerunning(); } }
public function afterSuite(SuiteEvent $event) { if (!$this->io->isCodeGenerationEnabled()) { return; } foreach ($this->methods as $call => $arguments) { list($classname, $method) = explode('::', $call); $message = sprintf('Do you want me to create `%s()` for you?', $call); try { $resource = $this->resources->createResource($classname); } catch (\RuntimeException $e) { continue; } if ($this->io->askConfirmation($message)) { $this->generator->generate($resource, 'named_constructor', array('name' => $method, 'arguments' => $arguments)); $event->markAsWorthRerunning(); if (!method_exists($classname, '__construct')) { $message = sprintf('Do you want me to make the constructor of %s private for you?', $classname); if ($this->io->askConfirmation($message)) { $this->generator->generate($resource, 'private-constructor', array('name' => $method, 'arguments' => $arguments)); } } } } }
public function afterSuite(SuiteEvent $event) { $io = $this->getIO(); $io->writeln(); foreach (array('failed' => $this->getStatisticsCollector()->getFailedEvents(), 'broken' => $this->getStatisticsCollector()->getBrokenEvents(), 'skipped' => $this->getStatisticsCollector()->getSkippedEvents()) as $status => $events) { if (!count($events)) { continue; } $io->writeln(sprintf("<%s>---- %s examples</%s>\n", $status, $status, $status)); foreach ($events as $failEvent) { $io->writeln(sprintf('%s', str_replace('\\', DIRECTORY_SEPARATOR, $failEvent->getSpecification()->getTitle())), 8); $this->afterExample($failEvent); $io->writeln(); } } $io->writeln(sprintf("\n%d specs", $this->getStatisticsCollector()->getTotalSpecs())); $counts = array(); foreach ($this->getStatisticsCollector()->getCountsHash() as $type => $count) { if ($count) { $counts[] = sprintf('<%s>%d %s</%s>', $type, $count, $type, $type); } } $io->write(sprintf("%d examples ", $this->getStatisticsCollector()->getEventsCount())); if (count($counts)) { $io->write(sprintf("(%s)", implode(', ', $counts))); } $io->writeln(sprintf("\n%sms", round($event->getTime() * 1000))); }
function it_records_how_many_specs_are_in_the_suite(SuiteEvent $suiteEvent, Suite $suite, SpecificationNode $spec) { $suiteEvent->getSuite()->willReturn($suite); $suite->getSpecifications()->willReturn(array($spec)); $this->beforeSuite($suiteEvent); $this->getTotalSpecsCount()->shouldReturn(1); }
function it_prompts_and_warns_when_one_method_name_is_correct_but_other_reserved($exampleEvent, SuiteEvent $suiteEvent, IO $io, NameCheckerInterface $nameChecker) { $this->callAfterExample($exampleEvent, $nameChecker, 'throw', false); $this->callAfterExample($exampleEvent, $nameChecker, 'foo'); $io->writeBrokenCodeBlock("I cannot generate the method 'throw' for you because it is a reserved keyword", 2)->shouldBeCalled(); $io->askConfirmation('Do you want me to create `stdClass::foo()` for you?')->shouldBeCalled(); $suiteEvent->markAsNotWorthRerunning()->shouldBeCalled(); $this->afterSuite($suiteEvent); }
function it_should_call_afterSuiteEvent(SuiteEvent $example) { $fatalError = '3'; $currentExample = new CurrentExampleTracker(); $currentExample->setCurrentExample("Exited with code: " . $fatalError); $example->getResult()->willReturn($fatalError); $this->afterSuiteEvent($example); $example->getResult()->shouldHaveBeenCalled(); }
public function afterSuite(SuiteEvent $event) { if (!$this->enabled) { return; } if (0 !== $event->getResult()) { return; } $this->output[] = $this->reporter->getOutput($this->coverage); }
function it_aggregates_testsuite_nodes_and_display_them_after_suite_run(SuiteEvent $event, $io, $stats) { $event->getTime()->willReturn(48151.62342); $stats->getFailedEvents()->willReturn(range(1, 12)); $stats->getBrokenEvents()->willReturn(range(1, 3)); $stats->getEventsCount()->willReturn(100); $this->setTestSuiteNodes(array('<testsuite name="specification1" tests="3">' . "\n" . '<testcase name="example1" />' . "\n" . '<testcase name="example2" />' . "\n" . '<testcase name="example3" />' . "\n" . '</testsuite>', '<testsuite name="specification2" tests="2">' . "\n" . '<testcase name="example1" />' . "\n" . '<testcase name="example2" />' . "\n" . '</testsuite>')); $this->afterSuite($event); $io->write('<?xml version="1.0" encoding="UTF-8" ?>' . "\n" . '<testsuites time="48151.623420" tests="100" failures="12" errors="3">' . "\n" . '<testsuite name="specification1" tests="3">' . "\n" . '<testcase name="example1" />' . "\n" . '<testcase name="example2" />' . "\n" . '<testcase name="example3" />' . "\n" . '</testsuite>' . "\n" . '<testsuite name="specification2" tests="2">' . "\n" . '<testcase name="example1" />' . "\n" . '<testcase name="example2" />' . "\n" . '</testsuite>' . "\n" . '</testsuites>')->shouldBeCalled(); }
private function outputSuiteSummary(SuiteEvent $event) { $this->outputTotalSpecCount(); $this->outputTotalExamplesCount(); $this->outputSpecificExamplesCount(); $this->getIO()->writeln(sprintf("\n%sms", round($event->getTime() * 1000))); }
/** * @param SuiteEvent $event */ public function afterSuite(SuiteEvent $event) { if (!$this->io->isCodeGenerationEnabled()) { return; } foreach ($this->exceptions as $exception) { $resource = $this->resources->createResource($exception->getCollaboratorName()); if ($this->resourceIsInSpecNamespace($exception, $resource)) { continue; } if ($this->io->askConfirmation(sprintf('Would you like me to generate an interface `%s` for you?', $exception->getCollaboratorName()))) { $this->generator->generate($resource, 'interface'); $event->markAsWorthRerunning(); } } }
/** * @param SuiteEvent $event */ public function afterSuite(SuiteEvent $event) { $io = $this->getIO(); $stats = $this->getStatisticsCollector(); $io->writeln("\n"); foreach (array('failed' => $stats->getFailedEvents(), 'broken' => $stats->getBrokenEvents(), 'pending' => $stats->getPendingEvents(), 'skipped' => $stats->getSkippedEvents()) as $status => $events) { if (!count($events)) { continue; } foreach ($events as $failEvent) { $this->printException($failEvent); } } $plural = $stats->getTotalSpecs() !== 1 ? 's' : ''; $io->writeln(sprintf("%d spec%s", $stats->getTotalSpecs(), $plural)); $counts = array(); foreach ($stats->getCountsHash() as $type => $count) { if ($count) { $counts[] = sprintf('<%s>%d %s</%s>', $type, $count, $type, $type); } } $count = $stats->getEventsCount(); $plural = $count !== 1 ? 's' : ''; $io->write(sprintf("%d example%s ", $count, $plural)); if (count($counts)) { $io->write(sprintf("(%s)", implode(', ', $counts))); } $io->writeln(sprintf("\n%sms", round($event->getTime() * 1000))); }
/** * @param SuiteEvent $event */ public function afterSuite(SuiteEvent $event) { if (!$this->io->isCodeGenerationEnabled()) { return; } foreach ($this->classes as $classname => $_) { $message = sprintf('Do you want me to create `%s` for you?', $classname); try { $resource = $this->resources->createResource($classname); } catch (\RuntimeException $e) { continue; } if ($this->io->askConfirmation($message)) { $this->generator->generate($resource, 'class'); $event->markAsWorthRerunning(); } } }
public function afterSuite(SuiteEvent $event) { $io = $this->getIO(); $stats = $this->getStatisticsCollector(); $io->freezeTemp(); $io->writeln(); $io->writeln(sprintf("%d specs", $stats->getTotalSpecs())); $counts = array(); foreach ($stats->getCountsHash() as $type => $count) { if ($count) { $counts[] = sprintf('<%s>%d %s</%s>', $type, $count, $type, $type); } } $count = $stats->getEventsCount(); $plural = $count !== 1 ? 's' : ''; $io->write(sprintf("%d example%s ", $count, $plural)); if (count($counts)) { $io->write(sprintf("(%s)", implode(', ', $counts))); } $io->writeln(sprintf("\n%sms", round($event->getTime() * 1000))); }
function it_outputs_a_suite_summary(SuiteEvent $event, ConsoleIO $io, StatisticsCollector $stats) { $stats->getEventsCount()->willReturn(1); $stats->getFailedEvents()->willReturn(array()); $stats->getBrokenEvents()->willReturn(array()); $stats->getPendingEvents()->willReturn(array()); $stats->getSkippedEvents()->willReturn(array()); $stats->getTotalSpecs()->willReturn(15); $event->getTime()->willReturn(12.345); $stats->getCountsHash()->willReturn(array('passed' => 1, 'pending' => 0, 'skipped' => 0, 'failed' => 2, 'broken' => 0)); $this->afterSuite($event); $io->writeln('15 specs')->shouldHaveBeenCalled(); $io->writeln("\n12345ms")->shouldHaveBeenCalled(); $io->write('1 example ')->shouldHaveBeenCalled(); $expected = '(<passed>1 passed</passed>, <failed>2 failed</failed>)'; $io->write($expected)->shouldHaveBeenCalled(); }
/** * @param SuiteEvent $suiteEvent */ public function afterSuite(SuiteEvent $suiteEvent) { if ($suiteEvent->isWorthRerunning()) { $this->reRunner->reRunSuite(); } }
function it_tells_the_rerunner_to_rerun_if_it_is_worth_doing_so(SuiteEvent $suiteEvent, ReRunner $reRunner) { $suiteEvent->isWorthRerunning()->willReturn(true); $this->afterSuite($suiteEvent); $reRunner->reRunSuite()->shouldHaveBeenCalled(); }
function it_prompts_and_warns_when_one_method_name_is_correct_but_other_reserved(ExampleEvent $event, SuiteEvent $suiteEvent, ConsoleIO $io, NameChecker $nameChecker) { $this->callAfterExample($event, $nameChecker, 'throw', false); $this->callAfterExample($event, $nameChecker, 'foo'); $io->writeBrokenCodeBlock("I cannot generate the method 'throw' for you because it is a reserved keyword", 2)->shouldBeCalled(); $io->askConfirmation(Argument::any())->shouldBeCalled(); $suiteEvent->markAsNotWorthRerunning()->shouldBeCalled(); $this->afterSuite($suiteEvent); }
public function afterSuiteEvent(SuiteEvent $event) { $this->currentExample->setCurrentExample('Exited with code: ' . $event->getResult()); }
/** * {@inheritdoc} */ public function afterSuite(SuiteEvent $event) { $stats = $this->getStatisticsCollector(); $this->getIo()->write(sprintf('<?xml version="1.0" encoding="UTF-8" ?>' . "\n" . '<testsuites time="%s" tests="%s" failures="%s" errors="%s">' . "\n" . '%s' . "\n" . '</testsuites>', $event->getTime(), $stats->getEventsCount(), count($stats->getFailedEvents()), count($stats->getBrokenEvents()), implode("\n", $this->testSuiteNodes))); }
public function beforeSuite(SuiteEvent $suiteEvent) { $this->totalSpecsCount = count($suiteEvent->getSuite()->getSpecifications()); }
/** * @param SuiteEvent $event */ public function afterSuite(SuiteEvent $event) { foreach ($this->interfaces as $interface => $methods) { try { $resource = $this->resources->createResource($interface); } catch (ResourceCreationException $e) { continue; } foreach ($methods as $method => $arguments) { if (in_array($method, $this->wrongMethodNames)) { continue; } if ($this->io->askConfirmation(sprintf(self::PROMPT, $interface, $method))) { $this->generator->generate($resource, 'method-signature', array('name' => $method, 'arguments' => $this->getRealArguments($arguments))); $event->markAsWorthRerunning(); } } } if ($this->wrongMethodNames) { $this->writeErrorMessage(); $event->markAsNotWorthRerunning(); } }
/** * @param SuiteEvent $event */ public function beforeSuite(SuiteEvent $event) { $this->examplesCount = count($event->getSuite()); $this->getIO()->writeln($this->teamCityMessage("testCount", array("count" => $this->examplesCount))); }
public function afterSuite(SuiteEvent $event) { if (!$this->io->isCodeGenerationEnabled()) { return; } if (!$this->io->isFakingEnabled()) { return; } foreach ($this->nullMethods as $methodString => $failedCall) { $failedCall['expected'] = array_unique($failedCall['expected']); if (count($failedCall['expected']) > 1) { continue; } $expected = current($failedCall['expected']); $class = $failedCall['class']; $message = sprintf('Do you want me to make `%s()` always return %s for you?', $methodString, var_export($expected, true)); try { $resource = $this->resources->createResource($class); } catch (\RuntimeException $exception) { continue; } if ($this->io->askConfirmation($message)) { $this->generator->generate($resource, 'returnConstant', array('method' => $failedCall['method'], 'expected' => $expected)); $event->markAsWorthRerunning(); } } }