Laravel 테스트 중 앱 환경 설정 방법



스테이징과 같이 환경을 특정 환경으로 설정해야 하는 경우 구성 값 app_env를 변경하여 환경을 재정의할 수 있습니다.

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


그런 다음 config('app.env')에서 dd를 수행하면 방금 설정한 환경이 반환됩니다.

app()->environment()로 환경을 설정하는 방법을 찾지 못했기 때문에 대신 이 in_array 함수를 사용하고 config(‘app.env’)를 전달한 다음 환경을 구체적으로 정의하는 것이 좋습니다.

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


예를 들어 명령에 다음이 있다고 가정합니다.

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


환경이 프로덕션으로 설정된 경우 테스트 실행

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);
});

좋은 웹페이지 즐겨찾기