2014-10-20 2 views
0

Laravel 프레임 워크를 사용하여 PHP로 작성된 응용 프로그램이 있습니다.Laravel의 단위 테스트 메모리 사용량 낮춤

그리고 약 200 개의 phpUnit 테스트 메소드로 구성된 테스트 스위트가 있습니다.

문제는이 테스트 스위트가 힘들 정도로 (~ 10 분) 실행되고 있으며 테스트 서버에서 메모리가 부족해지기 시작한 것입니다.

후자의 문제를 해결하기 위해 php.ini의 최대 메모리를 조정할 수는 있지만, 그다지 중요하지 않습니다. 나는 500mb 나 gig를 할당 할 필요가 없습니다. 단일 PHP 프로세스. (서버가 동시에 다른 작업을 수행해야 할 수도 있기 때문에)

나는 조사를 해본 결과, 너무 느리고 너무 많은 RAM을 사용하는 주된 이유 인 것처럼 보인다. 모든 테스트에 대해 완전히 새로운 Laravel 환경을 구축하십시오.

이해할 수 있지만 메모리 사용량과 소요 시간 중 하나 또는 둘 다를 줄이는 방법을 찾고 있습니다.

누구나 내 코드를 능률화 할 방법을 제안 할 수 있습니까?

감사합니다.

답변

1

모든 테스트가 작동합니까? 아니면 일부 테스트가 작동합니까? 클래스를 단위 테스트하는 경우 Laravel 환경을 전혀 초기화 할 필요가 없으며 관련 클래스의 인스턴스를 가져 와서 종속성을 설정하면됩니다.

"내가 작성한 단위 또는 기능 테스트입니까?" Laravel 컨트롤러 테스트를 작성하는 방법에 대한 자습서의 섹션 : 당신이 Laravel 서비스를 필요로 할 때

https://medium.com/laravel-4/laravel-4-controller-testing-48414f4782d0

그래서 당신은 Laravel 테스트 클래스를 확장 할 수 있지만 라이브러리를 테스트하는 경우에는 일반 phpunit을 테스트를 사용할 수 있습니다.

+0

내가 원하는 것을 얻으려면 응용 프로그램을 다시 작성해야 할 것입니다. 테스트를 완전히 처리했기 때문에 정당화하기가 어렵습니다. 따라서 테스트 사이클의 속도를 높이기 위해 코드를 더 복잡하게 만드는 데 시간을 할애하고 있습니다. 몇 가지 도움이 된 몇 가지 팁을 찾았으므로 당분간 사용하겠습니다. 나는 다시 돌아가서 리팩터링을 제대로 할 것이지만, 어쨌든 주어진 코드 비트에서 다음으로 작업 할 필요가있을 때에 만 가능할 것이다. – Simba