我想知道是否可以在laravel中设置测试环境,数据库在您的PC中不存在,例如,我有mysql数据库,我想在mysqllite中设置测试,如果不可能,我如何在laravel中设置测试环境,mysql数据库?
当我尝试这个:
'sqlite_testing' => [
'driver' => 'sqlite',
'database' => ":memory:",
],
我得到这个错误:
Illuminate\Database\QueryException: could not find driver (Connection: sqlite_testing, SQL: select * from sqlite_master where
type = 'table' and name = migrations)
2条答案
按热度按时间kgsdhlau1#
我想要database.php文件,并像这样设置mysql环境,在phpmyadmin中创建一个名为testing_db的数据库,它工作正常,结果是您无法在不在本地环境中的数据库上运行测试
bwleehnv2#
我不知道你是怎么得出这个结论的,但是当执行单元测试时,确实有方法使用另一个只测试数据库,而且你不必为测试创建一个新的驱动程序配置。
在你的项目根目录下创建一个
.env.testing
,它还允许你使用不同的主机,用户名或数据库进行测试,就像你设置一个普通的.env
一样简单。Laravel已设置完成PHPUnit xml配置,运行测试时将尝试加载
.env.testing
,如果没有.env.tesing
,将加载.env
,您可以在此处找到更多详细信息:https://laravel.com/docs/10.x/testing#the-env-testing-environment-file