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 참조

이 페이지에서

TestCase ​

TestCase 클래스는 단일 테스트를 나타냅니다. 이 클래스는 메인 스레드에서만 사용 가능합니다. 런타임 태스크를 다루고 있다면 "러너 API"를 참조하십시오.

TestCase 인스턴스는 항상 test 값을 가진 type 속성을 가지고 있습니다. 이를 통해 다른 태스크 유형을 구별할 수 있습니다:

ts
if (task.type === 'test') {
  task; // TestCase
}

project ​

테스트가 속한 TestProject를 가리킵니다.

module ​

테스트가 정의된 TestModule을 직접 참조합니다.

name ​

test 함수에 전달된 테스트 이름입니다.

ts
import { test } from 'vitest';

// [!code word:'the validation works correctly']
test('the validation works correctly', () => {
  // ...
});

fullName ​

모든 상위 스위트를 > 기호로 구분한 테스트 이름입니다. 이 테스트의 전체 이름은 "the validation logic > the validation works correctly"입니다:

ts
import { describe, test } from 'vitest';

// [!code word:'the validation works correctly']
// [!code word:'the validation logic']
describe('the validation logic', () => {
  test('the validation works correctly', () => {
    // ...
  });
});

id ​

이는 테스트의 고유 식별자입니다. 이 ID는 결정적이며 여러 번 실행해도 동일한 테스트에 대해 항상 같습니다. ID는 프로젝트 이름, 모듈 ID 및 테스트 순서에 따라 결정됩니다.

ID는 다음과 같습니다:

1223128da3_0_0
^^^^^^^^^^ 파일 해시
           ^ 스위트 인덱스
             ^ 테스트 인덱스

TIP

Vitest 3부터는 vitest/node의 generateFileHash 함수를 사용하여 파일 해시를 생성할 수 있습니다:

ts
import { generateFileHash } from 'vitest/node';

const hash = generateFileHash(
  '/file/path.js', // 상대 경로
  undefined // 프로젝트 이름 (설정되지 않았다면 undefined)
);

DANGER

ID를 파싱하려고 시도하지 마세요. 시작 부분에 마이너스 부호가 있을 수 있습니다: -1223128da3_0_0_0.

location ​

테스트가 정의된 모듈 내의 위치입니다. 위치는 설정에서 includeTaskLocation이 활성화된 경우에만 수집됩니다. --reporter=html, --ui 또는 --browser 플래그가 사용될 경우 이 옵션은 자동으로 활성화됩니다.

이 테스트의 위치는 { line: 3, column: 1 }입니다:

ts
import { test } from 'vitest'

test('the validation works correctly', () => {
  // ...
})
1
2
3
4
5

parent ​

상위 스위트입니다. 테스트가 모듈 내에서 직접 호출된 경우, 부모는 해당 모듈 자체가 됩니다.

options ​

ts
interface TaskOptions {
  readonly each: boolean | undefined;
  readonly fails: boolean | undefined;
  readonly concurrent: boolean | undefined;
  readonly shuffle: boolean | undefined;
  readonly retry: number | undefined;
  readonly repeats: number | undefined;
  readonly mode: 'run' | 'only' | 'skip' | 'todo';
}

테스트가 수집될 때 사용된 옵션입니다.

ok ​

ts
function ok(): boolean;

테스트가 스위트에서 실패하지 않았는지 확인합니다. 테스트가 아직 완료되지 않았거나 건너뛰어진 경우 true를 반환합니다.

meta ​

ts
function meta(): TaskMeta;

테스트 실행 중 테스트에 첨부된 사용자 정의 메타데이터입니다. 메타는 테스트 실행 중에 ctx.task.meta 객체에 속성을 할당하여 첨부할 수 있습니다:

ts
import { test } from 'vitest';

test('the validation works correctly', ({ task }) => {
  // ...

  task.meta.decorated = false;
});

테스트가 아직 실행을 마치지 않은 경우, 메타는 빈 객체가 됩니다.

result ​

ts
function result(): TestResult;

테스트 결과입니다. 테스트가 아직 완료되지 않았거나 방금 수집된 경우 TestResultPending과 같습니다:

ts
export interface TestResultPending {
  /**
   * 테스트가 수집되었지만 아직 실행이 완료되지 않았습니다.
   */
  readonly state: 'pending';
  /**
   * 대기 중인 테스트에는 오류가 없습니다.
   */
  readonly errors: undefined;
}

테스트가 건너뛰어진 경우, 반환 값은 TestResultSkipped가 됩니다:

ts
interface TestResultSkipped {
  /**
   * 테스트는 'skip' 또는 'todo' 플래그로 인해 건너뛰어졌습니다.
   * 어떤 플래그가 사용되었는지는 'options.mode' 옵션에서 확인할 수 있습니다.
   */
  readonly state: 'skipped';
  /**
   * 건너뛴 테스트에는 오류가 없습니다.
   */
  readonly errors: undefined;
  /**
   * `ctx.skip(note)`로 전달된 사용자 지정 노트입니다.
   */
  readonly note: string | undefined;
}

TIP

다른 테스트에 only 플래그가 있어서 테스트가 건너뛰어진 경우, options.mode는 skip과 같습니다.

테스트가 실패한 경우, 반환 값은 TestResultFailed가 됩니다:

ts
interface TestResultFailed {
  /**
   * 테스트 실행에 실패했습니다.
   */
  readonly state: 'failed';
  /**
   * 테스트 실행 중에 발생한 오류입니다.
   */
  readonly errors: ReadonlyArray<TestError>;
}

테스트가 통과한 경우, 반환 값은 TestResultPassed가 됩니다:

ts
interface TestResultPassed {
  /**
   * 테스트가 성공적으로 통과했습니다.
   */
  readonly state: 'passed';
  /**
   * 테스트 실행 중에 발생한 오류입니다.
   */
  readonly errors: ReadonlyArray<TestError> | undefined;
}

WARNING

passed 상태의 테스트에도 오류가 첨부될 수 있습니다. 이는 retry가 한 번 이상 트리거된 경우 발생할 수 있습니다.

diagnostic ​

ts
function diagnostic(): TestDiagnostic | undefined;

테스트 기간, 메모리 사용량 등 테스트 관련 유용한 정보:

ts
interface TestDiagnostic {
  /**
   * 테스트 실행 시간이 `slowTestThreshold`를 초과하는 경우.
   */
  readonly slow: boolean;
  /**
   * 테스트가 사용한 메모리 양 (바이트 단위).
   * 이 값은 테스트가 `logHeapUsage` 플래그와 함께 실행된 경우에만 사용할 수 있습니다.
   */
  readonly heap: number | undefined;
  /**
   * 테스트를 실행하는 데 걸린 시간 (밀리초 단위).
   */
  readonly duration: number;
  /**
   * 테스트가 시작된 시간 (밀리초 단위).
   */
  readonly startTime: number;
  /**
   * 테스트가 재시도된 횟수.
   */
  readonly retryCount: number;
  /**
   * `repeats` 옵션에 따라 테스트가 반복된 횟수.
   * 테스트가 반복 중에 실패했고 `retry`가 구성되지 않은 경우 이 값은 더 낮을 수 있습니다.
   */
  readonly repeatCount: number;
  /**
   * 테스트가 두 번째 재시도에서 통과했는지 여부.
   */
  readonly flaky: boolean;
}

INFO

테스트가 아직 실행되도록 예약되지 않은 경우 diagnostic()은 undefined를 반환합니다.

Pager
이전TestSpecification
다음TestSuite

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

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/api/test-case

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

Copyright (c) 2021-Present Vitest Team