Si vous utilisez pour gérer et exécuter vos tests unitaires,PHPUnit l'agent PHP New Relic peut capturer automatiquement les résultats du résumé des tests et les envoyer à New Relic sous forme d'événement où vous pouvez interroger et visualiser les données de test en un coup d'œil. Cette fonctionnalité a été sortie dans la version 6.7.0 de l'agent PHP et prend en charge les versions PHPUnit 3.7 à 8.x
Activer l'événement de test PHPUnit
Pour activer l'événement de test PHPUnit :
- Recherchez ou ajoutez le paramètre
newrelic.phpunit_events.enabled
dans votre fichiernewrelic.ini
et définissez-le surtrue
. - Redémarrez votre serveur Web (Apache, PHP-FPM, Nginx, etc.) pour que la modification des paramètres prenne effet.
Conseil
Les messages d'exception sont collectés et envoyés avec l'événement. De plus, si vous utilisez l'option --disallow-test-output
de PHPUnit, qui signale les tests qui impriment une sortie comme « risqués », l'événement de test inclura la sortie incriminée.
Afficher l'attribut disponible
Lorsqu'il est activé, l'agent PHP détecte les commandes PHPUnit et remplit New Relic avec deux types d'événements contenant des données pour la suite de tests (nommée TestSuite
) et les tests individuels (nommés Test
). Vous pouvez interroger les données avec la requêteNRQL et créer un dashboard des informations importantes pour vous.
Pour interroger votre événement de test, utilisez FROM TestSuite
et FROM Test
lors de la spécification de vos instructions SELECT
:
SELECT uniqueCount(name) FROM TestSuite

Exemple d'un de PHPUnit test dashboard créé en interrogeant TestSuite
Test
l'événement et.
Exemple de requête
Un dashboard des données récapitulatives des tests vous permet de voir rapidement un aperçu de la réussite globale des tests ainsi que d'explorer les suites défaillantes pour déterminer leur cause. Ces exemples illustrent les types de widgets que vous pouvez créer avec les types d'événements TestSuite
et Test
.
Facettes liées
Étant donné qu'une suite de tests PHPUnit est liée à des tests individuels via son ID d'exécution, vous pouvez utiliser le widgetFACET
pour filtrer les résultats d'une exécution de test spécifique.
Par exemple, si vous avez créé un widget avec les suites de tests les plus récentes ayant échoué et que vous l'avez lié au dashboard actuel, vous pouvez cliquer sur un test et le widget environnant sera mis à jour avec les informations correspondant uniquement à cette exécution de suite de tests.

widget FACET (en haut à gauche) lié au dashboard actuel vous permet d'explorer en profondeur les suites de tests en échec.
Dans l'exemple ci-dessus, vous pouvez voir qu'en cliquant sur Exécuter 5bb37ccee2a1dbc7
, nous apprenons que l'un des deux tests, testFoo
, a échoué. Voici les requêtes NRQL qui composent cet exemple :
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
Attribut d'événement PHPUnit
TestSuite
et Test
événement contient l'attribut suivant sur lequel vous pouvez effectuer une requête :