Skip to content
Latchkey

O Que É um Relatório JUnit XML?

Um relatório JUnit XML é um formato XML padrão para resultados de testes que quase todo sistema de CI consegue ler, independentemente do test framework que o produziu.

Apesar do nome, o formato JUnit XML não está atrelado ao Java nem ao JUnit. Ele se tornou a língua franca do reporte de testes: pytest, Jest, Go, PHPUnit e a maioria dos outros runners conseguem emiti-lo, e a maioria das plataformas de CI consegue parseá-lo. Esse formato compartilhado é o que permite que qualquer ferramenta de CI exiba resultados por teste de qualquer linguagem.

Por que o nome é enganoso

O formato se originou com o framework JUnit, mas se espalhou muito além dele. Hoje "JUnit XML" descreve uma estrutura, não uma ferramenta. Uma suíte em Python ou Go pode produzir um relatório JUnit XML que um sistema de CI exibe de forma idêntica a um de uma suíte em Java, que é precisamente o objetivo.

A estrutura

Um arquivo JUnit XML agrupa elementos testcase dentro de elementos testsuite. Cada testcase registra seu nome, classe e time; failures e errors aparecem como elementos filhos com uma mensagem e um stack trace; testes pulados também são marcados. A hierarquia mapeia de forma limpa em como as ferramentas de CI exibem resultados.

Um exemplo rápido

O formato é XML puro: cada teste é um testcase, e um failure aninha dentro dele com a mensagem da asserção.

A minimal JUnit XML report
<testsuite tests="2" failures="1">
  <testcase name="adds" time="0.01"/>
  <testcase name="subtracts">
    <failure message="expected 1, got 2"/>
  </testcase>
</testsuite>

Por que importa

  • É entendido por praticamente toda plataforma de CI.
  • É agnóstico de framework e de linguagem.
  • Habilita exibição por teste e acompanhamento de tendências.
  • Alimenta anotações de pull request para as falhas.

JUnit XML no CI

Você configura o runner para escrever um arquivo JUnit XML, depois aponta um step ou action de CI para ele para publicar os resultados. O CI parseia o XML, mostra cada teste e anota as falhas no pull request. Gerar o arquivo é barato, então runners rápidos mantêm o relatório disponível no momento em que a suíte termina.

Principais conclusões

  • JUnit XML é um padrão agnóstico de framework para resultados de testes.
  • O nome precede sua ampla adoção; ele não é específico do Java.
  • Quase toda plataforma de CI o parseia para exibir e acompanhar testes.

Guias relacionados