Laravel how to set app environment during tests

خرید بک لینک

If you need to set an environment to be a specific one such as staging you can override the environment by changing the config value app_env

config(['app.env' => 'staging']);

Then doing a dd on config(‘app.env’) will retu that environment you’ve just set.

I haven’t found a way to set environments with app()->environment() so instead, I recommend using this in_array function and passing in the config(‘app.env’) and then specifically defining the environments. 

in_array(config('app.env'), ['local', 'staging'])

For example, say you have this in a command:

if (! in_array(config('app.env'), ['local', 'staging'])) {
    $this->error(‘Will only run on local and staging environments’);
    retu true;
}

Test this runs when the environment is set to production

test(‘cannot run on production’, function () {

    config(['app.env' => 'production']);

    $this->artisan('db:production-sync')
        ->expectsOutput(‘DB sync will only run on local and staging environments’)
        ->assertExitCode(true);
});

Recent Questions...

ما را در سایت Recent Questions دنبال می‌کنید

برچسب: نویسنده: استخدام کار بازدید: 284 تاريخ: چهارشنبه 22 تير 1401 ساعت: 15:59

صفحه بندی