PHPUnit を使用してユニット テストを管理および実行する場合、New Relic PHP エージェントはテストの概要結果を自動的にキャプチャし、New Relic イベント として に送信して、テスト データを一目でクエリおよび視覚化できるようにします。この機能はPHPエージェントのバージョン6.7.0でリリースされ、PHPUnitバージョン3.7から 8.x
PHPUnitテストイベントを有効にする
PHPUnitテストイベントを有効にするには:
newrelic.ini
ファイルでnewrelic.phpunit_events.enabled
設定を検索または追加し、{true
}に設定します。- 設定の変更を有効にするには、Webサーバー(Apache、PHP-FPM、Nginxなど)を再起動します。
ヒント
例外メッセージが収集され、イベントとともに送信されます。また、出力を「危険」として出力するテストにフラグを立てるPHPUnitの--disallow-test-output
オプションを使用する場合、テストイベントには問題のある出力が含まれます。
利用可能な属性を表示する
有効にすると、PHPエージェントはPHPUnitコマンドを検出し、テストスイート( TestSuite
という名前)と個々のテスト( Test
という名前)のデータを含む2つのイベントタイプをNewRelicに入力します。 NRQLクエリを使用してデータをクエリし、重要な情報 のダッシュボードを作成できます。
テストイベントをクエリするには、 SELECT
ステートメントを指定するときにFROM TestSuite
とFROM Test
を使用します。
SELECT uniqueCount(name) FROM TestSuite
TestSuite
およびTest
イベントをクエリして作成されたPHPUnitテストダッシュボードの例。
クエリの例
テストサマリーデータのダッシュボードを使用すると、テスト全体の成功のスナップショットをすばやく確認したり、失敗したスイートを掘り下げて原因を特定したりできます。これらの例は、 TestSuite
とTest
の両方のイベントタイプで作成できるウィジェットの種類を示しています。
リンクされたファセット
PHPUnitテストスイートは実行IDを介して個々のテストにリンクされているため、 FACET
ウィジェットを使用して特定のテスト実行の結果をフィルタリングできます。
たとえば、失敗した最新のテストスイートを使用してウィジェットを作成し、それを現在のダッシュボードにリンクした場合、テストをクリックすると、周囲のウィジェットがそのテストスイートの実行のみの情報で更新されます。
現在のダッシュボードにリンクされているFACETウィジェット(左上)を使用すると、失敗したテストスイートにドリルダウンできます。
上記の例では、実行5bb37ccee2a1dbc7
をクリックすると、2つのテストの1つである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
イベントには、クエリできる次の属性が含まれています。