【问题标题】:Ignore .env file on unit tests忽略单元测试中的 .env 文件
【发布时间】:2015-09-18 21:21:08
【问题描述】:

我的大部分课程都包含加载环境变量以进行配置。当我编码时,我认为vlucas/phpdotenv 忽略了测试环境中的.env 文件,因为已经有一个像phpunit.xml 这样的conf 文件在其中定义它们。

在测试环境中是否可以让 dotenv 忽略 .env?

【问题讨论】:

  • 不能忽略 .env 文件,但如果在加载 .env 文件之前设置了环境变量,则使用预定义变量,除非使用 $dotenv->overload 调用 .env 文件方法。我不认为 Laravel 做后者。这意味着phpunit.xml中定义的环境变量不会被覆盖。
  • 我试图使用默认值env('myVar', $defaultValue),这样我就不必在phpunit.xml上设置它,但似乎无法做到:(
  • 您可以在启动应用程序之前在测试用例中声明环境变量。但这不会让您仍然使用默认值。我通常为我的生产服务器保留默认值,所以我的直播中不需要 .env 文件。

标签: php laravel laravel-5 phpunit phpdotenv


【解决方案1】:

测试将使用您的.env 文件,但您可以覆盖phpunit.xml 中的任何设置。

<php>
    <env name="APP_ENV" value="testing"/>
    <env name="CACHE_DRIVER" value="array"/>
    <env name="SESSION_DRIVER" value="array"/>
    <env name="DB_DRIVER" value="sqlite"/>
    <env name="CACHE_HOST" value="localhost"/>
    <env name="SESSION_HOST" value="localhost"/>
</php>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-22
    • 2020-11-08
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 2018-10-19
    • 2019-09-30
    • 2019-07-27
    相关资源
    最近更新 更多