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

标签 php laravel testing phpunit

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

测试不会因此而失败,尽管它很难看。

示例:

enter image description here

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

最佳答案

一些选项都与命令的详细一起操作:

  • 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/

相关文章:

PHP脚本不会在后台运行

php - 进行 CodeIgniter 数据库查询

php - Laravel:使用 `configureMonologUsing()` 的多个日志提供程序?

php - Laravel Eloquent 链式方法返回 true 而不是模型

testing - PHPUnit/DBUnit 句柄时间戳列

php - 是否可以更改 wordpress 在帖子中添加时显示图像的方式?

javascript - php 如何检查字符串中某个单词是否重复

Laravel Mix 和导入文件

testing - 测试人员应该报告什么?

laravel - 如何使用 laravel 队列邮件编写单元测试?