跳到內容

節點 API

警告

Vitest 公開實驗性的私人 API。重大變更可能不會遵循 SemVer,請在使用時固定 Vitest 的版本。

startVitest

你可以使用其節點 API 開始執行 Vitest 測試

js
import {  } from 'vitest/node'

const  = await ('test')

await ?.()

startVitest 函數會在可以開始測試時傳回 Vitest 實例。如果發生下列情況之一,它會傳回 undefined

  • Vitest 找不到 vite 套件(通常與 Vitest 一起安裝)
  • 如果啟用覆蓋率,且執行模式為「測試」,但未安裝覆蓋率套件(@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 實例,但它不會啟動測試,也不會驗證已安裝的套件。

js
import {  } from 'vitest/node'

const  = await ('test', {
  : false,
})

parseCLI

你可以使用這個方法來解析 CLI 參數。它接受一個字串(參數以單一空格分隔)或一個字串陣列,其中包含 Vitest CLI 使用的相同格式的 CLI 參數。它會傳回一個篩選器和 options,你稍後可以將它們傳遞給 createViteststartVitest 方法。

ts
import {  } from 'vitest/node'

('vitest ./files.ts --coverage --browser=chrome')

Vitest

Vitest 實例需要目前的測試模式。它可以是

  • test 在執行執行時期測試時
  • benchmark 在執行基準測試時

mode

test

測試模式只會呼叫 testit 內部的函式,並在遇到 bench 時擲回錯誤。此模式使用設定檔中的 includeexclude 選項來尋找測試檔案。

benchmark

基準測試模式會呼叫 bench 函式,並在遇到 testit 時擲回錯誤。此模式使用設定檔中的 benchmark.includebenchmark.exclude 選項來尋找基準測試檔案。

start

你可以使用 start 方法開始執行測試或基準測試。你可以傳入一個字串陣列來篩選測試檔案。