Настройка конфигурационного файла 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/*'],
},
})
)
);