Skip to content
Vitest 1
Main Navigation РуководствоAPIКонфигурацияПродвинутый
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

Режим браузера

In-source тестирование (Тестирование в исходном коде)

Контекст теста

Тестовая среда

Расширение проверок (matchers)

Интеграции с IDE

Отладка

Сравнения с другими тестовыми фреймворками

Руководство по миграции

Распространенные ошибки

Улучшение производительности

API

Справочник по Test API

Mock-функции

Vitest

expect

expectTypeOf

assert

assertType

Конфигурация

Настройка конфигурационного файла Vitest

Настройка Vitest

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

In-source тестирование (Тестирование в исходном коде) ​

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

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

Настройка ​

Для начала добавьте блок if (import.meta.vitest) в конец вашего исходного файла и напишите несколько тестов внутри него. Например:

ts
// src/index.ts

// реализация
export function add(...args: number[]) {
  return args.reduce((a, b) => a + b, 0);
}

// встроенные тесты
if (import.meta.vitest) {
  const { it, expect } = import.meta.vitest;
  it('add', () => {
    expect(add()).toBe(0);
    expect(add(1)).toBe(1);
    expect(add(1, 2, 3)).toBe(6);
  });
}

Обновите конфигурацию includeSource в Vitest, чтобы включить файлы из директории src/:

ts
// vite.config.ts
/// <reference types="vitest" />
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    includeSource: ['src/**/*.{js,ts}'], 
  },
});

Теперь можно начинать тестирование!

bash
$ npx vitest

Production build (Сборка для production) ​

Для production сборки необходимо установить параметр define в вашем файле конфигурации, чтобы бандлер мог выполнить удаление неиспользуемого кода (tree shaking). Например, в Vite:

ts
// vite.config.ts
/// <reference types="vitest" />
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    includeSource: ['src/**/*.{js,ts}'],
  },
  define: {
    'import.meta.vitest': 'undefined', 
  }, 
});

Другие сборщики (Bundlers) ​

unbuild
ts
// build.config.ts
import { defineBuildConfig } from 'unbuild';

export default defineBuildConfig({
  replace: {
    'import.meta.vitest': 'undefined', 
  }, 
  // other options
});

Узнайте больше: unbuild

rollup
ts
// rollup.config.js
import replace from '@rollup/plugin-replace'; 

export default {
  plugins: [
    replace({
      'import.meta.vitest': 'undefined', 
    }), 
  ],
  // other options
};

Узнайте больше: Rollup

TypeScript ​

Чтобы включить поддержку TypeScript для import.meta.vitest, добавьте vitest/importMeta в массив types в вашем tsconfig.json:

json
// tsconfig.json
{
  "compilerOptions": {
    "types": [
      "vitest/importMeta"
    ]
  }
}

Обратитесь к test/import-meta для получения полного примера.

Заметки ​

Эта функция может быть полезна для:

  • Модульного тестирования небольших функций или утилит
  • Быстрого прототипирования
  • Встроенных утверждений (assertions)

Для более сложных тестов, таких как тестирование компонентов или сквозное (E2E) тестирование, рекомендуется использовать отдельные файлы.

Pager
Предыдущая страницаРежим браузера
Следующая страницаКонтекст теста

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

Авторские права (c) 2024 Mithril Contributors

https://v1.vitest.dev/guide/in-source

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

Авторские права (c) 2024 Mithril Contributors