Laravel 5.2:设置 APP_ENV 进行测试
Laravel 5.2: Setup APP_ENV for testing
为了测试,我需要使用另一个数据库而不是 local
环境。
我在开发流程中使用 homestead 和 Laravel 5.2 + Behat3 + Mink。
当我从主机 运行 behat 时,一切正常 - 变量设置为 APP_ENV=testing
。
但是我在设置 testing
环境时遇到了麻烦,当在 homestead 机器中做同样的事情时:APP_ENV
总是 local
。
为了测试环境 (APP_ENV
) 我修改了标准 welcome.blade.php
接下来的方式:
- <div class="title">Laravel 5</div>
+ <div class="title">Laravel 5 ({!! app()->environment() !!})</div>
我配置了behat.yml
:
default:
extensions:
Laracasts\Behat:
env_path: .env.behat
Behat\MinkExtension:
default_session: laravel
laravel: ~
我的测试环境变量在.env.behat
:
APP_ENV=testing
APP_DEBUG=true
DB_CONNECTION=sqlite
我做了我的 home.feature:
Feature: Check home page
In order to verify home page
As a user
I need to see text Laravel and an environment name
@home
Scenario: Home Page
Given I am on the homepage
Then I should see "Laravel 5 (testing)"
所以当我 运行 看到 Laravel 5 (local)
而不是 Laravel 5 (testing)
文本时:
Feature: Check home page
In order to verify home page
As a user
I need to see Laravel text
@home
Scenario: Home Page # features/home.feature:7
Given I am on the homepage # FeatureContext::iAmOnHomepage()
Then I should see "Laravel 5 (testing)" # FeatureContext::assertPageContainsText()
The text "Laravel 5 (testing)" was not found anywhere in the text of the current page. (Behat\Mink\Exception\ResponseTextException)
--- Failed scenarios:
features/home.feature:7
1 scenario (1 failed)
我在配置中遗漏了什么或关于自定义设置我应该了解什么 Laravel 配置?
我不知道是不是这样,但请确保您的 Homestead.yaml
中没有:
variables:
- key: APP_ENV
value: local
如果这样做,请将其删除,然后您可以尝试配置您的 VM,但您很可能需要销毁它(您应该首先备份所有内容,例如数据库等)并在从文件中删除后重新创建.
为了测试,我需要使用另一个数据库而不是 local
环境。
我在开发流程中使用 homestead 和 Laravel 5.2 + Behat3 + Mink。
当我从主机 运行 behat 时,一切正常 - 变量设置为 APP_ENV=testing
。
但是我在设置 testing
环境时遇到了麻烦,当在 homestead 机器中做同样的事情时:APP_ENV
总是 local
。
为了测试环境 (
APP_ENV
) 我修改了标准welcome.blade.php
接下来的方式:- <div class="title">Laravel 5</div> + <div class="title">Laravel 5 ({!! app()->environment() !!})</div>
我配置了
behat.yml
:default: extensions: Laracasts\Behat: env_path: .env.behat Behat\MinkExtension: default_session: laravel laravel: ~
我的测试环境变量在
.env.behat
:APP_ENV=testing APP_DEBUG=true DB_CONNECTION=sqlite
我做了我的 home.feature:
Feature: Check home page In order to verify home page As a user I need to see text Laravel and an environment name @home Scenario: Home Page Given I am on the homepage Then I should see "Laravel 5 (testing)"
所以当我 运行 看到 Laravel 5 (local)
而不是 Laravel 5 (testing)
文本时:
Feature: Check home page
In order to verify home page
As a user
I need to see Laravel text
@home
Scenario: Home Page # features/home.feature:7
Given I am on the homepage # FeatureContext::iAmOnHomepage()
Then I should see "Laravel 5 (testing)" # FeatureContext::assertPageContainsText()
The text "Laravel 5 (testing)" was not found anywhere in the text of the current page. (Behat\Mink\Exception\ResponseTextException)
--- Failed scenarios:
features/home.feature:7
1 scenario (1 failed)
我在配置中遗漏了什么或关于自定义设置我应该了解什么 Laravel 配置?
我不知道是不是这样,但请确保您的 Homestead.yaml
中没有:
variables:
- key: APP_ENV
value: local
如果这样做,请将其删除,然后您可以尝试配置您的 VM,但您很可能需要销毁它(您应该首先备份所有内容,例如数据库等)并在从文件中删除后重新创建.