• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

PHPUnit의 메모리가 부족합니다

문제

PHPUnit 버전 11 이상을 사용하여 단위 테스트를 관리하고 실행하고, 뉴렐릭 PHP 에이전트를 설치하고 활성화한 경우, phpunit 스크립트( PHPUnit 명령줄 테스트 러너)를 실행하면 실제로 테스트를 실행하기 전에 사용 가능한 모든 시스템 메모리를 사용하게 됩니다.

해결책

메모리 부족 오류를 방지하려면 newrelic.enabled false 로 설정하여 에이전트를 explicitly disable 해야 합니다. phpunit 사용하는 동안 다음과 같이 비활성화할 수 있습니다.

bash
$
php -d newrelic.enabled=false vendor/bin/phpunit tests/

예를 들어, 특정 테스트 파일을 실행하려면:

bash
$
php -d newrelic.enabled=false vendor/bin/phpunit tests/Unit/ExampleTest.php

중요

이 해결 방법을 사용하면 단위 테스트를 실행하는 동안 모든 뉴렐릭 측정, 계측이 비활성화되므로 테스트 실행 중에 APM 데이터가 수집되지 않습니다.

또는 개발 환경에서 이 설정이 영구적으로 필요한 경우 php.ini 구성 파일에서 에이전트를 비활성화할 수 있습니다.

newrelic.enabled = false

원인

이러한 비호환성의 이유는 PHPUnit 11.x에 추가된 새로운 코드 때문입니다. "오류/예외 전역 처리기 확인 및 복원"을 다시 적용하세요 · sebastianbergmann/phpunit@0214cf8. 이 새로운 코드는 예외 처리기 스택에서 각 예외 처리기를 팝하는 메서드를 사용하여 활성 예외 처리기 목록을 검색합니다. 하지만 뉴렐릭 PHP 에이전트는 기본적으로 자체 예외 처리기를 설치하고 예외 처리기 에이전트에서 제거되지 않도록 합니다. 에이전트는 예외 처리기가 제거되는 것을 감지하고 즉시 다시 등록합니다. 이로 인해 phpunit 펼치기에서 무한 루프가 발생합니다. 뉴렐릭 PHP 에이전트가 지속적으로 핸들러를 다시 등록하기 때문에 PHPUnit 그리드에서 핸들러 팝업을 완료할 수 없습니다.

Copyright © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.