1
作出的控制檯命令:命令測試詳細的輸出,無法通過-v選項/ - versbose到測試
protected function execute(InputInterface $input, OutputInterface $output)
{
$consultations = $this->getContainer()->get('consultation.service')->setConsultationsCompleted();
if ($consultations) {
$output->writeln("=== Consultations has been completed ===");
} else {
$output->writeln("=== There are no overdue consulations ===");
}
foreach ($consultations as $consultation) {
$output->writeln($consultation->getId(), OutputInterface::VERBOSITY_VERBOSE);
}
}
和測試:
public function testExecute()
{
$this->application->add(new CompleteConsultationsCommand());
$consultations = $this->em->getRepository('ODConsultationBundle:Consultation')->findPastConsultations();
$command = $this->application->find('consultations:complete');
$commandTester = new CommandTester($command);
$commandTester->execute([
'command' => $command->getName(),
'--verbose' => true
]);
$output = $commandTester->getDisplay();
$this->assertContains('Consultations has been completed', $output);
$this->assertContains($consultations[0]->getId(), $output);
}
第二斷言不起作用。沒有看到信息。我究竟做錯了什麼?
PS $output->writeln($consultation->getId(), OutputInterface::VERBOSITY_VERBOSE);
這行不無--verbose
標誌
那是因爲 - verbose不是命令的參數,而是應用程序。就像其他信息一樣,還有更多像--version IIRC。 – hakre