dongtuoji5396 2018-12-02 21:22
浏览 20

Symfony 4测试命令与命令监听器的输出

I have a command listener that outputs some text to command line.

class CommandListener
{
    //...
    public function onConsoleCommand(ConsoleCommandEvent $event)
    {
        //...

        $event->getOutput()->writeln(
            sprintf(
                '<info>%s@%s:</info> ', 
                $user->getUsername(), 
                $connection
            )
        );
    }
}

While this command provides expected output when I run command in console, in test it does not.

class CommandListenerTest extends WebTestCase
{
    /** @test **/
    public function listener_adds_parameter_and_description_to_allowed_commands(): void
    {
        $kernel = static::createKernel();
        $application = new Application($kernel);
        $application->setAutoExit(false);

        $command = $application->find('doctrine:database:drop');
        $commandTester = new CommandTester($command);

        $commandTester->execute([
            'command'  => $command->getName(),
            '--help' => true
        ]);

        $this->assertContains('default', $commandTester->getDisplay()));
    }
}

In test it provides output without the output from command listener. Command listener is being called.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 keil的map文件中Image component sizes各项意思
    • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
    • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
    • ¥15 划分vlan后,链路不通了?
    • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
    • ¥15 Vue3 大型图片数据拖动排序
    • ¥15 Centos / PETGEM
    • ¥15 划分vlan后不通了
    • ¥20 用雷电模拟器安装百达屋apk一直闪退
    • ¥15 算能科技20240506咨询(拒绝大模型回答)