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

執行器 API

報告器 API

任務中繼資料

指南

執行測試

擴展報告器

自訂 Pool

配置參考

測試 API 參考

本頁導覽

TestModule ​

TestModule 類別代表單一專案中的模組。此類別僅在主執行緒中可用。如果您正在處理執行期任務,請參閱 "Runner API"。

TestModule 實例始終具有 type 屬性,其值為 module。您可以使用它來區分不同的任務類型:

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

擴充套件方法

TestModule 類別繼承了 TestSuite 的所有方法和屬性。本指南將僅列出 TestModule 獨有的方法和屬性。

moduleId ​

這通常是絕對的 Unix 檔案路徑(即使在 Windows 上也是如此)。如果檔案不在磁碟上,則可以使用虛擬識別碼。此值對應於 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