Behat 读取默认的 .env 文件而不是 Laravel 5 中的 .env.behat
Behat reading default .env file and not .env.behat in Laravel 5
FeatureContext.php
/**
* @Then I can do something with Laravel
*/
public function iCanDoSomethingWithLaravel()
{
PHPUnit::assertEquals('.env.behat', app()->environmentFile());
PHPUnit::assertEquals('acceptance', env('APP_ENV'));
}
运行 behat
后的控制台输出
场景:仪表板已锁定来宾
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
文件,更多的是它是从您 homestead.yaml
文件。从你的 homestead.yaml
文件中取出 APP_ENV
变量,然后重新配置你的宅基地盒子,它应该可以正常工作。
这些是您 homestead.yaml:
中的违规行
- key: APP_ENV
value: local
我确实遇到了同样的问题,这就是为我解决的问题。
FeatureContext.php
/**
* @Then I can do something with Laravel
*/
public function iCanDoSomethingWithLaravel()
{
PHPUnit::assertEquals('.env.behat', app()->environmentFile());
PHPUnit::assertEquals('acceptance', env('APP_ENV'));
}
运行 behat
后的控制台输出场景:仪表板已锁定来宾
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
文件,更多的是它是从您 homestead.yaml
文件。从你的 homestead.yaml
文件中取出 APP_ENV
变量,然后重新配置你的宅基地盒子,它应该可以正常工作。
这些是您 homestead.yaml:
- key: APP_ENV
value: local
我确实遇到了同样的问题,这就是为我解决的问题。