Laravel执行artisan test --drop-databases时提示未知选项的问题咨询
解决Laravel 11中
artisan test --drop-databases报错问题 问题重现
执行命令:
./artisan test --drop-databases
出现PHPUnit报错:
PHPUnit 11.1.3 by Sebastian Bergmann and contributors. Unknown option "--drop-databases"
环境信息:
- Laravel版本:11.7.0
- PHP版本:8.3.3
- Composer版本:2.7.1
原因
Laravel 11 对artisan test命令的参数做了调整,原有的--drop-databases选项已被移除,该参数不再被Laravel的测试命令识别,未识别的参数会被传递给PHPUnit,而PHPUnit本身没有这个选项,因此报错。
解决方案
有两种方式实现测试完成后删除数据库的需求:
方法1:使用--drop参数
Laravel 11 新增了--drop参数替代原有的--drop-databases,执行以下命令即可:
./artisan test --drop
方法2:通过配置文件永久启用
如果希望每次测试都自动删除数据库,可以修改项目根目录的phpunit.xml文件,在<php>标签内添加环境变量配置:
<env name="DB_DROP_DATABASES" value="true"/>
保存后,直接执行./artisan test即可自动删除测试数据库。
内容的提问来源于stack exchange,提问作者tbhaxor
相关产品推荐
相关产品推荐

