Skip to content
Vitest 2
Main Navigation 가이드API구성브라우저 모드고급
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 UI

소스 내 테스트

테스트 컨텍스트

테스트 환경

Matcher 확장하기

IDE 통합

디버깅

다른 테스트 러너와의 비교

마이그레이션 가이드

일반적인 오류

Profiling Test Performance

성능 향상

이 페이지에서

일반적인 오류 ​

모듈 './relative-path'를 찾을 수 없습니다 ​

모듈을 찾을 수 없다는 오류는 다음과 같은 여러 가지 원인으로 발생할 수 있습니다:

    1. 경로를 잘못 입력했을 수 있습니다. 경로가 올바른지 확인하십시오.
    1. tsconfig.json의 baseUrl에 의존하고 있을 수 있습니다. Vite는 기본적으로 tsconfig.json을 무시하므로, 이 기능을 사용하려면 vite-tsconfig-paths를 직접 설치해야 합니다.
ts
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';

export default defineConfig({
  plugins: [tsconfigPaths()],
});

또는 경로를 루트에 상대적이지 않도록 수정하십시오:

diff
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
    1. 상대 별칭이 없는지 확인하십시오. Vite는 이를 가져오기가 있는 파일에 상대적인 것으로 처리합니다.
ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    alias: {
      '@/': './src/', 
      '@/': new URL('./src/', import.meta.url).pathname, 
    },
  },
});

"./mocked-file.js"를 모킹할 수 없습니다. 이미 로드되었습니다 ​

이 오류는 vi.mock 메서드가 이미 로드된 모듈에 대해 호출될 때 발생합니다. 캐시된 모듈이 우선시되므로 이 호출은 아무런 효과가 없으며, Vitest는 이를 방지하기 위해 오류를 발생시킵니다.

vi.mock은 항상 호이스팅(hoisting)된다는 점을 기억하십시오. 즉, 모듈이 테스트 파일 실행이 시작되기 전에 로드되었을 가능성이 높으며, 대부분 설정 파일에서 로드됩니다. 오류를 해결하려면 가져오기를 제거하거나 설정 파일 마지막에 캐시를 초기화하십시오. 이 경우 설정 파일과 테스트 파일이 서로 다른 모듈을 참조하게 됨에 유의하십시오.

ts
// setupFile.js
import { vi } from 'vitest';
import { sideEffect } from './mocked-file.js';

sideEffect();

vi.resetModules();

워커 종료 실패 ​

이 오류는 NodeJS의 fetch가 기본 pool: 'threads'와 함께 사용될 때 발생할 수 있습니다. 이 문제는 Timeout abort can leave process(es) running in the background #3077 이슈에서 다루고 있습니다.

해결책으로 pool: 'forks' 또는 pool: 'vmForks'로 전환할 수 있습니다.

ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    pool: 'forks',
  },
});
bash
vitest --pool=forks

세그먼트 오류 및 네이티브 코드 오류 ​

pool: 'threads'에서 네이티브 NodeJS 모듈을 실행할 경우 네이티브 코드에서 다음과 같은 이해하기 어려운 오류가 발생할 수 있습니다.

  • Segmentation fault (core dumped)
  • thread '<unnamed>' panicked at 'assertion failed
  • Abort trap: 6
  • internal error: entered unreachable code

이러한 경우 네이티브 모듈은 다중 스레드 환경에서 안전하게 작동하도록 빌드되지 않았을 가능성이 높습니다. 해결책으로, 테스트 케이스를 여러 node:worker_threads 대신 여러 node:child_process에서 실행하는 pool: 'forks'로 전환할 수 있습니다.

ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    pool: 'forks',
  },
});
bash
vitest --pool=forks
Pager
이전마이그레이션 가이드
다음Profiling Test Performance

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

Copyright (c) 2024 Mithril Contributors

https://v2.vitest.dev/guide/common-errors

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

Copyright (c) 2024 Mithril Contributors