Laravel:运行测试时禁用Artisan控制台输出

时间:2018-03-18 10:12:56

标签: php laravel testing phpunit

运行正在测试Artisan命令的PHPUnit测试时,PHPUnit会输出任何控制台->info() or ->writeln()函数调用。

尽管它很难看,但由于这个原因,测试不会失败。

示例:

enter image description here

查看进度条?我们如何在测试期间禁用输出?

1 个答案:

答案 0 :(得分:1)

有些选项可以使用命令的 verbosity 进行操作:

  • --quiet|-q
  • 中使用call()标记
  • 使用callSilent()代替call()(来自测试本身)
  • 在使用之前将命令解析出容器并将详细程度设置为quiet$cmd = resolve(Command::class); $cmd->setVerbosity('quiet'); $cmd->doWork();
  • 制作虚拟命令,扩展您的测试版并将详细程度设置为安静$this->setVerbosity('quiet');,并显然解决/新建虚拟命令

最新的示例(在一个文件中为是):

class TestCommand extends TestCase {

    ...

}

class DummyCommand extends RealCommand {

    function __constructor() {
        parent::__construct();
        $this->setVerbosity('quiet');
    }

}