Rozszerzanie domyślnych reporterów
Możesz importować reportery z vitest/reporters
i rozszerzać je, aby tworzyć własne.
Rozszerzanie wbudowanych reporterów
Zazwyczaj nie musisz tworzyć własnego reportera od podstaw. vitest
udostępnia kilka domyślnych reporterów, które możesz rozszerzyć.
ts
import { DefaultReporter } from 'vitest/reporters';
export default class MyDefaultReporter extends DefaultReporter {
// zaimplementuj własną logikę
}
Oczywiście możesz również stworzyć reporter od zera. Wystarczy rozszerzyć klasę BaseReporter
i zaimplementować wymagane metody.
Oto przykład niestandardowego reportera:
ts
// ./custom-reporter.js
import { BaseReporter } from 'vitest/reporters';
export default class CustomReporter extends BaseReporter {
onCollected() {
const files = this.ctx.state.getFiles(this.watchFilters);
this.reportTestSummary(files);
}
}
Lub zaimplementuj interfejs Reporter
:
ts
// ./custom-reporter.js
import { Reporter } from 'vitest/reporters';
export default class CustomReporter implements Reporter {
onCollected() {
// wykonaj jakieś operacje
}
}
Następnie możesz użyć niestandardowego reportera w pliku vitest.config.ts
:
ts
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';
export default defineConfig({
test: {
reporters: [new CustomReporter()],
},
});
Dostępne reportery
vitest
zawiera kilka wbudowanych reporterów, których możesz używać od razu.
Wbudowane reportery:
BasicReporter
DefaultReporter
DotReporter
JsonReporter
VerboseReporter
TapReporter
JUnitReporter
TapFlatReporter
HangingProcessReporter
Podstawowe klasy abstrakcyjne reporterów:
BaseReporter
Interfejsy reporterów:
Reporter