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

报告器 API

任务元数据

指南

运行测试

扩展报告器

自定义测试池

配置 Vitest

测试 API 参考

页面导航

TestModule ​

TestModule 类代表单个项目中的测试模块。该类仅在主线程中可用。如果您正在处理运行时任务,请参阅"Runner API"。

TestModule 实例始终具有 type 属性,其值为 module。这可用于区分不同的任务类型:

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

扩展测试套件方法

TestModule 类继承了 TestSuite 中的所有方法和属性。本指南仅列出 TestModule 独有的方法和属性。

moduleId ​

这通常是一个绝对的 Unix 文件路径(即使在 Windows 上也是如此)。如果文件不在磁盘上,它可能是一个虚拟 ID。此值对应于 Vite 的 ModuleGraph ID。

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 设置测试工具(运行器、模拟等)所需的时间。
   */
  readonly prepareDuration: number;
  /**
   * 导入测试模块所需的时间。
   * 这包括导入模块中的所有内容并执行套件回调。
   */
  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