Se você usa PHPUnit para gerenciar e executar seus testes de unidade, o agente PHP da New Relic pode capturar automaticamente os resultados do resumo do teste e enviá-los para a New Relic como um evento onde você pode consultar e visualizar os dados de teste rapidamente. Este recurso foi lançado na versão 6.7.0 do agente PHP e suporta versões do PHPUnit 3.7 para 8.x
Habilitar evento de teste do PHPUnit
Para ativar o evento de teste do PHPUnit:
- Encontre ou adicione a configuração
newrelic.phpunit_events.enabled
em seu arquivonewrelic.ini
e defina-a comotrue
. - Reinicie seu servidor web (apache, PHP-FPM, Nginx, etc) para que a alteração da configuração tenha efeito.
Dica
Mensagens de exceção são coletadas e enviadas com evento. Além disso, se você usar a opção --disallow-test-output
do PHPUnit, que sinaliza testes que imprimem a saída como "arriscada", o evento de teste incluirá a saída incorreta.
Ver atributo disponível
Quando ativado, o agente PHP detecta comandos PHPUnit e preenche o New Relic com dois tipos de eventos que contêm dados para o conjunto de testes (denominados TestSuite
) e testes individuais (denominados Test
). Você pode consultar os dados com a consulta NRQL e construir um dashboard com informações importantes para você.
Para consultar seu evento de teste, use FROM TestSuite
e FROM Test
ao especificar suas instruções SELECT
:
SELECT uniqueCount(name) FROM TestSuite
Exemplo de dashboard de teste do PHPUnit criado consultando o evento TestSuite
e Test
.
Exemplo de consulta
Um dashboard de dados de resumo de teste permite que você veja rapidamente um instantâneo do sucesso geral do teste, bem como se aprofunde nos conjuntos com falhas para determinar sua causa. Estes exemplos ilustram os tipos de widget que você pode criar com os tipos de evento TestSuite
e Test
.
Facetas vinculadas
Como um conjunto de testes PHPUnit está vinculado a testes individuais por meio de seu ID de execução, você pode usar o widgetFACET
para filtrar os resultados de uma execução de teste específica.
Por exemplo, se você criou um widget com os conjuntos de testes com falha mais recentes e o vinculou ao dashboard atual, você poderia clicar em um teste e os widgets adjacentes seriam atualizados com informações apenas para a execução desse conjunto de testes.
O widget FACET (canto superior esquerdo) vinculado ao dashboard atual permite que você analise os conjuntos de testes com falha.
No exemplo acima, você pode ver que clicando em executar 5bb37ccee2a1dbc7
, aprendemos que um dos dois testes, testFoo
, falhou. Aqui estão as consultas NRQL que compuseram este exemplo:
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
Atributo do evento PHPUnit
TestSuite
e Test
evento contém o seguinte atributo que você pode consultar: