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

소개

Vitest를 선택하는 이유

시작하기

기능

Vitest 구성하기

API

테스트 API 참조

Mock 함수

Vi

expect

expectTypeOf

assert

assertType

가이드

명령줄 인터페이스

테스트 필터링

테스트 프로젝트

리포터

커버리지

스냅샷

모킹

병렬 처리

타입 검사

Vitest UI

소스 내 테스팅

테스트 컨텍스트

테스트 어노테이션

테스트 환경

매처 확장하기

IDE 통합

디버깅

일반적인 오류

마이그레이션 가이드

Vitest 3.0으로 마이그레이션

Jest에서 마이그레이션

성능

테스트 성능 프로파일링

성능 향상

브라우저 모드

고급 API

다른 테스트 러너와의 비교

이 페이지에서

테스트 필터링 ​

테스트 및 스위트 필터링, 타임아웃 및 동시성 설정

CLI ​

CLI를 사용하여 테스트 파일을 이름으로 필터링할 수 있습니다:

bash
$ vitest basic

위 명령을 실행하면 basic 문자열을 포함하는 테스트 파일만 실행됩니다. 예를 들어 다음과 같은 파일들이 해당됩니다:

basic.test.ts
basic-foo.test.ts
basic/foo.test.ts

-t, --testNamePattern <pattern> 옵션을 사용하여 전체 테스트 이름으로 필터링할 수도 있습니다. 이 옵션은 파일 이름이 아닌, 파일 내에 정의된 테스트 이름으로 필터링할 때 유용합니다.

Vitest 3부터는 파일 이름과 줄 번호를 사용하여 특정 테스트를 지정할 수 있습니다:

bash
$ vitest basic/foo.test.ts:10

WARNING

이 기능이 정상적으로 작동하려면 Vitest에 전체 파일 이름이 제공되어야 합니다. 파일 이름은 현재 작업 디렉토리에 대한 상대 경로이거나 절대 파일 경로여야 합니다.

bash
$ vitest basic/foo.js:10 # ✅
$ vitest ./basic/foo.js:10 # ✅
$ vitest /users/project/basic/foo.js:10 # ✅
$ vitest foo:10 # ❌
$ vitest ./basic/foo:10 # ❌

현재 Vitest는 다음과 같은 범위 지정을 지원하지 않습니다:

bash
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌

타임아웃 지정 ​

테스트 함수에 세 번째 인수로 밀리초 단위의 타임아웃을 선택적으로 전달할 수 있습니다. 기본값은 5초입니다.

ts
import { test } from 'vitest';

test('name', async () => {
  /* ... */
}, 1000);

훅(Hooks)에서도 타임아웃을 설정할 수 있으며, 기본값은 테스트와 동일하게 5초입니다.

ts
import { beforeAll } from 'vitest';

beforeAll(async () => {
  /* ... */
}, 1000);

스위트 및 테스트 건너뛰기 ​

특정 스위트나 테스트의 실행을 건너뛰려면 .skip을 사용합니다.

ts
import { assert, describe, it } from 'vitest';

describe.skip('skipped suite', () => {
  it('test', () => {
    // 스위트가 건너뛰어졌으므로 이 테스트는 실행되지 않으며, 오류도 발생하지 않습니다.
    assert.equal(Math.sqrt(4), 3);
  });
});

describe('suite', () => {
  it.skip('skipped test', () => {
    // 테스트가 건너뛰어졌으므로 이 코드는 실행되지 않으며, 오류도 발생하지 않습니다.
    assert.equal(Math.sqrt(4), 3);
  });
});

실행할 스위트 및 테스트 선택 ​

특정 스위트 또는 테스트만 실행하려면 .only를 사용합니다.

ts
import { assert, describe, it } from 'vitest';

// .only가 붙은 이 스위트(및 다른 .only 스위트)만 실행됩니다.
describe.only('suite', () => {
  it('test', () => {
    assert.equal(Math.sqrt(4), 3);
  });
});

describe('another suite', () => {
  it('skipped test', () => {
    // .only 모드로 실행 중이므로 이 테스트는 건너뛰어집니다.
    assert.equal(Math.sqrt(4), 3);
  });

  it.only('test', () => {
    // .only가 붙은 이 테스트(및 다른 .only 테스트)만 실행됩니다.
    assert.equal(Math.sqrt(4), 2);
  });
});

미구현 스위트 및 테스트 ​

아직 구현되지 않았지만 향후 구현될 스위트 및 테스트를 표시하려면 .todo를 사용합니다.

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

// 이 스위트에 대한 항목이 테스트 보고서에 'todo'로 표시됩니다.
describe.todo('unimplemented suite');

// 이 테스트에 대한 항목이 테스트 보고서에 'todo'로 표시됩니다.
describe('suite', () => {
  it.todo('unimplemented test');
});
Pager
이전명령줄 인터페이스
다음테스트 프로젝트

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

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/filtering

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

Copyright (c) 2021-Present Vitest Team