如何在不安装完整框架的情况下测试自定义 Laravel 控制台命令?
Posted
技术标签:
【中文标题】如何在不安装完整框架的情况下测试自定义 Laravel 控制台命令?【英文标题】:How to test a custom Laravel console command without of installing full framework? 【发布时间】:2020-08-28 19:15:32 【问题描述】:我正在开发一个自定义 Laravel 控制台命令,该命令使用 composer 和 packagist 进行分发。
所以,这个包没有安装完整的 laravel 框架。
取而代之的是,该软件包使用 illuminate/console
和 illuminate/support
等单独的软件包。
这个包给了我代码完成,但我不能使用高级 laravel 测试的可能性,比如:
$this->artisan('question')->expectsQuestion()
因为我的测试是从基本的 phpunit TestCase 而不是 laravel 的 TestCase 扩展而来的。
因为Illuminate\Foundation\Testing\TestCase
需要实现提供引导应用程序的createApplication()
方法。
但我没有安装应用程序,所以无法实现此方法。
如果我没有安装完整的框架,如何创建Illuminate\Foundation\Application
?
【问题讨论】:
【参考方案1】:确保您的测试类正在扩展 Laravel\Lumen\Testing\TestCase
。
然后把这个方法加进去:
/**
* Creates the application.
*
* @return \Laravel\Lumen\Application
*/
public function createApplication()
return require __DIR__.'/../bootstrap/app.php';
【讨论】:
以上是关于如何在不安装完整框架的情况下测试自定义 Laravel 控制台命令?的主要内容,如果未能解决你的问题,请参考以下文章
(如何)我可以在不安装完整的 boost 库的情况下使用 boost::spirit X3 吗?
Testflight 如何在不触发完整审查的情况下更新构建?