laravel - Behat 在 Laravel 5 中读取默认 .env 文件而不是 .env.behat

标签 laravel laravel-5 behat

FeatureContext.php

/**
 * @Then I can do something with Laravel
 */
public function iCanDoSomethingWithLaravel()
{
    PHPUnit::assertEquals('.env.behat', app()->environmentFile());
    PHPUnit::assertEquals('acceptance', env('APP_ENV'));
}

运行行为后控制台输出

场景:仪表板对访客锁定

 And I can do something with Laravel # FeatureContext::iCanDoSomethingWithLaravel()
   Failed asserting that two strings are equal.
   --- Expected
   +++ Actual
   @@ @@
   -'acceptance'
   +'local'

behat.yml

default:
  extensions:
    Laracasts\Behat:
      env_path: .env.behat
    Laracasts\Behat\ServiceContainer\BehatExtension: ~
    Behat\MinkExtension\ServiceContainer\MinkExtension:
      default_session: laravel
      laravel: ~

.env

APP_ENV=local
APP_DEBUG=true

.env.behat

APP_ENV=acceptance
APP_DEBUG=true

最佳答案

如果您使用 Laravel Homestead,问题不在于它读取 .env 文件,更多的是它从您的默认 APP_ENV 设置中读取它。 homestead.yaml 文件。从 homestead.yaml 文件中取出 APP_ENV 变量,然后重新配置您的 homestead 框,它应该可以正常工作。

这些是您的 homestead.yaml 中的违规行:

- key: APP_ENV
  value: local

我刚刚遇到了同样的问题,这就是为我解决的问题。

关于laravel - Behat 在 Laravel 5 中读取默认 .env 文件而不是 .env.behat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29436758/

相关文章:

php - Laravel 中如何创建全局变量

php - Laravel Schema Builder 时间戳 *with* timezone

php - 在 Behat/Mink FeatureContext 中使用 Laravel Eloquent

mysql - 在 Laravel 中迁移

laravel - 取消 Stripe 订阅会引发调度错误

php - 未使用的写入数据库连接

php - Laravel 5.3 从第二次开始记录一个新的 Facebook 用户

jquery - 使用 laravel 在模态 Bootstrap 中 Bootstrap 警报

symfony - 使用 Behat 3 测试 Symfony2 电子邮件

session-cookies - 如何重新启动浏览器以保留 Behat 中的 cookie?