【发布时间】:2018-08-27 01:16:18
【问题描述】:
当运行 PHPUnit 测试以测试 Artisan 命令时,PHPUnit 输出任何控制台 ->info() or ->writeln() 函数调用。
测试不会因此而失败,尽管它很丑。
例子:
看到进度条了吗?我们如何在测试期间禁用输出?
【问题讨论】:
标签: php laravel testing phpunit
当运行 PHPUnit 测试以测试 Artisan 命令时,PHPUnit 输出任何控制台 ->info() or ->writeln() 函数调用。
测试不会因此而失败,尽管它很丑。
例子:
看到进度条了吗?我们如何在测试期间禁用输出?
【问题讨论】:
标签: php laravel testing phpunit
想到的一些选项都与命令的详细程度一起操作:
call() 中使用--quiet|-q 标志
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');
}
}
【讨论】:
ob_start() 和ob_end_clean() 包围您的call()