Skip to content
Vitest 3
Main Navigation Руководство & APIКонфигурацияРежим браузераРасширенный API
3.2.0
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

API

Node API

Расширенный API

Vitest API

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

API плагина

Runner API

Репортеры

Метаданные задачи

Руководство

Запуск тестов

Расширение репортеров

Пользовательский пул

Настройка Vitest

Справочник по API тестирования

Содержание страницы

Расширенный API ​

WARNING

В этом руководстве описываются продвинутые API для запуска тестов с помощью скрипта Node.js. Если вы просто хотите запустить тесты, вам, вероятно, это не потребуется. Данный API в основном используется авторами библиотек.

Вы можете импортировать любой метод из точки входа vitest/node.

startVitest ​

ts
function startVitest(
  mode: VitestRunMode,
  cliFilters: string[] = [],
  options: CliOptions = {},
  viteOverrides?: ViteUserConfig,
  vitestOptions?: VitestOptions
): Promise<Vitest>;

Вы можете начать запускать тесты Vitest, используя его Node API:

js
import { startVitest } from 'vitest/node';

const vitest = await startVitest('test');

await vitest.close();

Функция startVitest возвращает экземпляр Vitest при успешном запуске тестов.

Если режим отслеживания изменений не включен, Vitest автоматически вызовет метод close.

Если режим отслеживания изменений включен и терминал поддерживает TTY, Vitest зарегистрирует горячие клавиши в консоли.

Вы можете передать список фильтров вторым аргументом. Vitest будет запускать только тесты, пути к файлам которых содержат хотя бы одну из переданных строк.

Кроме того, вы можете использовать третий аргумент для передачи аргументов командной строки, которые переопределят любые настройки конфигурации тестирования. В качестве альтернативы вы можете передать полную конфигурацию Vite в качестве четвертого аргумента, которая будет иметь приоритет над любыми другими пользовательскими параметрами.

После запуска тестов вы можете извлечь результаты из API state.getTestModules:

ts
import type { TestModule } from 'vitest/node';

const vitest = await startVitest('test');

console.log(vitest.state.getTestModules()); // [TestModule]

TIP

В руководстве "Запуск тестов" приведен пример использования.

createVitest ​

ts
function createVitest(
  mode: VitestRunMode,
  options: CliOptions,
  viteOverrides: ViteUserConfig = {},
  vitestOptions: VitestOptions = {}
): Promise<Vitest>;

Вы можете создать экземпляр Vitest, используя функцию createVitest. Она возвращает тот же экземпляр Vitest, что и startVitest, но не запускает тесты и не проверяет установленные пакеты.

js
import { createVitest } from 'vitest/node';

const vitest = await createVitest('test', {
  watch: false,
});

TIP

В руководстве "Запуск тестов" приведен пример использования.

resolveConfig ​

ts
function resolveConfig(
  options: UserConfig = {},
  viteOverrides: ViteUserConfig = {}
): Promise<{
  vitestConfig: ResolvedConfig;
  viteConfig: ResolvedViteConfig;
}>;

Этот метод обрабатывает конфигурацию с пользовательскими параметрами. Если параметры не заданы, root будет process.cwd().

ts
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

Из-за того, как работает createServer Vite, Vitest должен разрешать конфигурацию во время хука configResolve плагина. Поэтому этот метод на самом деле не используется внутри и предоставляется исключительно как публичный API.

Если вы передадите конфигурацию в API startVitest или createVitest, Vitest все равно разрешит конфигурацию снова.

WARNING

resolveConfig не разрешает projects. Для разрешения конфигураций проектов Vitest требуется запущенный сервер Vite.

Также обратите внимание, что viteConfig.test не будет полностью разрешен. Если вам нужна конфигурация Vitest, вместо этого используйте vitestConfig.

parseCLI ​

ts
function parseCLI(
  argv: string | string[],
  config: CliParseOptions = {}
): {
  filter: string[];
  options: CliOptions;
};

Вы можете использовать этот метод для парсинга аргументов CLI. Он принимает строку (где аргументы разделены одним пробелом) или массив строк аргументов CLI в том же формате, который использует Vitest CLI. Он возвращает фильтр и options, которые вы можете позже передать методам createVitest или startVitest.

ts
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']
Pager
Следующая страницаVitest API

Выпущено на условиях лицензии MIT.

Авторские права (c) 2021-Present Vitest Team

https://vitest.dev/advanced/

Выпущено на условиях лицензии MIT.

Авторские права (c) 2021-Present Vitest Team