Skip to content
Vitest 1
Main Navigation GuideAPIConfigAdvanced
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

Appearance

Sidebar Navigation

Guide

Why Vitest

Getting Started

Features

Workspace

CLI

Test Filtering

Reporters

Coverage

Snapshot

Mocking

Testing Types

Vitest UI

Browser Mode

In-source Testing

Test Context

Environment

Extending Matchers

IDE Integration

Debugging

Comparisons

Migration Guide

Common Errors

Improving Performance

API

Test API Reference

Mock Functions

Vi Utility

Expect

ExpectTypeOf

assert

assertType

Config

Config File

Config Reference

On this page

Common Errors ​

Cannot find module './relative-path' ​

If you receive an error that module cannot be found, it might mean several different things:

    1. You misspelled the path. Make sure the path is correct.
    1. It's possible that your rely on baseUrl in your tsconfig.json. Vite doesn't take into account tsconfig.json by default, so you might need to install vite-tsconfig-paths yourself, if you rely on this behaviour.
ts
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';

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

Or rewrite your path to not be relative to root:

diff
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
    1. Make sure you don't have relative aliases. Vite treats them as relative to the file where the import is instead of the root.
ts
import { defineConfig } from 'vitest/config';

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

Cannot mock "./mocked-file.js" because it is already loaded ​

This error happens when vi.mock method is called on a module that was already loaded. Vitest throws this error because this call has no effect since cached modules are preferred.

Remember that vi.mock is always hoisted - it means that the module was loaded before the test file started executing - most likely in a setup file. To fix the error, remove the import or clear the cache at the end of a setup file - beware that setup file and your test file will reference different modules in that case.

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

sideEffect();

vi.resetModules();

Failed to terminate worker ​

This error can happen when NodeJS's fetch is used with default pool: 'threads'. This issue is tracked on issue Timeout abort can leave process(es) running in the background #3077.

As work-around you can switch to pool: 'forks' or pool: 'vmForks'.

Specify pool in your configuration file:

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

export default defineConfig({
  test: {
    pool: 'forks',
  },
});

Or in your package.json scripts:

diff
scripts: {
-  "test": "vitest"
+  "test": "vitest --pool=forks"
}
Pager
Previous pageMigration Guide
Next pageImproving Performance

Released under the MIT License.

Copyright (c) 2021-Present Vitest Team

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

Released under the MIT License.

Copyright (c) 2021-Present Vitest Team