小编Vin*_*raz的帖子

如何在编写测试时检查实际的 Laravel 命令输出?

我正在为 Laravel Artisan 控制台命令编写一个非常基本的测试,如下所示:

$this->artisan("my-command", ["--some-option" => "some-value"])
     ->expectsOutput("the expected output");
Run Code Online (Sandbox Code Playgroud)

测试没有通过。我真的很麻烦,因为“预期输出”正是手动执行时命令输出的内容。

但没关系,我只需要检查通过自动化测试执行时命令输出的实际情况,对吧?但是等等,我该怎么做呢?

我尝试了以下方法:

$output = new BufferedConsoleOutput();
Artisan::call("my-command", ["--some-option", "some-value"], $output);
// dd($output->fetch()
$this->assertTrue($output->fetch() === "the expected output");
Run Code Online (Sandbox Code Playgroud)

但 $output->fetch() 似乎总是空的。

简而言之:如何在测试上下文中打印 Laravel 命令的实际输出?

php laravel laravel-testing laravel-artisan

8
推荐指数
1
解决办法
3619
查看次数

标签 统计

laravel ×1

laravel-artisan ×1

laravel-testing ×1

php ×1