Skip to content
Vitest 1
Main Navigation 가이드API구성고급
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 UI

브라우저 모드

소스 내 테스트

테스트 컨텍스트

테스트 환경

Matcher 확장하기

IDE 통합

디버깅

다른 테스트 러너와의 비교

마이그레이션 가이드

일반적인 오류

성능 향상

API

테스트 API 참조

Mock 함수

Vi

expect

expectTypeOf

assert

assertType

구성

Vitest 구성 파일 관리

Vitest 구성하기

이 페이지에서

명령줄 인터페이스 ​

명령어 ​

vitest ​

현재 디렉터리에서 Vitest를 시작합니다. 개발 환경에서는 자동으로 감시 모드로 전환되며, CI 환경에서는 실행 모드로 자동 전환됩니다.

실행할 테스트 파일의 필터로 추가 인수를 전달할 수 있습니다. 예를 들어:

bash
vitest foobar

경로에 foobar가 포함된 테스트 파일만 실행합니다. 이 필터는 포함 여부만 확인하며, 정규 표현식 또는 glob 패턴을 지원하지 않습니다 (터미널이 Vitest가 필터를 받기 전에 처리하지 않는 한).

vitest run ​

감시 모드 없이 테스트를 한 번만 실행합니다.

vitest watch ​

모든 테스트 모음을 실행하지만, 파일 변경 사항을 감시하고 변경될 때 테스트를 다시 실행합니다. 인수 없이 vitest를 호출하는 것과 같습니다. CI 환경에서는 vitest run으로 대체됩니다.

vitest dev ​

vitest watch의 별칭입니다.

vitest related ​

지정된 소스 파일을 포함하는 테스트만 실행합니다. 정적 import (예: import('./index.js') 또는 import index from './index.js'))와 함께 작동하지만, 동적 import (예: import(filepath))와는 작동하지 않습니다. 모든 파일 경로는 루트 폴더를 기준으로 해야 합니다.

lint-staged 또는 CI 설정과 함께 실행하는 데 유용합니다.

bash
vitest related /src/index.ts /src/hello-world.js

TIP

Vitest는 기본적으로 감시 모드가 활성화된 상태로 실행됩니다. lint-staged와 같은 도구를 사용하는 경우, --run 옵션을 함께 전달하여 명령이 정상적으로 종료되도록 해야 합니다.

js
// .lintstagedrc.js
export default {
  '*.{js,ts}': 'vitest related --run',
};

vitest bench ​

성능 결과를 비교하는 벤치마크 테스트만 실행합니다.

옵션 ​

