고급 API
WARNING
이 가이드는 Node.js 스크립트를 통해 테스트를 실행하기 위한 고급 API 목록입니다. 단순히 테스트를 실행하려는 경우, 이 가이드는 필요하지 않을 수 있으며, 주로 라이브러리 개발자가 사용합니다.
vitest/node 엔트리 포인트를 통해 모든 메서드를 임포트할 수 있습니다.
startVitest
function startVitest(
mode: VitestRunMode,
cliFilters: string[] = [],
options: CliOptions = {},
viteOverrides?: ViteUserConfig,
vitestOptions?: VitestOptions
): Promise<Vitest>;Node API를 사용하여 Vitest 테스트를 실행할 수 있습니다:
import { startVitest } from 'vitest/node';
const vitest = await startVitest('test');
await vitest.close();startVitest 함수는 테스트를 시작할 수 있는 경우 Vitest 인스턴스를 반환합니다.
감시 모드가 활성화되지 않으면 Vitest는 close 메서드를 자동으로 호출합니다.
감시 모드가 활성화되어 있고 터미널이 TTY를 지원하면 Vitest는 콘솔 단축키를 설정합니다.
두 번째 인수로 필터 목록을 전달할 수 있습니다. Vitest는 파일 경로에 전달된 문자열 중 하나 이상을 포함하는 테스트만 실행합니다.
또한, 세 번째 인수를 사용하여 CLI 인자를 전달할 수 있으며, 이 인자는 모든 테스트 구성 옵션을 덮어씁니다. 또는 네 번째 인수로 전체 Vite 구성을 전달할 수 있으며, 이 구성은 다른 모든 사용자 정의 옵션보다 우선합니다.
테스트 실행 후, state.getTestModules API를 통해 결과를 얻을 수 있습니다:
import type { TestModule } from 'vitest/node';
const vitest = await startVitest('test');
console.log(vitest.state.getTestModules()); // [TestModule]TIP
"테스트 실행" 가이드에 사용 예시가 있습니다.
createVitest
function createVitest(
mode: VitestRunMode,
options: CliOptions,
viteOverrides: ViteUserConfig = {},
vitestOptions: VitestOptions = {}
): Promise<Vitest>;createVitest 함수를 사용하여 Vitest 인스턴스를 생성할 수 있습니다. startVitest와 동일한 Vitest 인스턴스를 반환하지만, 테스트를 시작하거나 설치된 패키지를 검증하지 않습니다.
import { createVitest } from 'vitest/node';
const vitest = await createVitest('test', {
watch: false,
});TIP
"테스트 실행" 가이드에 사용 예시가 있습니다.
resolveConfig
function resolveConfig(
options: UserConfig = {},
viteOverrides: ViteUserConfig = {}
): Promise<{
vitestConfig: ResolvedConfig;
viteConfig: ResolvedViteConfig;
}>;이 메서드는 사용자 정의 매개변수를 사용하여 구성을 해석합니다. 매개변수가 주어지지 않으면 root는 process.cwd()가 됩니다.
import { resolveConfig } from 'vitest/node';
// vitestConfig는 해석된 "test" 속성만 포함합니다.
const { vitestConfig, viteConfig } = await resolveConfig({
mode: 'custom',
configFile: false,
resolve: {
conditions: ['custom'],
},
test: {
setupFiles: ['/my-setup-file.js'],
pool: 'threads',
},
});INFO
Vite의 createServer 작동 방식 때문에 Vitest는 플러그인의 configResolve 훅에서 구성을 해석해야 합니다. 따라서 이 메서드는 실제로 내부적으로 사용되지 않으며 공개 API로만 노출됩니다.
startVitest 또는 createVitest API에 구성을 전달하더라도 Vitest는 구성을 다시 해석합니다.
WARNING
resolveConfig는 projects를 해결하지 않습니다. 프로젝트 설정을 해석하려면 Vitest에 내장된 Vite 서버가 필요합니다.
또한 viteConfig.test는 완전히 해석되지 않습니다. Vitest 구성이 필요한 경우 vitestConfig를 대신 사용하십시오.
parseCLI
function parseCLI(
argv: string | string[],
config: CliParseOptions = {}
): {
filter: string[];
options: CliOptions;
};이 메서드를 사용하여 CLI 인자를 파싱할 수 있습니다. 단일 공백으로 구분된 문자열 또는 Vitest CLI가 사용하는 것과 동일한 형식의 CLI 인자 배열을 허용합니다. 이 메서드는 필터와 options를 반환하며, 이들을 나중에 createVitest 또는 startVitest 메서드에 전달할 수 있습니다.
import { parseCLI } from 'vitest/node';
const result = parseCLI('vitest ./files.ts --coverage --browser=chrome');
result.options;
// {
// coverage: { enabled: true },
// browser: { name: 'chrome', enabled: true }
// }
result.filter;
// ['./files.ts']