Node API
WARNING
Vitest 公開實驗性的私有 API。重大變更可能不遵循語義版本控制(semver),使用時請鎖定 Vitest 版本。
startVitest
您可以使用其 Node API 開始執行 Vitest 測試程式:
import { startVitest } from 'vitest/node';
const vitest = await startVitest('test');
await vitest?.close();若成功開始測試,startVitest 函數將返回 Vitest 實例。如果發生以下情況之一,則返回 undefined:
- Vitest 找不到
vite套件(通常與 Vitest 一起安裝) - 如果啟用了覆蓋率(coverage)並且運行模式為 "test",但未安裝覆蓋率套件(例如
@vitest/coverage-v8或@vitest/coverage-istanbul) - 如果未安裝環境套件(
jsdom/happy-dom/@edge-runtime/vm)
如果返回 undefined 或測試在運行期間失敗,Vitest 會將 process.exitCode 設置為 1。
如果未啟用監聽模式,Vitest 會調用 close 方法。
如果啟用了監聽模式並且終端支持 TTY,Vitest 將啟用控制台快捷指令。
您可以將過濾器列表作為第二個參數傳入。Vitest 將僅運行在其文件路徑中包含至少一個傳入字串的測試。
此外,您可以使用第三個參數傳入 CLI 參數,這些參數將覆蓋任何測試配置選項。
或者,您可以將完整的 Vite 配置作為第四個參數傳入,它將優先於任何其他使用者定義的選項。
createVitest
您可以使用 createVitest 函數自行建立 Vitest 實例。它返回與 startVitest 相同的 Vitest 實例,但它不啟動測試,也不驗證已安裝的套件。
import { createVitest } from 'vitest/node';
const vitest = await createVitest('test', {
watch: false,
});parseCLI
您可以使用此方法來解析 CLI 參數。它接受一個字串(其中參數由單個空格分隔)或一個字串陣列,該陣列包含與 Vitest CLI 使用的格式相同的 CLI 參數。它返回一個過濾器和 options,您可以稍後將它們傳遞給 createVitest 或 startVitest 方法。
import { parseCLI } from 'vitest/node';
parseCLI('vitest ./files.ts --coverage --browser=chrome');Vitest
Vitest 實例需要指定測試模式,可以是:
test:用於運行單元測試benchmark:用於運行基準測試
mode
test
測試模式只會調用 test 或 it 內部的函數,並在遇到 bench 時拋出錯誤。此模式使用配置中的 include 和 exclude 選項來查找測試文件。
benchmark
基準測試模式執行 bench 函數,並在遇到 test 或 it 時拋出錯誤。此模式使用配置中的 benchmark.include 和 benchmark.exclude 選項來查找基準測試文件。
start
您可以使用 start 方法開始運行測試或基準測試。您可以傳遞一個字符串數組來過濾測試文件。