运行用于测试 Artisan
命令的 PHPUnit 测试时,PHPUnit 会输出任何控制台 ->info() 或 ->writeln()
函数调用。
测试不会因此而失败,尽管它很难看。
示例:
看到进度条了吗?我们如何在测试期间禁用输出?
最佳答案
一些选项都与命令的详细一起操作:
- 在
call()
中使用--quiet|-q
标志 - 使用
callSilent()
而不是call()
(来自测试本身) - 在使用命令之前将命令解析出容器并将详细程度设置为
安静
:$cmd =resolve(Command::class); $cmd->setVerbosity('安静'); $cmd->doWork();
- 制作虚拟命令来扩展您的测试命令并将详细程度设置为安静
$this->setVerbosity('quiet');
并显然解析/新建虚拟命令
最新示例(是在一个文件中):
class TestCommand extends TestCase {
...
}
class DummyCommand extends RealCommand {
function __constructor() {
parent::__construct();
$this->setVerbosity('quiet');
}
}
关于php - Laravel:运行测试时禁用 Artisan 控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49346700/