Jelentéskészítők kiterjesztése
WARNING
Ez egy haladó API. Ha csak a beépített jelentéskészítőket szeretné konfigurálni, olvassa el a "Jelentéskészítők" útmutatót.
A jelentéskészítőket importálhatja a vitest/reporters
modulból, és kiterjesztheti őket egyéni jelentéskészítők létrehozásához.
Beépített jelentéskészítők kiterjesztése
Általában nem szükséges a jelentéskészítőt a nulláról létrehozni. A vitest
számos alapértelmezett jelentéskészítővel érkezik, amelyeket kiterjeszthet.
import { DefaultReporter } from 'vitest/reporters';
export default class MyDefaultReporter extends DefaultReporter {
// végezzen el valamit
}
Természetesen létrehozhatja a jelentéskészítőt a nulláról is. Egyszerűen csak terjessze ki a BaseReporter
osztályt, és implementálja a szükséges metódusokat.
És itt van egy példa egy egyéni jelentéskészítőre:
import { BaseReporter } from 'vitest/reporters';
export default class CustomReporter extends BaseReporter {
onCollected() {
const files = this.ctx.state.getFiles(this.watchFilters);
this.reportTestSummary(files);
}
}
Vagy implementálja a Reporter
interfészt:
import type { Reporter } from 'vitest/node';
export default class CustomReporter implements Reporter {
onCollected() {
// írjon ki valamit
}
}
Ezután használhatja a saját jelentéskészítőjét a vitest.config.ts
fájlban:
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';
export default defineConfig({
test: {
reporters: [new CustomReporter()],
},
});
Jelentett feladatok
A jelentéskészítők által kapott feladatok helyett javasolt inkább a Jelentett Feladatok API használata.
Ehhez az API-hoz a vitest.state.getReportedEntity(runnerTask)
hívásával férhet hozzá:
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) {
// megjegyzendő, hogy a régi feladat implementáció "file" helyett "module"-t használt
const testModule = this.vitest.state.getReportedEntity(
file
) as TestModule;
for (const task of testModule.children) {
// ^?
console.log('finished', task.type, task.fullName);
}
}
}
}
Exportált jelentéskészítők
A vitest
néhány beépített jelentéskészítővel érkezik, amelyeket azonnal használhat.
Beépített jelentéskészítők:
BasicReporter
DefaultReporter
DotReporter
JsonReporter
VerboseReporter
TapReporter
JUnitReporter
TapFlatReporter
HangingProcessReporter
Alap absztrakt jelentéskészítők:
BaseReporter
Interfész jelentéskészítők:
Reporter