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

簡介

為何選擇 Vitest

快速入門

功能特色

配置參考

API

測試 API 參考

模擬函式

Vi

expect

expectTypeOf

assert

assertType

指南

命令列介面

測試篩選

測試專案

報告器

程式碼覆蓋率

快照

模擬(Mocking)

平行化

型別測試

Vitest UI

內聯測試

測試上下文

測試註解

測試環境

擴展匹配器

IDE 整合

偵錯

常見錯誤

遷移指南

遷移到 Vitest 3.0

從 Jest 遷移

效能

測試效能分析

提升效能

瀏覽器模式

進階 API

與其他測試執行器的比較

本頁導覽

測試篩選 ​

套件與測試的篩選、逾時設定及並行執行

命令列介面 (CLI) ​

您可以使用 CLI 依名稱篩選測試檔案:

bash
$ vitest basic

此指令將僅執行名稱中包含 basic 的測試檔案,例如:

basic.test.ts
basic-foo.test.ts
basic/foo.test.ts

您也可以使用 -t, --testNamePattern <pattern> 選項,依據測試的完整名稱進行篩選。當您希望根據檔案中定義的測試名稱而非檔案名稱本身進行篩選時,此選項會非常有用。

自 Vitest 3 起,您還可以透過檔案名稱和行號來指定測試:

bash
$ vitest basic/foo.test.ts:10

WARNING

請注意,Vitest 需要完整的檔案路徑才能使此功能正常運作。此路徑可以是相對於目前工作目錄的相對路徑,也可以是絕對檔案路徑。

bash
$ vitest basic/foo.js:10 # ✅
$ vitest ./basic/foo.js:10 # ✅
$ vitest /users/project/basic/foo.js:10 # ✅
$ vitest foo:10 # ❌
$ vitest ./basic/foo:10 # ❌

目前 Vitest 尚不支援範圍表示法:

bash
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌

設定逾時 ​

您可以選擇性地將逾時時間(以毫秒為單位)作為第三個參數傳遞給測試。預設值為 5 秒。

ts
import { test } from 'vitest';

test('name', async () => {
  /* ... */
}, 1000);

勾子(Hooks)同樣可以接收逾時參數,預設值也是 5 秒。

ts
import { beforeAll } from 'vitest';

beforeAll(async () => {
  /* ... */
}, 1000);

跳過套件與測試 ​

使用 .skip 來跳過執行特定的套件或測試。

ts
import { assert, describe, it } from 'vitest';

describe.skip('skipped suite', () => {
  it('test', () => {
    // 此套件已被跳過,不會產生錯誤
    assert.equal(Math.sqrt(4), 3);
  });
});

describe('suite', () => {
  it.skip('skipped test', () => {
    // 此測試已被跳過,不會產生錯誤
    assert.equal(Math.sqrt(4), 3);
  });
});

選擇要執行的套件與測試 ​

使用 .only 來僅執行特定的套件或測試。

ts
import { assert, describe, it } from 'vitest';

// 只有此套件(以及其他標記為 .only 的套件)會被執行
describe.only('suite', () => {
  it('test', () => {
    assert.equal(Math.sqrt(4), 3);
  });
});

describe('another suite', () => {
  it('skipped test', () => {
    // 此測試會被跳過,因為目前處於 .only 模式
    assert.equal(Math.sqrt(4), 3);
  });

  it.only('test', () => {
    // 只有此測試(以及其他標記為 .only 的測試)會被執行
    assert.equal(Math.sqrt(4), 2);
  });
});

待實作的套件與測試 ​

使用 .todo 為待實作的套件和測試建立存根。

ts
import { describe, it } from 'vitest';

// 報告中將顯示此套件的條目
describe.todo('unimplemented suite');

// 報告中將顯示此測試的條目
describe('suite', () => {
  it.todo('unimplemented test');
});
Pager
上一頁命令列介面
下一頁測試專案

以 MIT 授權條款 發布。

版權所有 (c) 2021-Present Vitest Team

https://vitest.dev/guide/filtering

以 MIT 授權條款 發布。

版權所有 (c) 2021-Present Vitest Team