옵션
-r, --root <경로>루트 경로
-c, --config <경로>구성 파일 경로
-u, --update스냅샷 업데이트
-w, --watchWatch 모드 활성화
-t, --testNamePattern <패턴>지정된 정규식 패턴과 일치하는 전체 이름을 가진 테스트 실행
--dir <경로>테스트 파일을 검색할 기본 디렉토리
--uiUI 활성화
--openUI 자동 실행 (기본값: !process.env.CI)
--api.port [포트]서버 포트 지정. 지정된 포트가 이미 사용 중인 경우, Vite는 자동으로 사용 가능한 다음 포트를 시도합니다. 따라서 실제 서버가 수신 대기하는 포트가 아닐 수 있습니다. True로 설정하면, 51204로 설정됩니다.
--api.host [호스트]서버가 수신 대기해야 하는 IP 주소를 지정합니다. LAN 및 공용 주소를 포함하여 모든 주소에서 수신 대기하려면 0.0.0.0 또는 true로 설정합니다.
--api.strictPort포트가 이미 사용 중인 경우, 사용 가능한 다음 포트를 자동으로 시도하는 대신 종료하려면 true로 설정합니다.
--silent테스트에서 콘솔 출력을 숨깁니다.
--hideSkippedTests건너뛴 테스트의 로그를 숨깁니다.
--reporter <이름>리포터 지정
--outputFile <파일명/-s>지원되는 리포터가 지정된 경우 테스트 결과를 파일에 씁니다. 여러 리포터의 개별 출력에 대해 cac의 점 표기법을 사용합니다 (예: --outputFile.tap=./tap.txt).
--coverage.all테스트되지 않은 파일을 포함하여 모든 파일을 보고서에 포함할지 여부
--coverage.provider <이름>커버리지 수집 도구 선택 (사용 가능한 값: "v8", "istanbul", "custom")
--coverage.enabled커버리지 수집 활성화. --coverage CLI 옵션을 사용하여 덮어쓸 수 있습니다 (기본값: false).
--coverage.include <패턴>커버리지에 포함된 파일의 glob 패턴. 여러 패턴을 사용할 때 여러 번 지정할 수 있습니다 (기본값: **).
--coverage.exclude <패턴>커버리지에서 제외할 파일. 여러 확장자를 사용할 때 여러 번 지정할 수 있습니다 (기본값: coverage.exclude 방문).
--coverage.extension <확장자>커버리지에 포함할 확장자. 여러 확장자를 사용할 때 여러 번 지정할 수 있습니다 (기본값: [".js", ".cjs", ".mjs", ".ts", ".mts", ".cts", ".tsx", ".jsx", ".vue", ".svelte"]).
--coverage.clean테스트 실행 전에 커버리지 결과 정리 (기본값: true)
--coverage.cleanOnRerunWatch 재실행 시 커버리지 보고서 정리 (기본값: true)
--coverage.reportsDirectory <경로>커버리지 보고서를 쓸 디렉토리 (기본값: ./coverage)
--coverage.reporter <이름>사용할 커버리지 리포터. 자세한 내용은 coverage.reporter를 방문하십시오 (기본값: ["text", "html", "clover", "json"]).
--coverage.reportOnFailure테스트 실패 시에도 커버리지 보고서 생성 (기본값: false)
--coverage.allowExternal프로젝트 루트 외부의 파일에 대한 커버리지 수집 (기본값: false)
--coverage.skipFull100% 문, 분기 및 함수 커버리지를 가진 파일을 표시하지 않습니다 (기본값: false).
--coverage.thresholds.100모든 커버리지 임계값을 100으로 설정하는 바로 가기 (기본값: false)
--coverage.thresholds.perFile파일 당 임계값 확인. 실제 임계값은 --coverage.thresholds.lines, --coverage.thresholds.functions, --coverage.thresholds.branches, --coverage.thresholds.statements를 참조하십시오 (기본값: false).
--coverage.thresholds.autoUpdate현재 커버리지가 구성된 임계값보다 높을 때 "lines", "functions", "branches" 및 "statements" 임계값 값을 구성 파일에 업데이트합니다 (기본값: false).
--coverage.thresholds.lines <number>라인에 대한 임계값. 자세한 내용은 istanbuljs를 방문하십시오. 이 옵션은 사용자 정의 공급자에게는 사용할 수 없습니다.
--coverage.thresholds.functions <number>함수에 대한 임계값. 자세한 내용은 istanbuljs를 방문하십시오. 이 옵션은 사용자 정의 공급자에게는 사용할 수 없습니다.
--coverage.thresholds.branches <number>분기에 대한 임계값. 자세한 내용은 istanbuljs를 방문하십시오. 이 옵션은 사용자 정의 공급자에게는 사용할 수 없습니다.
--coverage.thresholds.statements <number>문에 대한 임계값. 자세한 내용은 istanbuljs를 방문하십시오. 이 옵션은 사용자 정의 공급자에게는 사용할 수 없습니다.
--coverage.ignoreClassMethods <name>커버리지에서 무시될 클래스 메서드 이름의 배열. 자세한 내용은 istanbuljs를 방문하십시오. 이 옵션은 istanbul 공급자에게만 사용할 수 있습니다 (기본값: []).
--coverage.processingConcurrency <number>커버리지 결과 처리 시 사용되는 동시성 제한 (기본값: 20과 CPU 수 중 작은 값).
--coverage.customProviderModule <경로>사용자 정의 커버리지 공급자 모듈의 모듈 이름 또는 경로를 지정합니다. 자세한 내용은 사용자 정의 커버리지 공급자를 방문하십시오. 이 옵션은 사용자 정의 공급자에게만 사용할 수 있습니다.
--coverage.watermarks.statements <워터마크><높음>,<낮음> 형식의 문에 대한 높고 낮은 워터마크
--coverage.watermarks.lines <워터마크><높음>,<낮음> 형식의 라인에 대한 높고 낮은 워터마크
--coverage.watermarks.branches <워터마크><높음>,<낮음> 형식의 분기에 대한 높고 낮은 워터마크
--coverage.watermarks.functions <워터마크><높음>,<낮음> 형식의 함수에 대한 높고 낮은 워터마크
--mode <이름>Vite 모드 덮어쓰기 (기본값: test 또는 benchmark)
--workspace <경로>워크스페이스 구성 파일의 경로
--isolate모든 테스트 파일을 격리하여 실행합니다. 격리를 비활성화하려면 --no-isolate를 사용하십시오 (기본값: true).
--globalsAPI를 전역적으로 삽입합니다.
--domhappy-dom으로 브라우저 API를 모의합니다.
--browser.enabled브라우저에서 테스트를 실행합니다. --browser.enabled와 동일합니다 (기본값: false).
--browser.name <이름>특정 브라우저에서 모든 테스트를 실행합니다. 일부 브라우저는 특정 공급자에서만 사용할 수 있습니다 (--browser.provider 참조). 자세한 내용은 browser.name을 방문하십시오.
--browser.headlessGUI(Graphical User Interface)를 열지 않고 headless 모드로 브라우저를 실행합니다. CI에서 Vitest를 실행하는 경우 기본적으로 활성화됩니다 (기본값: process.env.CI).
--browser.api.port [포트]서버 포트 지정. 지정된 포트가 이미 사용 중인 경우, Vite는 자동으로 사용 가능한 다음 포트를 시도합니다. 따라서 실제 서버가 수신 대기하는 포트가 아닐 수 있습니다. True로 설정하면, 63315로 설정됩니다.
--browser.api.host [호스트]서버가 수신 대기해야 하는 IP 주소를 지정합니다. LAN 및 공용 주소를 포함하여 모든 주소에서 수신 대기하려면 0.0.0.0 또는 true로 설정합니다.
--browser.api.strictPort포트가 이미 사용 중인 경우, 사용 가능한 다음 포트를 자동으로 시도하는 대신 종료하려면 true로 설정합니다.
--browser.provider <이름>브라우저 테스트를 실행하는 데 사용되는 공급자. 일부 브라우저는 특정 공급자에서만 사용할 수 있습니다. "webdriverio", "playwright" 또는 사용자 정의 공급자의 경로일 수 있습니다. 자세한 내용은 browser.provider를 방문하십시오 (기본값: "webdriverio").
--browser.providerOptions <옵션>브라우저 공급자에게 전달되는 옵션. 자세한 내용은 browser.providerOptions를 방문하십시오.
--browser.slowHijackESMVitest가 vi.mock 및 vi.spyOn과 같은 API를 활성화하기 위해 브라우저에서 자체 모듈 분석을 사용하도록 합니다. 자세한 내용은 browser.slowHijackESM을 방문하십시오 (기본값: false).
--browser.isolate모든 브라우저 테스트 파일을 격리하여 실행합니다. 격리를 비활성화하려면 --browser.isolate=false를 사용하십시오 (기본값: true).
--browser.fileParallelism모든 테스트 파일을 병렬로 실행해야 하는지 여부. 비활성화하려면 --browser.file-parallelism=false를 사용하십시오 (기본값: --file-parallelism과 같음).
--pool <풀>브라우저에서 실행되지 않는 경우 풀을 지정합니다 (기본값: threads).
--poolOptions.threads.isolate스레드 풀에서 테스트를 격리합니다 (기본값: true).
--poolOptions.threads.singleThread단일 스레드 내에서 테스트를 실행합니다 (기본값: false).
--poolOptions.threads.maxThreads <workers>테스트를 실행할 최대 스레드 수
--poolOptions.threads.minThreads <workers>테스트를 실행할 최소 스레드 수
--poolOptions.threads.useAtomicsAtomics를 사용하여 스레드를 동기화합니다. 경우에 따라 성능을 향상시킬 수 있지만 이전 Node 버전에서 세그폴트가 발생할 수 있습니다 (기본값: false).
--poolOptions.vmThreads.isolate스레드 풀에서 테스트를 격리합니다 (기본값: true).
--poolOptions.vmThreads.singleThread단일 스레드 내에서 테스트를 실행합니다 (기본값: false).
--poolOptions.vmThreads.maxThreads <workers>테스트를 실행할 최대 스레드 수
--poolOptions.vmThreads.minThreads <workers>테스트를 실행할 최소 스레드 수
--poolOptions.vmThreads.useAtomicsAtomics를 사용하여 스레드를 동기화합니다. 경우에 따라 성능을 향상시킬 수 있지만 이전 Node 버전에서 세그폴트가 발생할 수 있습니다 (기본값: false).
--poolOptions.vmThreads.memoryLimit <limit>VM 스레드 풀의 메모리 제한. 메모리 누수가 발생하는 경우 이 값을 조정하십시오.
--poolOptions.forks.isolate포크 풀에서 테스트를 격리합니다 (기본값: true).
--poolOptions.forks.singleFork단일 child_process 내에서 테스트를 실행합니다 (기본값: false).
--poolOptions.forks.maxForks <workers>테스트를 실행할 최대 프로세스 수
--poolOptions.forks.minForks <workers>테스트를 실행할 최소 프로세스 수
--poolOptions.vmForks.isolate포크 풀에서 테스트를 격리합니다 (기본값: true).
--poolOptions.vmForks.singleFork단일 child_process 내에서 테스트를 실행합니다 (기본값: false).
--poolOptions.vmForks.maxForks <workers>테스트를 실행할 최대 프로세스 수
--poolOptions.vmForks.minForks <workers>테스트를 실행할 최소 프로세스 수
--poolOptions.vmForks.memoryLimit <limit>VM 포크 풀의 메모리 제한. 메모리 누수가 발생하는 경우 이 값을 조정하십시오.
--fileParallelism모든 테스트 파일을 병렬로 실행해야 하는지 여부. 비활성화하려면 --no-file-parallelism를 사용하십시오 (기본값: true).
--maxWorkers <workers>테스트를 실행할 최대 작업자 수
--minWorkers <workers>테스트를 실행할 최소 작업자 수
--environment <이름>브라우저에서 실행되지 않는 경우 실행기 환경을 지정합니다 (기본값: node).
--passWithNoTests테스트가 없을 때 통과합니다.
--logHeapUsage노드에서 실행할 때 각 테스트의 힙 크기를 표시합니다.
--allowOnlyonly로 표시된 테스트 및 스위트를 허용합니다 (기본값: !process.env.CI).
--dangerouslyIgnoreUnhandledErrors발생하는 처리되지 않은 오류를 무시합니다.
--shard <샤드><인덱스>/<개수> 형식으로 실행할 테스트 스위트 샤드
--changed [이후]변경된 파일의 영향을 받는 테스트를 실행합니다 (기본값: false).
--sequence.shuffle.files파일을 임의 순서로 실행합니다. 이 옵션을 활성화해도 오래 실행되는 테스트가 더 빨리 시작되지는 않습니다 (기본값: false).
--sequence.shuffle.tests테스트를 임의 순서로 실행합니다 (기본값: false).
--sequence.concurrent테스트를 병렬로 실행합니다 (기본값: false).
--sequence.seed <시드>임의화 시드를 설정합니다. --sequence.shuffle가 false이면 이 옵션은 아무런 효과가 없습니다. 자세한 내용은 "임의 시드" 페이지를 방문하십시오.
--sequence.hooks <순서>훅이 실행되는 순서를 변경합니다. 허용되는 값은 "stack", "list" 및 "parallel"입니다. 자세한 내용은 sequence.hooks를 방문하십시오 (기본값: "parallel").
--sequence.setupFiles <순서>설정 파일이 실행되는 순서를 변경합니다. 허용되는 값은 "list"와 "parallel"입니다. "list"로 설정하면 설정 파일이 정의된 순서대로 실행됩니다. "parallel"로 설정하면 설정 파일이 병렬로 실행됩니다 (기본값: "parallel").
--inspect [[호스트:]포트]Node.js 검사기 활성화 (기본값: 127.0.0.1:9229)
--inspectBrk [[호스트:]포트]Node.js 검사기를 활성화하고 테스트 시작 전에 중단합니다.
--testTimeout <타임아웃>테스트의 기본 타임아웃(밀리초) (기본값: 5000)
--hookTimeout <타임아웃>기본 훅 타임아웃(밀리초) (기본값: 10000)
--bail <number>주어진 수만큼 테스트가 실패하면 테스트 실행을 중단합니다 (기본값: 0).
--retry <times>실패할 경우 특정 횟수만큼 테스트를 재시도합니다 (기본값: 0).
--diff <경로>diff 인터페이스를 생성하는 데 사용될 diff 구성의 경로
--exclude <glob>테스트에서 제외될 추가 파일 glob
--expandSnapshotDiff스냅샷이 실패할 때 전체 diff 표시
--disableConsoleIntercept콘솔 로깅의 자동 가로채기 비활성화 (기본값: false)
--typecheck.enabled테스트와 함께 타입 검사 활성화 (기본값: false)
--typecheck.only타입 검사 테스트만 실행합니다. 이렇게 하면 타입 검사가 자동으로 활성화됩니다 (기본값: false).
--typecheck.checker <이름>사용할 타입 검사기를 지정합니다. 사용 가능한 값은 "tsc"와 "vue-tsc"이며 실행 파일의 경로입니다 (기본값: "tsc").
--typecheck.allowJsJavaScript 파일의 타입 검사를 허용합니다. 기본적으로 tsconfig.json의 값을 사용합니다.
--typecheck.ignoreSourceErrors소스 파일의 타입 오류를 무시합니다.
--typecheck.tsconfig <경로>사용자 정의 tsconfig 파일의 경로
--project <이름>Vitest 워크스페이스 기능을 사용하는 경우 실행할 프로젝트의 이름. 여러 프로젝트에 대해 반복할 수 있습니다: --project=1 --project=2. --project=packages*와 같은 와일드카드를 사용하여 프로젝트를 필터링할 수도 있습니다.
--slowTestThreshold <임계값>테스트가 느리다고 간주되는 임계값(밀리초) (기본값: 300)
--teardownTimeout <타임아웃>teardown 함수의 기본 타임아웃(밀리초) (기본값: 10000)
--maxConcurrency <number>스위트에서 동시 테스트의 최대 수 (기본값: 5)
--runWatch 모드 비활성화
--segfaultRetry <times>세그폴트로 인해 테스트 스위트가 충돌하는 경우 테스트를 재시도합니다 (기본값: true).
--no-color콘솔 출력에서 색상을 제거합니다.
--clearScreenWatch 모드에서 테스트를 다시 실행할 때 터미널 화면을 지웁니다 (기본값: true).
--standalone테스트를 실행하지 않고 Vitest를 시작합니다. 파일 필터는 무시되고 테스트는 변경 시에만 실행됩니다 (기본값: false).

