You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8多PHPUnit测试执行报错求助:createApplication方法异常

解决Laravel 8批量PHPUnit测试时createApplication()报错的问题

问题根源

我刚碰到过一模一样的问题!你看到的Call to a member function make() on bool错误,核心原因出在CreatesApplication trait里的createApplication()方法用了require_once加载bootstrap/app.php:

$app = require_once __DIR__.'/../bootstrap/app.php';

第一次执行测试时,require_once会加载文件并返回Laravel应用实例,一切正常。但第二次及之后的测试调用这个方法时,因为文件已经被加载过,require_once会直接返回布尔值true,而不是重新执行文件生成新的应用实例。这时候$app变成了true(布尔值),调用$app->make()自然就会触发报错。

解决方案

把require_once改成普通的require,让每次测试都重新加载bootstrap/app.php并创建新的应用实例:

// 替换原代码
$app = require_once __DIR__.'/../bootstrap/app.php';

// 修改为
$app = require __DIR__.'/../bootstrap/app.php';

这样每次测试运行时,都会重新执行bootstrap/app.php里的代码,生成全新的Laravel应用实例,就不会出现布尔值调用方法的错误了。

验证

修改后再运行你的测试文件:

php artisan test ./tests/feature/DashboardTest.php

两个测试应该都能正常通过,不会再出现报错。

内容的提问来源于stack exchange,提问作者Reteptt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 16:42:52