Skip to content
Vitest 3
Main Navigation 가이드 & API구성브라우저 모드고급 API
3.2.0
2.1.9
1.6.1
0.34.6

한국어

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
Italiano
Polski
Türkçe
čeština
magyar

한국어

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
Italiano
Polski
Türkçe
čeština
magyar

외관

Sidebar Navigation

API

Node API

고급 API

Vitest API

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

플러그인 API

러너 API

리포터

작업 메타데이터

가이드

테스트 실행

리포터 확장

사용자 지정 풀

Vitest 구성하기

테스트 API 참조

이 페이지에서

리포터 확장 ​

WARNING

이것은 고급 API입니다. 내장 리포터를 구성하려면 "리포터" 가이드를 참조하십시오.

vitest/reporters에서 리포터를 가져와 확장하여 사용자 정의 리포터를 만들 수 있습니다.

내장 리포터 확장 ​

일반적으로 리포터를 처음부터 새로 만들 필요는 없습니다. vitest는 확장할 수 있는 몇 가지 기본 리포터를 제공합니다.

ts
import { DefaultReporter } from 'vitest/reporters';

export default class MyDefaultReporter extends DefaultReporter {
  // 필요한 로직 추가
}

물론 리포터를 완전히 새로 만들 수도 있습니다. BaseReporter 클래스를 확장하고 필요한 메서드를 구현하기만 하면 됩니다.

다음은 사용자 정의 리포터의 예시입니다.

ts
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
import type { Reporter } from 'vitest/node';

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()],
  },
});

보고된 작업 ​

리포터가 직접 작업을 처리하는 대신, 보고된 작업 API를 사용하는 것이 좋습니다.

vitest.state.getReportedEntity(runnerTask)를 호출하여 이 API에 접근할 수 있습니다.

ts
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) {
      // 참고: 이전 작업 구현에서는 "module" 대신 "file"을 사용했습니다.
      const testModule = this.vitest.state.getReportedEntity(
        file
      ) as TestModule;
      for (const task of testModule.children) {
        //                          ^?
        console.log('finished', task.type, task.fullName);
      }
    }
  }
}

내보낸 리포터 ​

vitest는 별도의 설정 없이 바로 사용할 수 있는 몇 가지 내장 리포터를 제공합니다.

내장 리포터: ​

  1. BasicReporter
  2. DefaultReporter
  3. DotReporter
  4. JsonReporter
  5. VerboseReporter
  6. TapReporter
  7. JUnitReporter
  8. TapFlatReporter
  9. HangingProcessReporter

기본 추상 리포터: ​

  1. BaseReporter

인터페이스 리포터: ​

  1. Reporter
Pager
이전테스트 실행
다음사용자 지정 풀

MIT 라이선스 하에 배포되었습니다.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/reporters

MIT 라이선스 하에 배포되었습니다.

Copyright (c) 2021-Present Vitest Team