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

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

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

문제 신고

New Relic에서 PHPUnit 테스트 데이터 분석

단위 테스트를 관리하고 실행하기 위해 PHPUnit을 사용하는 경우, 뉴렐릭 PHP 에이전트는 자동으로 테스트 요약 결과를 캡처하고 이를 뉴렐릭이벤트 로 보내 테스트 데이터를 한눈에 쿼리하고 시각화할 수 있습니다. 이 기능은 PHP 에이전트 버전 6.7.0 에서 출시되었으며 PHPUnit 버전 3.7 을(를) 지원합니다. 8.x

PHPUnit 테스트 이벤트 활성화

PHPUnit 테스트 이벤트를 활성화하려면:

  1. newrelic.ini 파일에서 newrelic.phpunit_events.enabled 설정을 찾거나 추가하고 true 로 설정합니다.
  2. 설정 변경 사항을 적용하려면 웹 서버(apache, PHP-FPM, Nginx 등)를 다시 시작하세요.

예외 메시지가 수집되어 이벤트와 함께 전송됩니다. 또한 출력을 "위험"으로 인쇄하는 테스트에 플래그를 지정하는 PHPUnit의 --disallow-test-output 옵션을 사용하는 경우 테스트 이벤트에 문제가 되는 출력이 포함됩니다.

사용 가능한 속성 보기

활성화 되면 PHP 에이전트는 PHPUnit 명령을 감지하고 테스트 모음(이름: TestSuite ) 및 개별 테스트(이름: Test )에 대한 데이터가 포함된 두 가지 이벤트 유형으로 New Relic을 채웁니다. NRQL 쿼리 로 데이터를 쿼리하고 중요한 정보 대시보드를 구축할 수 있습니다.

테스트 이벤트를 쿼리하려면 SELECT 문을 지정할 때 FROM TestSuiteFROM Test 를 사용합니다.

SELECT uniqueCount(name) FROM TestSuite
Screenshot of a PHP unit test dashboard

TestSuiteTest 이벤트를 쿼리하여 생성된 PHPUnit 테스트 대시보드의 예.

쿼리 예시

테스트 요약 데이터 대시보드를 사용하면 전체 테스트 성공의 스냅샷을 빠르게 볼 수 있을 뿐만 아니라 실패한 제품군을 파고들어 원인을 파악할 수 있습니다. 이 예는 TestSuiteTest 이벤트 유형으로 만들 수 있는 위젯의 종류를 보여줍니다.

연결된 패싯

PHPUnit 테스트 제품군은 실행 ID를 통해 개별 테스트에 연결되어 있으므로 FACET 위젯을 사용하여 특정 테스트 실행에 대한 결과를 필터링 할 수 있습니다.

예를 들어, 가장 최근에 실패한 테스트 모음으로 위젯을 생성하고 현재 대시보드에 연결한 경우 테스트를 클릭하면 주변 위젯이 해당 테스트 모음 실행에 대한 정보로 업데이트됩니다.

Screenshot of dashboard showing linked facets

현재 대시보드에 연결된 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 이벤트 속성

TestSuiteTest 이벤트에는 쿼리할 수 있는 다음 속성이 포함되어 있습니다.

Copyright © 2024 New Relic Inc.

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