기본 리포터 확장하기
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
는 바로 사용할 수 있는 몇 가지 내장 리포터를 제공합니다.
내장 리포터:
BasicReporter
DefaultReporter
DotReporter
JsonReporter
VerboseReporter
TapReporter
JUnitReporter
TapFlatReporter
HangingProcessReporter
기본 추상 클래스 리포터:
BaseReporter
인터페이스 리포터:
Reporter