아티즌 커맨드를 테스트하기 위해 Artisan::output() 을 호출하여 출력 내용을 확인하는 방식을 사용했었는데요. 라라벨 버전을 올리니 갑자기 테스트가 깨졌습니다.
디버깅을 해보니 Artisan::output()이 빈 문자열을 반환하더군요.
원인은 라라벨 5.7부터 콘솔 테스트 기능이 강화되면서 기본으로 콘솔 출력을 모킹하도록 변경되었기 때문이었습니다.
기존 처럼 콘솔 출력을 확인하고 싶으면 아티즌 커맨드를 호출하기 전에 $this->withoutMockingConsoleOutput()
를 호출해주면 됩니다.
참고: Artisan::output() returns empty string