Skip to content
Vitest 3
Main Navigation Guia & APIConfiguraçãoModo NavegadorAPI Avançada
3.2.0
2.1.9
1.6.1
0.34.6

Português – Brasil

English
简体中文
繁體中文
Español
Français
Русский
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Português – Brasil

English
简体中文
繁體中文
Español
Français
Русский
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Aparência

Sidebar Navigation

API

Node API

APIs Avançadas

API Vitest

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

API de Plugin

API do Runner

Reporters

Metadados da Tarefa

Guia

Executando Testes

Estendendo Relatores

Pool Personalizado

Configurando o Vitest

Referência da API de Teste

Nesta página

Estendendo Relatores ​

WARNING

Esta é uma API avançada. Se você deseja apenas configurar os relatores integrados, consulte o guia "Relatores".

Você pode importar relatores de vitest/reporters e estendê-los para criar seus relatores personalizados.

Estendendo Relatores Integrados ​

Geralmente, você não precisa criar seu relator do zero. O vitest oferece vários relatores padrão que você pode estender.

ts
import { DefaultReporter } from 'vitest/reporters';

export default class MyDefaultReporter extends DefaultReporter {
  // faça algo
}

Alternativamente, você pode criar seu relator do zero. Basta estender a classe BaseReporter e implementar os métodos necessários.

Aqui está um exemplo de um relator personalizado:

ts
import { BaseReporter } from 'vitest/reporters';

export default class CustomReporter extends BaseReporter {
  onCollected() {
    const files = this.ctx.state.getFiles(this.watchFilters);
    this.reportTestSummary(files);
  }
}

Ou implemente a interface Reporter:

ts
import type { Reporter } from 'vitest/node';

export default class CustomReporter implements Reporter {
  onCollected() {
    // imprima algo
  }
}

Em seguida, você pode usar seu relator personalizado no arquivo vitest.config.ts:

ts
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';

export default defineConfig({
  test: {
    reporters: [new CustomReporter()],
  },
});

Tarefas Reportadas ​

Em vez de usar as tarefas que os relatores recebem diretamente, é recomendado usar a API de Tarefas Reportadas.

Você pode acessar esta API chamando vitest.state.getReportedEntity(runnerTask):

ts
import type { Reporter, RunnerTestFile, TestModule, Vitest } from 'vitest/node';

class MyReporter implements Reporter {
  private vitest!: Vitest;

  onInit(vitest: Vitest) {
    this.vitest = vitest;
  }

  onFinished(files: RunnerTestFile[]) {
    for (const file of files) {
      // observe que a implementação de tarefa anterior usava "file" em vez de "module"
      const testModule = this.vitest.state.getReportedEntity(
        file
      ) as TestModule;
      for (const task of testModule.children) {
        //                          ^?
        console.log('finished', task.type, task.fullName);
      }
    }
  }
}

Relatores Exportados ​

O vitest inclui alguns relatores integrados que você pode usar prontos para uso.

Relatores Integrados: ​

  1. BasicReporter
  2. DefaultReporter
  3. DotReporter
  4. JsonReporter
  5. VerboseReporter
  6. TapReporter
  7. JUnitReporter
  8. TapFlatReporter
  9. HangingProcessReporter

Relatores Abstratos Base: ​

  1. BaseReporter

Relatores de Interface: ​

  1. Reporter
Pager
AnteriorExecutando Testes
PróximoPool Personalizado

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/reporters

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team