리포터 확장하기
vitest/reporters에서 리포터를 가져와 확장하여 사용자 정의 리포터를 만들 수 있습니다.
내장 리포터 확장하기
일반적으로 리포터를 처음부터 만들 필요는 없습니다. vitest는 확장 가능한 몇 가지 기본 리포터를 제공합니다.
ts
import { DefaultReporter } from 'vitest/reporters';
export default class MyDefaultReporter extends DefaultReporter {
// 원하는 기능 구현
}물론 리포터를 처음부터 만들 수도 있습니다. BaseReporter 클래스를 확장하고 필요한 메서드를 구현하면 됩니다.
다음은 사용자 정의 리포터의 예시입니다.
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);
}
}또는 Reporter 인터페이스를 구현할 수도 있습니다.
ts
// ./custom-reporter.js
import { Reporter } from 'vitest/reporters';
export default class CustomReporter implements Reporter {
onCollected() {
// 원하는 기능 구현
}
}그런 다음 vitest.config.ts 파일에서 다음과 같이 사용자 정의 리포터를 사용할 수 있습니다.
ts
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';
export default defineConfig({
test: {
reporters: [new CustomReporter()],
},
});제공되는 리포터
vitest는 바로 사용할 수 있는 몇 가지 내장 리포터를 제공합니다.
내장 리포터:
BasicReporterDefaultReporterDotReporterJsonReporterVerboseReporterTapReporterJUnitReporterTapFlatReporterHangingProcessReporter
기본 추상 클래스 리포터:
BaseReporter
인터페이스 리포터:
Reporter