Настройка конфигурационного файла Vitest
Если вы используете Vite и у вас есть vite.config, Vitest прочитает его и применит те же плагины и настройки, что и в вашем приложении Vite. Если вам требуется отдельная конфигурация для тестирования, или ваше основное приложение не использует Vite, вы можете:
- Создать
vitest.config.ts. Этот файл будет иметь приоритет и переопределит конфигурацию изvite.config.ts. (Vitest поддерживает все стандартные расширения JS и TS, но не поддерживаетjson). Это означает, что все параметры изvite.configбудут проигнорированы. - Передать опцию
--configв CLI, например:vitest --config ./path/to/vitest.config.ts - Использовать
process.env.VITESTили свойствоmodeвdefineConfig(которое будет установлено вtest/benchmark, если не переопределено с помощью--mode) для условного применения различной конфигурации вvite.config.ts.
Также необходимо добавить ссылку на типы Vitest, используя triple slash command в начале файла конфигурации. Это требуется, если вы импортируете defineConfig из vite.
Если вы используете defineConfig из vite, вам следует использовать следующий код:
/// <reference types="vitest" />
import { defineConfig } from 'vite';
export default defineConfig({
test: {
// ... Укажите параметры здесь.
},
});При использовании defineConfig из vitest/config вам следует использовать следующий код:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
// ... Укажите параметры здесь.
},
});Вы можете использовать значения по умолчанию для параметров Vitest и расширить их при необходимости:
import { configDefaults, defineConfig } from 'vitest/config';
export default defineConfig({
test: {
exclude: [...configDefaults.exclude, 'packages/template/*'],
},
});Если вы используете отдельный vitest.config.js, вы также можете расширить настройки Vite, взяв их из другого файла конфигурации, если это необходимо:
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default mergeConfig(
viteConfig,
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
);Если ваша конфигурация Vite определена как функция, вы можете определить ее следующим образом:
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default defineConfig(configEnv =>
mergeConfig(
viteConfig(configEnv),
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
)
);