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,
});
Vitest
Vitest 實例需要指定測試模式,可以是:
test
:用於運行單元測試benchmark
:用於運行基準測試typecheck
:用於運行類型檢查
mode
test
測試模式只會調用 test
或 it
內部的函數,並在遇到 bench
時拋出錯誤。此模式使用配置中的 include
和 exclude
選項來查找測試文件。
benchmark
基準測試模式執行 bench
函數,並在遇到 test
或 it
時拋出錯誤。此模式使用配置中的 benchmark.include
和 benchmark.exclude
選項來查找基準測試文件。
typecheck
類型檢查模式不會執行測試。它只分析類型並提供摘要報告。此模式使用配置中的 typecheck.include
和 typecheck.exclude
選項來查找要分析的文件。
start
您可以使用 start
方法開始運行測試或基準測試。您可以傳遞一個字符串數組來過濾測試文件。