【发布时间】:2021-08-05 23:55:29
【问题描述】:
我快要疯了!
我在 xampp (not php artisan serve) 上有一个简单的本地 Laravel 设置,mysql 运行良好。
现在我想设置phpunit。我阅读了 Laravel 文档,阅读了大量博客文章,最后发现了 YouTube。
我尝试使用.env.testing,在phpunit.xml 中配置了变量,我还在config/database.php 中尝试了不同的连接块
我可以做任何我想做的事,phpunit 在运行php artisan config:cache 之后仍然会使用在.env 中处于活动状态的数据库设置
即使我通过运行php artisan test --env=testing 直接传递.env.testing,phpunit 仍然会使用prod DB。
告诉 phpunit 在此配置中使用另一个数据库并且不要忽略我在 .env.testing 或 phpunit.xml 上的 env 输入,我错过了什么?
.env:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=mydb
DB_USERNAME=root
DB_PASSWORD=
.env.testing:
DB_CONNECTION=mysql_testing
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=mydb_test
DB_USERNAME=root
DB_PASSWORD=
phpunit.xml:
<server name="APP_ENV" value="testing"/>
<server name="DB_CONNECTION" value="mysql_testing"/>
<server name="DB_DATABASE" value="mydb_test"/>
config/database.php:
'mysql' => [
'driver' => 'mysql',
'database' => env('DB_DATABASE', 'forge'),
...
]
'mysql_testing' => [
'driver' => 'mysql',
'database' => env('DB_DATABASE', 'forge'),
...
]
我有两个数据库:mydb 和 mydb_test
我也测试过这个版本:
config/database.php:
'mysql' => [
'driver' => 'mysql',
'database' => env('DB_DATABASE', 'mydb'),
...
]
'mysql_testing' => [
'driver' => 'mysql',
'database' => env('DB_DATABASE_TEST', 'mydb_test'),
...
]
...DB_DATABASE_TEST=mydb_test 在我的phpunit.xml 和.env 中
Phpunit 仍然使用mydb
谢谢!
【问题讨论】:
-
你也试过“php artisan optimize:clear” ????
-
你成就了我的一天????极好的;我以为我什么都做了,但是,optimize:clear 做到了。谢谢马塞尔!!