1 回答
TA贡献1873条经验 获得超9个赞
我不确定为什么它在你的开发机器上工作,因为对我来说默认行为是你在我们的服务器上得到的。
您本地代码中的某些内容正在更改错误处理程序,因此 PHPUnit 的错误处理程序被覆盖。
基本上,PHPUnit 将 转换E_NOTICE为 a PHPUnit\Framework\Error\Notice,并且您断言您将获得一个\ErrorException. 由于错误处理程序更改,它仅适用于您的开发机器。
将您的代码更改为此对我有用:
use PHPUnit\Framework\Error\Notice;
use PHPUnit\Framework\TestCase;
class RandomTest extends TestCase
{
public function testNoticeToException(): void
{
$this->expectException(Notice::class);
trigger_error('Notice Issued');
}
}
您也可以使用它,它是等效的:
$a = [1 => 'a', 2 => 'b', 3 => 'c'];
$this->expectNotice();
$b = $a[99];
你为什么在你的本地机器上得到一个ErrorException......我不确定。你需要寻找可以执行的东西set_error_handler()。
我注意到在你的配置中你正在加载lib/bootstrap.php,它不在默认的 Symfony 路径中。我会从那时起开始检查。
- 1 回答
- 0 关注
- 86 浏览
添加回答
举报