我正在运行一个基本的工匠命令测试,但phpunit抱怨This test did not perform any assertions
。但我断言退出代码。
public function testCommandUsage()
{
$this->artisan('cmd:test')->assertExitCode(0);
}
此测试未执行任何断言
好的,但是不完整,跳过或有风险的测试!
assertExitCode
和断言不是吗?
这似乎是框架中的一个错误。这是错误的行:
if ($this->expectedExitCode != null)
这应该被if ($this->expectedExitCode !== null)
,因为0 == null
在 PHP 中。
此处的解决方法是:
public function testCommandUsage()
{
$statusCode = $this->artisan('cmd:test')->run();
$this->assertEquals(0, $statusCode);
}
注意:如果尚未报告,请随时使用Laravel的错误跟踪器报告此问题,希望它很快就会得到解决。
显然,截至 5.7 小时前,此问题的修复程序已登陆 3 分支,因此应该很快就会发布修复程序。在此之前,解决方法应该有效。