Rozšíření reportérů
WARNING
Toto je pokročilé API. Pokud chcete pouze konfigurovat vestavěné reportéry, přečtěte si průvodce "Reportéři".
Můžete importovat reportéry z vitest/reporters
a rozšířit je pro vytvoření vlastních reportérů.
Rozšíření vestavěných reportérů
Obecně nemusíte vytvářet svůj reportér od začátku. vitest
obsahuje několik výchozích reportovacích nástrojů, které můžete rozšířit.
import { DefaultReporter } from 'vitest/reporters';
export default class MyDefaultReporter extends DefaultReporter {
// implementujte funkci
}
Samozřejmě si můžete vytvořit svůj reportér od nuly. Stačí rozšířit třídu BaseReporter
a implementovat metody, které potřebujete.
A zde je příklad vlastního reportéra:
import { BaseReporter } from 'vitest/reporters';
export default class CustomReporter extends BaseReporter {
onCollected() {
const files = this.ctx.state.getFiles(this.watchFilters);
this.reportTestSummary(files);
}
}
Nebo implementujte rozhraní Reporter
:
import type { Reporter } from 'vitest/node';
export default class CustomReporter implements Reporter {
onCollected() {
// vypište něco
}
}
Poté můžete použít svůj vlastní reportér v souboru vitest.config.ts
:
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';
export default defineConfig({
test: {
reporters: [new CustomReporter()],
},
});
Úlohy pro reportování
Místo přímého použití úloh, které reportéři obdrží, se doporučuje použít API pro reportované entity.
K tomuto API se dostanete voláním vitest.state.getReportedEntity(runnerTask)
:
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) {
// Poznámka: stará implementace úloh používá "file" místo "module"
const testModule = this.vitest.state.getReportedEntity(
file
) as TestModule;
for (const task of testModule.children) {
// ^?
console.log('finished', task.type, task.fullName);
}
}
}
}
Exportované reportéry
vitest
obsahuje několik vestavěných reportérů, které můžete použít okamžitě.
Vestavěné reportéry:
BasicReporter
DefaultReporter
DotReporter
JsonReporter
VerboseReporter
TapReporter
JUnitReporter
TapFlatReporter
HangingProcessReporter
Základní abstraktní reportéry:
BaseReporter
Rozhraní pro reportéry:
Reporter