Laravel Artisan命令测试断言退出代码存在风险

时间:2018-10-01 15:30:22

标签: laravel testing artisan

我正在运行基本的artisan command test,但是phpunit抱怨This test did not perform any assertions。但是正在声明退出代码。

public function testCommandUsage()
{
   $this->artisan('cmd:test')->assertExitCode(0);
}

此测试未执行任何断言

好的,但是测试不完整,被跳过或存在风险!

不是 assertExitCode 和断言吗?

1 个答案:

答案 0 :(得分:2)

这似乎是框架中的错误。这是line that is wrong

if ($this->expectedExitCode != null) 

这本来应该是if ($this->expectedExitCode !== null),因为PHP中的0 == null

这里的解决方法是:

public function testCommandUsage()
{
    $statusCode = $this->artisan('cmd:test')->run();
    $this->assertEquals(0, $statusCode);
}

注意:如果尚未报告,请随时使用Laravel的错误跟踪器进行报告,并希望能尽快解决。

显然,截至3小时前,此问题的修复程序已进入5.7分支,因此应尽快发布修复程序。在此之前,解决方法应该起作用。