Node API
WARNING
Vitest는 실험적인 비공개 API를 제공합니다. 주요 변경 사항이 SemVer를 따르지 않을 수 있으므로, 사용할 때 Vitest 버전을 고정하십시오.
startVitest
Node API를 사용하여 Vitest 테스트를 시작할 수 있습니다.
import { startVitest } from 'vitest/node';
const vitest = await startVitest('test');
await vitest?.close();startVitest 함수는 테스트를 시작할 준비가 된 Vitest 인스턴스를 반환합니다. 다음 경우에는 undefined를 반환합니다.
- Vitest가
vite패키지를 찾지 못한 경우 (일반적으로 Vitest와 함께 설치됩니다.) - 커버리지가 활성화되어 있고 실행 모드가 'test'이지만, 커버리지 패키지가 설치되지 않은 경우 (
@vitest/coverage-v8또는@vitest/coverage-istanbul) - 필요한 환경 패키지가 설치되지 않은 경우 (
jsdom/happy-dom/@edge-runtime/vm)
undefined가 반환되거나 테스트 실행 중 오류가 발생하면 Vitest는 process.exitCode를 1로 설정합니다.
감시(Watch) 모드가 비활성화된 경우 Vitest는 close 메서드를 호출합니다.
Watch 모드가 활성화되어 있고 터미널이 TTY를 지원하면, Vitest는 콘솔 단축키 명령을 등록합니다.
두 번째 인자로 필터 목록을 전달하여 특정 파일만 테스트하도록 지정할 수 있습니다. Vitest는 전달된 문자열 중 하나라도 파일 경로에 포함된 테스트만 실행합니다.
세 번째 인자로는 CLI 인자를 전달할 수 있으며, 이는 모든 테스트 구성 옵션을 덮어씁니다.
네 번째 인자로는 완전한 Vite 구성 객체를 전달할 수 있으며, 이는 다른 모든 사용자 정의 옵션보다 우선합니다.
createVitest
createVitest 함수를 사용하여 Vitest 인스턴스를 직접 생성할 수 있습니다. 이는 startVitest와 동일한 Vitest 인스턴스를 반환하지만, 테스트 시작 및 필수 패키지 설치 여부 검증은 수행하지 않습니다.
import { createVitest } from 'vitest/node';
const vitest = await createVitest('test', {
watch: false,
});parseCLI
이 메서드를 사용하여 CLI 인수를 파싱할 수 있습니다. 공백 하나로 구분된 문자열 또는 Vitest CLI에서 사용하는 것과 동일한 형식의 CLI 인수 문자열 배열을 허용합니다. 이 메서드는 필터와 options를 반환하며, 나중에 createVitest 또는 startVitest 메서드에 전달할 수 있습니다.
import { parseCLI } from 'vitest/node';
parseCLI('vitest ./files.ts --coverage --browser=chrome');Vitest
Vitest 인스턴스는 실행할 테스트 모드를 지정해야 합니다. 다음 중 하나를 선택할 수 있습니다.
- 런타임 테스트를 실행할 때
test - 벤치마크를 실행할 때
benchmark
mode
test
Test 모드는 test 또는 it 블록 내부의 함수만 실행하고, bench 함수가 발견되면 오류를 발생시킵니다. 이 모드는 테스트 파일을 찾기 위해 설정 파일의 include 및 exclude 옵션을 사용합니다.
benchmark
Benchmark 모드는 bench 함수만 실행하고, test 또는 it 블록이 발견되면 오류를 발생시킵니다. 이 모드는 벤치마크 파일을 찾기 위해 설정 파일의 benchmark.include 및 benchmark.exclude 옵션을 사용합니다.
start
start 메서드를 사용해 테스트 또는 벤치마크 실행을 시작할 수 있습니다. 문자열 배열을 전달하여 특정 테스트 파일만 실행하도록 필터링할 수 있습니다.