TIP

Vitest는 CLI 인수에 대해 카멜 케이스와 케밥 케이스를 모두 지원합니다. 예를 들어 --passWithNoTests와 --pass-with-no-tests는 모두 작동합니다 (--no-color와 --inspect-brk는 예외입니다).

Vitest는 또한 값을 지정하는 다양한 방법을 지원합니다. --reporter dot과 --reporter=dot은 모두 유효합니다.

옵션이 값의 배열을 지원하는 경우, 옵션을 여러 번 전달해야 합니다.

vitest --reporter=dot --reporter=default

부울 옵션은 no- 접두사를 사용하여 부정할 수 있습니다. 값을 false로 지정하는 것도 작동합니다.

vitest --no-api
vitest --api=false

changed ​

  • 타입: boolean | string

  • 기본값: false

    변경된 파일에 대해서만 테스트를 실행합니다. 값을 지정하지 않으면 커밋되지 않은 모든 변경 사항(스테이징된 변경 사항 및 스테이징되지 않은 변경 사항 포함)에 대한 테스트를 실행합니다.

    최신 커밋에서 변경된 사항에 대해 테스트를 실행하려면 --changed HEAD~1을 사용할 수 있습니다. 커밋 해시(예: --changed 09a9920) 또는 브랜치 이름(예: --changed origin/develop)을 전달할 수도 있습니다.

    코드 커버리지와 함께 사용하면 보고서에는 변경 사항과 관련된 파일만 포함됩니다.

    forceRerunTriggers 구성 옵션과 함께 사용하면 forceRerunTriggers 목록에 있는 파일 중 하나라도 변경될 경우 전체 테스트 스위트가 실행됩니다. 기본적으로 Vitest 구성 파일과 package.json을 변경하면 항상 전체 스위트가 다시 실행됩니다.

shard ​

  • 타입: string

  • 기본값: 비활성화됨

    <index>/<count> 형식으로 실행할 테스트 스위트 샤드를 지정합니다. 여기서:

    • count는 양의 정수이며, 전체 샤드(분할)의 개수입니다.
    • index는 양의 정수이며, 실행할 샤드의 인덱스입니다 (1부터 시작).

    이 명령은 전체 테스트를 count개의 그룹으로 나누고, 그 중 index에 해당하는 그룹의 테스트만 실행합니다. 예를 들어, 테스트 스위트를 세 개의 샤드로 분할하려면 다음 명령어를 사용하십시오.

    sh
    vitest run --shard=1/3
    vitest run --shard=2/3
    vitest run --shard=3/3

WARNING

--watch 옵션이 활성화된 상태 (기본적으로 개발 환경에서 활성화됨)에서는 이 옵션을 사용할 수 없습니다.

Pager
이전워크스페이스
다음테스트 필터링

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

Copyright (c) 2024 Mithril Contributors

https://v1.vitest.dev/guide/cli

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

Copyright (c) 2024 Mithril Contributors