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

이 페이지에서

TestSuite ​

TestSuite 클래스는 단일 테스트 스위트를 나타냅니다. 이 클래스는 메인 스레드에서만 사용할 수 있습니다. 런타임 태스크를 다루는 경우 "러너 API"를 참조하세요.

TestSuite 인스턴스는 항상 suite 값을 가진 type 속성을 가집니다. 이를 사용하여 다른 작업 유형을 구별할 수 있습니다.

ts
if (task.type === 'suite') {
  task; // TestSuite
}

project ​

테스트가 속한 TestProject를 참조합니다.

module ​

테스트가 정의된 TestModule에 대한 직접 참조입니다.

name ​

describe 함수에 전달된 스위트 이름입니다.

ts
import { describe } from 'vitest';

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

fullName ​

모든 상위 스위트를 > 기호로 구분하여 포함하는 스위트의 전체 이름입니다. 예를 들어, 이 스위트의 전체 이름은 "the validation logic > validating cities"입니다.

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

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

id ​

이는 스위트의 고유 식별자입니다. 이 ID는 결정적(deterministic)이며 여러 실행에서 동일한 스위트에 대해 동일합니다. ID는 프로젝트 이름, 모듈 ID 및 스위트 순서를 기반으로 합니다.

ID는 다음과 같습니다.

1223128da3_0_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 { describe } from 'vitest'

describe('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';
}

스위트가 수집될 때의 옵션입니다.

children ​

현재 스위트 내의 모든 스위트와 테스트의 컬렉션입니다.

ts
for (const task of suite.children) {
  if (task.type === 'test') {
    console.log('test', task.fullName);
  } else {
    // task is TestSuite
    console.log('suite', task.name);
  }
}

WARNING

suite.children은 첫 번째 중첩 수준만 반복하며 더 깊이 들어가지 않습니다. 모든 테스트 또는 스위트를 반복해야 하는 경우 children.allTests() 또는 children.allSuites()를 사용하세요. 모든 것을 반복해야 하는 경우 재귀 함수를 사용하세요.

ts
function visit(collection: TestCollection) {
  for (const task of collection) {
    if (task.type === 'suite') {
      // 스위트 처리
      visit(task.children);
    } else {
      // 테스트 처리
    }
  }
}

ok ​

ts
function ok(): boolean;

스위트에 실패한 테스트가 있는지 확인합니다. 스위트가 수집 중에 실패한 경우에도 false를 반환합니다. 이 경우 발생한 오류에 대해서는 errors()를 확인하세요.

state ​

ts
function state(): TestSuiteState;

스위트의 실행 상태를 확인합니다. 가능한 반환 값:

  • pending: 이 스위트의 테스트가 아직 실행을 마치지 않았습니다.
  • failed: 이 스위트에 실패한 테스트가 있거나 수집할 수 없었습니다. errors()가 비어 있지 않으면 스위트가 테스트를 수집하는 데 실패했음을 의미합니다.
  • passed: 이 스위트 내의 모든 테스트가 통과했습니다.
  • skipped: 이 스위트는 수집 중에 건너뛰어졌습니다.

WARNING

테스트 모듈에도 동일한 값을 반환하는 state 메서드가 있지만, 모듈이 아직 실행되지 않은 경우 추가로 queued 상태를 반환할 수 있습니다.

errors ​

ts
function errors(): TestError[];

구문 오류와 같이 테스트 실행 외부에서 수집 중에 발생한 오류입니다.

ts
import { describe } from 'vitest';

describe('collection failed', () => {
  throw new Error('a custom error');
});

WARNING

오류는 단순한 객체로 직렬화됩니다. instanceof Error는 항상 false를 반환합니다.

meta 3.1.0+ ​

ts
function meta(): TaskMeta;

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

ts
import { test } from 'vitest';

describe('the validation works correctly', task => {
  // 수집 중에 "decorated" 할당
  task.meta.decorated = false;

  test('some test', ({ task }) => {
    // 테스트 실행 중에 "decorated" 할당,
    // onTestCaseReady 훅에서만 사용 가능
    task.suite.meta.decorated = false;
  });
});

TIP

메타데이터가 수집 중에 (테스트 함수 외부에서) 첨부된 경우, 사용자 지정 리포터의 onTestModuleCollected 훅에서 사용할 수 있습니다.

Pager
이전TestCase
다음TestModule

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

Copyright (c) 2021-Present Vitest Team

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

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

Copyright (c) 2021-Present Vitest Team