如何更改数据库以便在本地系统上进行开发和测试而不必.env每次都编辑文件?
由于这个原因,我发现练习TDD非常不方便.
是否有可能为一个Laravel应用程序才能正常发育和测试区分,以便它可以选择合适的数据库?
小智 39
编辑config\database.php文件并testing在connections数组中添加-array :
'connections' = [
'testing' = [
'driver' => env('DB_TEST_DRIVER'),
// more details on your testing database
]
]
Run Code Online (Sandbox Code Playgroud)
然后将必要的变量添加到您的.env-file中.
打开您的phpunit.xml-file并在<php>-tag中添加以下内容:
<env name="DB_CONNECTION" value="testing"/>
现在PHPUnit将使用您在testing-array中定义的数据库上的测试运行.
Jed*_*nch 31
对于Laravel 5.5,正确的方法是创建一个名为.env.testing的测试环境文件.在这里,您可以定义测试环境,包括您要用于测试的数据库......
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test DB
DB_USERNAME=test DB user
DB_PASSWORD=test DB password
Run Code Online (Sandbox Code Playgroud)
然后运行此命令......
php artisan config:cache --env=testing
Run Code Online (Sandbox Code Playgroud)
这会将缓存配置为.env.testing文件参数.
这是文档的链接.
如果您的测试数据库使用相同的配置但只是它的名称不同,则只能通过添加来更改所选的数据库名称
<env name="DB_DATABASE" value="testing_db_name"/>
Run Code Online (Sandbox Code Playgroud)
该文件phpunit.xml的<php>节点
对于那些想要使用 sqlite 进行测试的人
创建测试环境文件和test.sqlite文件
> cp .env .env.testing
> touch test.sqlite
Run Code Online (Sandbox Code Playgroud)
在 .env.testing 文件中
DB_CONNECTION=sqlite
DB_DATABASE=./test.sqlite
Run Code Online (Sandbox Code Playgroud)
其次是
php artisan config:cache --env=testing
Run Code Online (Sandbox Code Playgroud)
现在再次迁移您的数据库
php artisan migrate
Run Code Online (Sandbox Code Playgroud)
如果你需要的话,然后播种它
php artisan db:seed
Run Code Online (Sandbox Code Playgroud)
每当你想使用本地环境时,运行
php artisan config:cache --env=local
Run Code Online (Sandbox Code Playgroud)
请注意,env 名称可以在 .env 文件中找到,格式为
APP_ENV=local
| 归档时间: |
|
| 查看次数: |
12914 次 |
| 最近记录: |