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 тестирования

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

TestModule ​

Класс TestModule представляет собой отдельный модуль в рамках одного проекта. Этот класс доступен исключительно в основном потоке. Для работы с задачами времени выполнения, пожалуйста, обратитесь к разделу "Runner API".

Экземпляр TestModule всегда имеет свойство type со значением module. Это позволяет различать различные типы задач:

ts
if (task.type === 'module') {
  task; // TestModule
}

Расширение методов TestSuite

Класс TestModule наследует все методы и свойства от TestSuite. В данном руководстве будут перечислены только методы и свойства, уникальные для TestModule.

moduleId ​

Обычно это абсолютный путь к файлу в формате Unix (даже в Windows). В случае, если файл не находится на диске, это может быть виртуальный идентификатор. Это значение соответствует идентификатору ModuleGraph в Vite.

ts
'C:/Users/Documents/project/example.test.ts'; // ✅
'/Users/mac/project/example.test.ts'; // ✅
'C:\\Users\\Documents\\project\\example.test.ts'; // ❌

state ​

ts
function state(): TestModuleState;

Работает аналогично testSuite.state(), но может возвращать queued, если выполнение модуля еще не началось.

meta 3.1.0+ ​

ts
function meta(): TaskMeta;

Произвольные метаданные, которые были добавлены к модулю в процессе его выполнения или сбора. Метаданные могут быть прикреплены путем присвоения свойства объекту task.meta во время выполнения теста:

ts
import { test } from 'vitest';

describe('the validation works correctly', task => {
  // Установить "decorated" во время сбора
  task.file.meta.decorated = false;

  test('some test', ({ task }) => {
    // Установить "decorated" во время выполнения теста;
    // оно будет доступно только в хуке onTestCaseReady
    task.file.meta.decorated = false;
  });
});

TIP

Если метаданные были прикреплены во время сбора (вне функции test), они будут доступны в хуке onTestModuleCollected пользовательского репортера.

diagnostic ​

ts
function diagnostic(): ModuleDiagnostic;

Полезная информация о модуле, включая продолжительность, использование памяти и т. д. Если модуль еще не был выполнен, все диагностические значения будут возвращать 0.

ts
interface ModuleDiagnostic {
  /**
   * Время, необходимое для импорта и инициализации окружения.
   */
  readonly environmentSetupDuration: number;
  /**
   * Время, необходимое Vitest для настройки тестовой среды (runner, моки и т.д.).
   */
  readonly prepareDuration: number;
  /**
   * Время, необходимое для импорта тестового модуля.
   * Включает импорт всего содержимого модуля и выполнение callback-функций тестового набора.
   */
  readonly collectDuration: number;
  /**
   * Время, необходимое для импорта модуля настройки.
   */
  readonly setupDuration: number;
  /**
   * Суммарная продолжительность всех тестов и хуков в модуле.
   */
  readonly duration: number;
  /**
   * Объем памяти, используемый модулем, в байтах.
   * Это значение доступно только в том случае, если тест был выполнен с флагом `logHeapUsage`.
   */
  readonly heap: number | undefined;
  /**
   * Время, затраченное на импорт каждой неэкстернализированной зависимости, которую обработал Vitest.
   */
  readonly importDurations: Record<string, ImportDuration>;
}

/** Время, затраченное на импорт и выполнение неэкстернализированного файла. */
interface ImportDuration {
  /** Время, затраченное на импорт и выполнение самого файла, не считая всех неэкстернализированных импортов, которые делает файл. */
  selfTime: number;

  /** Время, затраченное на импорт и выполнение файла и всех его импортов. */
  totalTime: number;
}
Pager
Предыдущая страницаTestSuite
Следующая страницаTestCollection

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

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

https://vitest.dev/advanced/api/test-module

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

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