沃梦达 / 编程问答 / php问题 / 正文

如何在 Laravel 5 中为 phpunit 指定不同的 .env 文件?

How to specify a different .env file for phpunit in Laravel 5?(如何在 Laravel 5 中为 phpunit 指定不同的 .env 文件?)

本文介绍了如何在 Laravel 5 中为 phpunit 指定不同的 .env 文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I have a .env file containing my database connection details, as is normal for Laravel 5. I want to override these for testing, which I can do in phpunit.xml. However, doing this seems to go against the philosophy of .env which is not to commit environmental configurations, particularly passwords.

Is it possible to have something like .env.testing and tell phpunit.xml to read from that?

解决方案

Copy your .env to .env.testing, then edit the .env.testing file and change the APP_ENV parameter to make it like this APP_ENV=testing this way you will be able to specify your settings int this new file

In case you don't want to create a new .env.testing file you have to specify your variables in the phpunit.xml in the php section with the values you need, something like this

<php>
    <env name="APP_ENV" value="testing"/>
    <env name="CACHE_DRIVER" value="array"/>
    <env name="SESSION_DRIVER" value="array"/>
    <env name="QUEUE_DRIVER" value="sync"/>
    <env name="DB_CONNECTION" value="sqlite"/>
    <env name="DB_DATABASE" value="testing"/>
</php>

Just use the key values in the name section and the value of that key in the value section.

For this example I am specifying phpunit to use an sqlite database with the name of testing.

By the way in config/database.php I added this 'default' => env('DB_CONNECTION', 'mysql'), to use mysql by default unless I specify something diferent, as in this case.

这篇关于如何在 Laravel 5 中为 phpunit 指定不同的 .env 文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何在 Laravel 5 中为 phpunit 指定不同的 .env 文件?

基础教程推荐