命令列界面
命令
vitest
在當前目錄啟動 Vitest。在開發環境中會自動進入監聽模式,在 CI 環境中會進入執行模式。
您可以傳遞額外的參數作為要執行的測試檔案的篩選條件。例如:
vitest foobar
只會執行路徑中包含 foobar
的測試檔案。此篩選器僅檢查是否包含,不支援正規表示式或 glob 模式(除非您的終端在 Vitest 收到篩選器之前處理它)。
vitest run
執行一次,不進入監聽模式。
vitest watch
執行所有測試套件,並監聽變更,在變更時重新執行測試。與不帶參數呼叫 vitest
相同。在 CI 環境中會自動切換到 vitest run
。
vitest dev
vitest watch
的別名。
vitest related
僅執行針對一系列原始碼檔案的測試。適用於靜態引入(例如,import('./index.ts')
或 import index from './index.ts
),但不適用於動態引入(例如,import(filepath)
)。所有檔案都應該相對於根目錄。
可與 lint-staged
或您的 CI 設定一起使用。
vitest related /src/index.ts /src/hello-world.js
TIP
別忘了 Vitest 預設是啟用監聽模式執行。如果您使用像 lint-staged
這樣的工具,您也應該傳遞 --run
選項,以便命令能夠正常結束。
// .lintstagedrc.js
export default {
'*.{js,ts}': 'vitest related --run',
};
vitest bench
僅執行 基準測試,比較效能結果。
選項
選項 | |
---|---|
-v, --version | 顯示版本號 |
-r, --root <path> | 定義專案根目錄 |
-c, --config <path> | 設定檔路徑 |
-u, --update | 更新快照 |
-w, --watch | 智慧型 & 即時監聽模式 |
-t, --testNamePattern <pattern> | 執行完整名稱符合模式的測試 |
--dir <path> | 掃描測試檔案的根目錄 |
--ui | 啟用 UI |
--open | 如果已啟用,會自動開啟 UI(預設:true ) |
--api [api] | 提供 API 服務,可用的選項包括:--api.port <port> 、--api.host [host] 和 --api.strictPort |
--threads | 啟用多執行緒(預設:true ) |
--single-thread | 在單個執行緒中執行測試,需啟用 --threads (預設:false ) |
--experimental-vm-threads | 在 worker 池中使用 VM 隔離執行測試(預設:false ) |
--experimental-vm-worker-memory-limit | 設定 worker 允許的最大記憶體。達到時,將建立一個新的 worker |
--silent | 靜默顯示測試的主控台輸出 |
--isolate | 為每個測試檔案隔離環境(預設:true ) |
--reporter <name> | 選擇報告器:default 、verbose 、dot 、junit 、json 或指定自訂報告器的路徑 |
--outputFile <filename/-s> | 當同時指定 --reporter=json 或 --reporter=junit 選項時,將測試結果寫入檔案中。透過 [cac 的點記法],您可以為多個報告器指定個別的輸出 |
--coverage | 啟用測試覆蓋率報告 |
--run | 不啟用監聽模式 |
--mode | 覆蓋 Vite 模式(預設:test ) |
--mode <name> | 覆蓋 Vite 模式(預設:test ) |
--globals | 全域性注入 API |
--dom | 使用 happy-dom 模擬瀏覽器的 API |
--browser [options] | 在 瀏覽器 中執行測試(預設:false ) |
--environment <env> | 執行環境(預設:node ) |
--passWithNoTests | 當未找到測試時通過 |
--logHeapUsage | 顯示每個測試的堆積記憶體使用情況 |
--allowOnly | 允許標記為 only 的測試和套件 (在 CI 環境中預設為 false,其他情況則為 true) |
--dangerouslyIgnoreUnhandledErrors | 忽略任何未處理的錯誤 |
--changed [since] | 執行受變更檔案影響的測試 (預設:false)。請參閱 說明文件 |
--shard <shard> | 在指定的分片中執行測試 |
--sequence | 指定執行測試的順序。使用 [cac 的點記法] 來指定選項(例如,使用 --sequence.shuffle 以隨機順序執行測試,或 --sequence.shuffle --sequence.seed SEED_ID 以執行特定順序) |
--no-color | 從主控台輸出中去除顏色 |
--inspect | 啟用 Node.js 除錯器 |
--inspect-brk | 啟用帶斷點的 Node.js 除錯器 |
--bail <number> | 當指定數量的測試失敗時停止執行測試 |
--retry <times> | 如果測試失敗,則重試指定的次數 |
-h, --help | 顯示所有可用的 CLI 選項 |
TIP
Vitest 支援 CLI 參數的駝峰式和連字號式寫法。例如,--passWithNoTests
和 --pass-with-no-tests
都是有效的(--no-color
和 --inspect-brk
是例外)。
Vitest 也支援以不同方式指定值:--reporter dot
和 --reporter=dot
都是有效的。
如果選項支援值陣列,您需要多次指定該選項:
vitest --reporter=dot --reporter=default
布林選項可以使用 no-
前綴來反轉。將值指定為 false
也是有效的:
vitest --no-api
vitest --api=false
changed
類型:
boolean | string
預設值: false
僅針對已變更的檔案執行測試。如果未提供值,將針對未提交的變更 (包含已暫存和未暫存的變更) 執行測試。
若要針對上次提交所做的變更執行測試,可以使用
--changed HEAD~1
。您也可以傳遞提交雜湊值或分支名稱。如果與
forceRerunTriggers
配置選項一起使用,且找到符合的項目,則會執行整個測試套件。
shard
類型:
string
預設值: 已停用
要執行的測試套件分片,格式為
<index>
/<count>
,其中count
是一個正整數,表示分割部分的計數index
是一個正整數,表示分割部分的索引
此命令會將所有測試分割為
count
個相同的部分,並且只會執行位於index
部分中的測試。例如,若要將您的測試套件分成三個部分,請使用以下命令:shvitest run --shard=1/3 vitest run --shard=2/3 vitest run --shard=3/3
WARNING
您不能在啟用 --watch
的情況下使用此選項 (此選項在開發環境中預設為啟用 --watch
)。