단위 테스트를 관리하고 실행하기 위해 PHPUnit을 사용하는 경우, 뉴렐릭 PHP 에이전트는 자동으로 테스트 요약 결과를 캡처하고 이를 뉴렐릭 에 이벤트 로 보내 테스트 데이터를 한눈에 쿼리하고 시각화할 수 있습니다. 이 기능은 PHP 에이전트 버전 6.7.0 에서 출시되었으며 PHPUnit 버전 3.7 을(를) 지원합니다. 8.x
PHPUnit 테스트 이벤트 활성화
PHPUnit 테스트 이벤트를 활성화하려면:
newrelic.ini
파일에서newrelic.phpunit_events.enabled
설정을 찾거나 추가하고true
로 설정합니다.- 설정 변경 사항을 적용하려면 웹 서버(apache, PHP-FPM, Nginx 등)를 다시 시작하세요.
팁
예외 메시지가 수집되어 이벤트와 함께 전송됩니다. 또한 출력을 "위험"으로 인쇄하는 테스트에 플래그를 지정하는 PHPUnit의 --disallow-test-output
옵션을 사용하는 경우 테스트 이벤트에 문제가 되는 출력이 포함됩니다.
사용 가능한 속성 보기
활성화 되면 PHP 에이전트는 PHPUnit 명령을 감지하고 테스트 모음(이름: TestSuite
) 및 개별 테스트(이름: Test
)에 대한 데이터가 포함된 두 가지 이벤트 유형으로 New Relic을 채웁니다. NRQL 쿼리 로 데이터를 쿼리하고 중요한 정보 대시보드를 구축할 수 있습니다.
테스트 이벤트를 쿼리하려면 SELECT
문을 지정할 때 FROM TestSuite
및 FROM Test
를 사용합니다.
SELECT uniqueCount(name) FROM TestSuite
![Screenshot of a PHP unit test dashboard Screenshot of a PHP unit test dashboard](/images/apm_screenshot-crop_php-unit-test-dashboard.webp)
TestSuite
및 Test
이벤트를 쿼리하여 생성된 PHPUnit 테스트 대시보드의 예.
쿼리 예시
테스트 요약 데이터 대시보드를 사용하면 전체 테스트 성공의 스냅샷을 빠르게 볼 수 있을 뿐만 아니라 실패한 제품군을 파고들어 원인을 파악할 수 있습니다. 이 예는 TestSuite
및 Test
이벤트 유형으로 만들 수 있는 위젯의 종류를 보여줍니다.
연결된 패싯
PHPUnit 테스트 제품군은 실행 ID를 통해 개별 테스트에 연결되어 있으므로 FACET
위젯을 사용하여 특정 테스트 실행에 대한 결과를 필터링 할 수 있습니다.
예를 들어, 가장 최근에 실패한 테스트 모음으로 위젯을 생성하고 현재 대시보드에 연결한 경우 테스트를 클릭하면 주변 위젯이 해당 테스트 모음 실행에 대한 정보로 업데이트됩니다.
![Screenshot of dashboard showing linked facets Screenshot of dashboard showing linked facets](/images/apm_screenshot-crop_php-linked-facets-dashboard.webp)
현재 대시보드에 연결된 FACET 위젯(왼쪽 상단)을 사용하면 실패한 테스트 모음을 드릴할 수 있습니다.
위의 예에서 5bb37ccee2a1dbc7
실행을 클릭하면 두 테스트 중 하나인 testFoo
이 실패했음을 알 수 있습니다. 다음은 이 예를 구성한 NRQL 쿼리입니다.
Recent unsuccessful suites:
SELECT latest(timestamp), latest(name) FROM TestSuite WHERE successful IS false FACET runId
Last unsuccessful suite:
SELECT host, name, duration * 1000 AS 'duration (ms)', assertionCount, testCount, passedCount, failedCount, incompleteCount, skippedCount, errorCount, riskyCount, warningCount FROM TestSuite WHERE successful IS false LIMIT 1
Last unsuccessful test:
SELECT host, name, testSuiteName, duration * 1000 AS 'duration (ms)', outcome, assertionCount, message FROM Test WHERE outcome != 'passed' LIMIT 1
PHPUnit 이벤트 속성
TestSuite
및 Test
이벤트에는 쿼리할 수 있는 다음 속성이 포함되어 있습니다.