命令列介面
命令
vitest
在目前目錄中啟動 Vitest。在開發環境中會自動進入監控模式,在 CI(或非互動式終端機)中則會自動進入執行模式。
您可以傳遞一個額外參數作為要執行測試檔案的過濾器。例如:
vitest foobar
將只執行路徑中包含 foobar
的測試檔案。此過濾器僅檢查是否包含指定字串,不支援正規表達式或 glob 模式(除非您的終端機在 Vitest 接收過濾器之前已先行處理)。
自 Vitest 3 起,您也可以透過檔案名稱和行號指定測試:
$ vitest basic/foo.test.ts:10
WARNING
請注意,Vitest 需要完整的檔案名稱才能使此功能正常運作。它可以是相對於目前工作目錄的相對路徑,也可以是絕對檔案路徑。
$ 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 也不支援範圍:
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌
vitest run
執行一次測試,不進入監控模式。
vitest watch
執行所有測試套件,但監控變更並在變更時重新執行測試。與不帶參數執行 vitest
相同。在 CI 或 stdin 不是 TTY(非互動式環境)時,將退回為 vitest run
。
vitest dev
是 vitest watch
的別名。
vitest related
只執行與指定來源檔案相關的測試。適用於靜態引入(例如,import('./index.js')
或 import index from './index.js
),但不適用於動態引入(例如,import(filepath)
)。所有檔案路徑都應相對於專案根目錄。
適合與 lint-staged
或您的 CI 設定搭配使用。
vitest related /src/index.ts /src/hello-world.js
TIP
別忘了 Vitest 預設以監控模式執行。如果您使用 lint-staged
等工具,您也應該傳遞 --run
選項,以便命令可以正常退出。
export default {
'*.{js,ts}': 'vitest related --run',
};
vitest bench
只執行 效能基準測試,用於比較效能結果。
vitest init
vitest init <name>
可用於設定專案組態。目前,它只支援 browser
值:
vitest init browser
vitest list
vitest list
命令繼承所有 vitest
選項,以顯示所有匹配測試的列表。此命令會忽略 reporters
選項。預設情況下,它將顯示所有匹配檔案過濾器和名稱模式的測試名稱:
vitest list filename.spec.ts -t="some-test"
describe > some-test
describe > some-test > test 1
describe > some-test > test 2
您可以傳遞 --json
選項以 JSON 格式輸出測試或將其儲存到單獨的檔案中:
vitest list filename.spec.ts -t="some-test" --json=./file.json
如果 --json
選項沒有指定值,它會將 JSON 輸出到 stdout。
您也可以傳遞 --filesOnly
選項以只顯示測試檔案:
vitest list --filesOnly
tests/test1.test.ts
tests/test2.test.ts
選項
TIP
Vitest 支援 CLI 參數的駝峰式命名和連字號命名(kebab-case)。例如,--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
root
- CLI:
-r, --root <path>
- Config: root
專案根目錄。
config
- CLI:
-c, --config <path>
設定檔路徑。
update
- CLI:
-u, --update
- Config: update
更新快照。
watch
- CLI:
-w, --watch
- Config: watch
啟用監控模式。
testNamePattern
- CLI:
-t, --testNamePattern <pattern>
- Config: testNamePattern
執行名稱符合指定正規表達式模式的測試。
dir
- CLI:
--dir <path>
- Config: dir
掃描測試檔案的根目錄。
ui
- CLI:
--ui
- Config: ui
啟用使用者介面 (UI)。
open
- CLI:
--open
- Config: open
自動開啟使用者介面 (UI) (預設值: !process.env.CI
)。
api.port
- CLI:
--api.port [port]
指定伺服器埠號。若該埠號已被佔用,Vite 將自動嘗試下一個可用埠號,因此這可能不是伺服器最終監聽的實際埠號。若設為 true
,則將設定為 51204
。
api.host
- CLI:
--api.host [host]
指定伺服器應監聽的 IP 位址。將此設為 0.0.0.0
或 true
以監聽所有位址,包括區域網路和公共位址。
api.strictPort
- CLI:
--api.strictPort
設為 true
以在埠號已被佔用時直接退出,而非自動嘗試下一個可用埠號。
silent
- CLI:
--silent [value]
- Config: silent
靜音測試的控制台輸出。使用 'passed-only'
僅顯示失敗測試的日誌。
hideSkippedTests
- CLI:
--hideSkippedTests
隱藏被跳過的測試日誌。
reporters
- CLI:
--reporter <name>
- Config: reporters
指定報告器(default, basic, blob, verbose, dot, json, tap, tap-flat, junit, hanging-process, github-actions)。
outputFile
- CLI:
--outputFile <filename/-s>
- Config: outputFile
當指定支援的報告器時,將測試結果寫入檔案。對於多個報告器的個別輸出,請使用 cac 的點表示法(範例:--outputFile.tap=./tap.txt
)。
coverage.all
- CLI:
--coverage.all
- Config: coverage.all
是否將所有檔案(包括未測試的檔案)包含在覆蓋率報告中。
coverage.provider
- CLI:
--coverage.provider <name>
- Config: coverage.provider
選擇用於覆蓋率收集的工具,可用值為:「v8」、「istanbul」和「custom」。
coverage.enabled
- CLI:
--coverage.enabled
- Config: coverage.enabled
啟用覆蓋率收集。可以使用 --coverage
CLI 選項進行覆寫(預設值: false
)。
coverage.include
- CLI:
--coverage.include <pattern>
- Config: coverage.include
以 glob 模式包含在覆蓋率中的檔案。使用多個模式時,可以多次指定(預設值: **
)。
coverage.exclude
- CLI:
--coverage.exclude <pattern>
- Config: coverage.exclude
從覆蓋率中排除的檔案。使用多個擴展名時,可以多次指定(預設值: 參閱 coverage.exclude
)。
coverage.extension
- CLI:
--coverage.extension <extension>
- Config: coverage.extension
包含在覆蓋率中的擴展名。使用多個擴展名時,可以多次指定(預設值: [".js", ".cjs", ".mjs", ".ts", ".mts", ".tsx", ".jsx", ".vue", ".svelte"]
)。
coverage.clean
- CLI:
--coverage.clean
- Config: coverage.clean
在執行測試前清除覆蓋率結果(預設值: true
)。
coverage.cleanOnRerun
- CLI:
--coverage.cleanOnRerun
- Config: coverage.cleanOnRerun
在監控模式下重新執行時清除覆蓋率報告(預設值: true
)。
coverage.reportsDirectory
- CLI:
--coverage.reportsDirectory <path>
- Config: coverage.reportsDirectory
寫入覆蓋率報告的目錄(預設值: ./coverage
)。
coverage.reporter
- CLI:
--coverage.reporter <name>
- Config: coverage.reporter
要使用的覆蓋率報告器。詳情請參閱 coverage.reporter
(預設值: ["text", "html", "clover", "json"]
)。
coverage.reportOnFailure
- CLI:
--coverage.reportOnFailure
- Config: coverage.reportOnFailure
即使測試失敗也生成覆蓋率報告(預設值: false
)。
coverage.allowExternal
- CLI:
--coverage.allowExternal
- Config: coverage.allowExternal
收集專案根目錄外檔案的覆蓋率(預設值: false
)。
coverage.skipFull
- CLI:
--coverage.skipFull
- Config: coverage.skipFull
不顯示語句、分支和函數覆蓋率為 100% 的檔案(預設值: false
)。
coverage.thresholds.100
- CLI:
--coverage.thresholds.100
- Config: coverage.thresholds.100
將所有覆蓋率閾值設定為 100 的快捷方式(預設值: false
)。
coverage.thresholds.perFile
- CLI:
--coverage.thresholds.perFile
- Config: coverage.thresholds.perFile
按檔案檢查閾值。詳情請參閱 --coverage.thresholds.lines
、--coverage.thresholds.functions
、--coverage.thresholds.branches
和 --coverage.thresholds.statements
(預設值: false
)。
coverage.thresholds.autoUpdate
- CLI:
--coverage.thresholds.autoUpdate
- Config: coverage.thresholds.autoUpdate
當當前覆蓋率高於配置的閾值時,將閾值值:「lines」、「functions」、「branches」和「statements」更新到設定檔(預設值: false
)。
coverage.thresholds.lines
- CLI:
--coverage.thresholds.lines <number>
行數閾值。詳情請參閱 istanbuljs。此選項不適用於自訂提供者。
coverage.thresholds.functions
- CLI:
--coverage.thresholds.functions <number>
函數閾值。詳情請參閱 istanbuljs。此選項不適用於自訂提供者。
coverage.thresholds.branches
- CLI:
--coverage.thresholds.branches <number>
分支閾值。詳情請參閱 istanbuljs。此選項不適用於自訂提供者。
coverage.thresholds.statements
- CLI:
--coverage.thresholds.statements <number>
語句閾值。詳情請參閱 istanbuljs。此選項不適用於自訂提供者。
coverage.ignoreClassMethods
- CLI:
--coverage.ignoreClassMethods <name>
- Config: coverage.ignoreClassMethods
要忽略覆蓋率的類別方法名稱陣列。詳情請參閱 istanbuljs。此選項僅適用於 istanbul 提供者(預設值: []
)。
coverage.processingConcurrency
- CLI:
--coverage.processingConcurrency <number>
- Config: coverage.processingConcurrency
處理覆蓋率結果時使用的並行限制(預設值為 20 和 CPU 數量的最小值)。
coverage.customProviderModule
- CLI:
--coverage.customProviderModule <path>
- Config: coverage.customProviderModule
指定自訂覆蓋率提供者模組的名稱或路徑。詳情請參閱 自訂覆蓋率提供者。此選項僅適用於自訂提供者。
coverage.watermarks.statements
- CLI:
--coverage.watermarks.statements <watermarks>
語句的高低標記,格式為 <high>,<low>
。
coverage.watermarks.lines
- CLI:
--coverage.watermarks.lines <watermarks>
行數的高低標記,格式為 <high>,<low>
。
coverage.watermarks.branches
- CLI:
--coverage.watermarks.branches <watermarks>
分支的高低標記,格式為 <high>,<low>
。
coverage.watermarks.functions
- CLI:
--coverage.watermarks.functions <watermarks>
函數的高低標記,格式為 <high>,<low>
。
mode
- CLI:
--mode <name>
- Config: mode
覆寫 Vite 模式(預設值: test
或 benchmark
)。
workspace
- CLI:
--workspace <path>
- Config: workspace
[已棄用] 工作區設定檔的路徑。
isolate
- CLI:
--isolate
- Config: isolate
隔離執行每個測試檔案。若要停用隔離,請使用 --no-isolate
(預設值: true
)。
globals
- CLI:
--globals
- Config: globals
全域注入 API。
dom
- CLI:
--dom
使用 happy-dom 模擬瀏覽器 API。
browser.enabled
- CLI:
--browser.enabled
- Config: browser.enabled
在瀏覽器中執行測試。等同於 --browser.enabled
(預設值: false
)。
browser.name
- CLI:
--browser.name <name>
- Config: browser.name
在特定瀏覽器中執行所有測試。某些瀏覽器僅適用於特定提供者(請參閱 --browser.provider
)。詳情請參閱 browser.name
。
browser.headless
- CLI:
--browser.headless
- Config: browser.headless
以無頭模式執行瀏覽器(即不開啟圖形使用者介面(GUI))。如果您在 CI 中執行 Vitest,則預設啟用(預設值: process.env.CI
)。
browser.api.port
- CLI:
--browser.api.port [port]
- Config: browser.api.port
指定伺服器埠號。若該埠號已被佔用,Vite 將自動嘗試下一個可用埠號,因此這可能不是伺服器最終監聽的實際埠號。若設為 true
,則將設定為 63315
。
browser.api.host
- CLI:
--browser.api.host [host]
- Config: browser.api.host
指定伺服器應監聽的 IP 位址。將此設為 0.0.0.0
或 true
以監聽所有位址,包括區域網路和公共位址。
browser.api.strictPort
- CLI:
--browser.api.strictPort
- Config: browser.api.strictPort
設為 true
以在埠號已被佔用時直接退出,而非自動嘗試下一個可用埠號。
browser.provider
- CLI:
--browser.provider <name>
- Config: browser.provider
用於執行瀏覽器測試的提供者。某些瀏覽器僅適用於特定提供者。可以是「webdriverio」、「playwright」、「preview」或自訂提供者的路徑。詳情請參閱 browser.provider
(預設值: "preview"
)。
browser.providerOptions
- CLI:
--browser.providerOptions <options>
- Config: browser.providerOptions
傳遞給瀏覽器提供者的選項。詳情請參閱 browser.providerOptions
。
browser.isolate
- CLI:
--browser.isolate
- Config: browser.isolate
隔離執行每個瀏覽器測試檔案。若要停用隔離,請使用 --browser.isolate=false
(預設值: true
)。
browser.ui
- CLI:
--browser.ui
- Config: browser.ui
執行測試時顯示 Vitest UI(預設值: !process.env.CI
)。
browser.fileParallelism
- CLI:
--browser.fileParallelism
- Config: browser.fileParallelism
瀏覽器測試檔案是否應並行執行。使用 --browser.fileParallelism=false
停用(預設值: true
)。
browser.connectTimeout
- CLI:
--browser.connectTimeout <timeout>
- Config: browser.connectTimeout
如果連接到瀏覽器花費的時間過長,測試套件將失敗(預設值: 60_000
)。
pool
- CLI:
--pool <pool>
- Config: pool
指定池,如果不在瀏覽器中執行(預設值: forks
)。
poolOptions.threads.isolate
- CLI:
--poolOptions.threads.isolate
- Config: poolOptions.threads.isolate
在執行緒池中隔離測試(預設值: true
)。
poolOptions.threads.singleThread
- CLI:
--poolOptions.threads.singleThread
- Config: poolOptions.threads.singleThread
在單一執行緒內執行測試(預設值: false
)。
poolOptions.threads.maxThreads
- CLI:
--poolOptions.threads.maxThreads <workers>
- Config: poolOptions.threads.maxThreads
執行測試的最大執行緒數或百分比。
poolOptions.threads.minThreads
- CLI:
--poolOptions.threads.minThreads <workers>
- Config: poolOptions.threads.minThreads
執行測試的最小執行緒數或百分比。
poolOptions.threads.useAtomics
- CLI:
--poolOptions.threads.useAtomics
- Config: poolOptions.threads.useAtomics
使用 Atomics 同步執行緒。這在某些情況下可以提高效能,但可能會在較舊的 Node 版本中導致分段錯誤(預設值: false
)。
poolOptions.vmThreads.isolate
- CLI:
--poolOptions.vmThreads.isolate
- Config: poolOptions.vmThreads.isolate
在執行緒池中隔離測試(預設值: true
)。
poolOptions.vmThreads.singleThread
- CLI:
--poolOptions.vmThreads.singleThread
- Config: poolOptions.vmThreads.singleThread
在單一執行緒內執行測試(預設值: false
)。
poolOptions.vmThreads.maxThreads
- CLI:
--poolOptions.vmThreads.maxThreads <workers>
- Config: poolOptions.vmThreads.maxThreads
執行測試的最大執行緒數或百分比。
poolOptions.vmThreads.minThreads
- CLI:
--poolOptions.vmThreads.minThreads <workers>
- Config: poolOptions.vmThreads.minThreads
執行測試的最小執行緒數或百分比。
poolOptions.vmThreads.useAtomics
- CLI:
--poolOptions.vmThreads.useAtomics
- Config: poolOptions.vmThreads.useAtomics
使用 Atomics 同步執行緒。這在某些情況下可以提高效能,但可能會在較舊的 Node 版本中導致分段錯誤(預設值: false
)。
poolOptions.vmThreads.memoryLimit
- CLI:
--poolOptions.vmThreads.memoryLimit <limit>
- Config: poolOptions.vmThreads.memoryLimit
VM 執行緒池的記憶體限制。如果您看到記憶體洩漏,請嘗試調整此值。
poolOptions.forks.isolate
- CLI:
--poolOptions.forks.isolate
- Config: poolOptions.forks.isolate
在 forks 池中隔離測試(預設值: true
)。
poolOptions.forks.singleFork
- CLI:
--poolOptions.forks.singleFork
- Config: poolOptions.forks.singleFork
在單一 child_process
內執行測試(預設值: false
)。
poolOptions.forks.maxForks
- CLI:
--poolOptions.forks.maxForks <workers>
- Config: poolOptions.forks.maxForks
執行測試的最大程序數或百分比。
poolOptions.forks.minForks
- CLI:
--poolOptions.forks.minForks <workers>
- Config: poolOptions.forks.minForks
執行測試的最小程序數或百分比。
poolOptions.vmForks.isolate
- CLI:
--poolOptions.vmForks.isolate
- Config: poolOptions.vmForks.isolate
在 forks 池中隔離測試(預設值: true
)。
poolOptions.vmForks.singleFork
- CLI:
--poolOptions.vmForks.singleFork
- Config: poolOptions.vmForks.singleFork
在單一 child_process
內執行測試(預設值: false
)。
poolOptions.vmForks.maxForks
- CLI:
--poolOptions.vmForks.maxForks <workers>
- Config: poolOptions.vmForks.maxForks
執行測試的最大程序數或百分比。
poolOptions.vmForks.minForks
- CLI:
--poolOptions.vmForks.minForks <workers>
- Config: poolOptions.vmForks.minForks
執行測試的最小程序數或百分比。
poolOptions.vmForks.memoryLimit
- CLI:
--poolOptions.vmForks.memoryLimit <limit>
- Config: poolOptions.vmForks.memoryLimit
VM forks 池的記憶體限制。如果您看到記憶體洩漏,請嘗試調整此值。
fileParallelism
- CLI:
--fileParallelism
- Config: fileParallelism
所有測試檔案是否應並行執行。使用 --no-file-parallelism
停用(預設值: true
)。
maxWorkers
- CLI:
--maxWorkers <workers>
- Config: maxWorkers
執行測試的最大工作者數或百分比。
minWorkers
- CLI:
--minWorkers <workers>
- Config: minWorkers
執行測試的最小工作者數或百分比。
environment
- CLI:
--environment <name>
- Config: environment
指定執行器環境,如果不在瀏覽器中執行(預設值: node
)。
passWithNoTests
- CLI:
--passWithNoTests
- Config: passWithNoTests
未找到測試時仍視為通過。
logHeapUsage
- CLI:
--logHeapUsage
- Config: logHeapUsage
在 Node 中執行時顯示每個測試的堆大小。
allowOnly
- CLI:
--allowOnly
- Config: allowOnly
允許標記為 only
的測試和套件(預設值: !process.env.CI
)。
dangerouslyIgnoreUnhandledErrors
- CLI:
--dangerouslyIgnoreUnhandledErrors
- Config: dangerouslyIgnoreUnhandledErrors
忽略發生的任何未處理錯誤。
sequence.shuffle.files
- CLI:
--sequence.shuffle.files
- Config: sequence.shuffle.files
以隨機順序執行檔案。如果啟用此選項,長時間執行的測試將不會提前開始(預設值: false
)。
sequence.shuffle.tests
- CLI:
--sequence.shuffle.tests
- Config: sequence.shuffle.tests
以隨機順序執行測試(預設值: false
)。
sequence.concurrent
- CLI:
--sequence.concurrent
- Config: sequence.concurrent
使測試並行執行(預設值: false
)。
sequence.seed
- CLI:
--sequence.seed <seed>
- Config: sequence.seed
設定隨機化種子。如果 --sequence.shuffle
為假值,此選項將無效。詳情請參閱 "隨機種子" 頁面。
sequence.hooks
- CLI:
--sequence.hooks <order>
- Config: sequence.hooks
更改掛鉤執行的順序。接受的值為:「stack」、「list」和「parallel」。詳情請參閱 sequence.hooks
(預設值: "parallel"
)。
sequence.setupFiles
- CLI:
--sequence.setupFiles <order>
- Config: sequence.setupFiles
更改設定檔執行的順序。接受的值為:「list」和「parallel」。如果設定為「list」,將按照定義的順序執行設定檔。如果設定為「parallel」,將並行執行設定檔(預設值: "parallel"
)。
inspect
- CLI:
--inspect [[host:]port]
- Config: inspect
啟用 Node.js 偵錯器(預設值: 127.0.0.1:9229
)。
inspectBrk
- CLI:
--inspectBrk [[host:]port]
- Config: inspectBrk
啟用 Node.js 偵錯器並在測試開始前中斷。
testTimeout
- CLI:
--testTimeout <timeout>
- Config: testTimeout
測試的預設超時時間(毫秒)(預設值: 5000
)。使用 0
完全停用超時。
hookTimeout
- CLI:
--hookTimeout <timeout>
- Config: hookTimeout
預設掛鉤超時時間(毫秒)(預設值: 10000
)。使用 0
完全停用超時。
bail
- CLI:
--bail <number>
- Config: bail
當指定數量的測試失敗時停止測試執行(預設值: 0
)。
retry
- CLI:
--retry <times>
- Config: retry
如果測試失敗,則重試指定次數(預設值: 0
)。
diff.aAnnotation
- CLI:
--diff.aAnnotation <annotation>
- Config: diff.aAnnotation
預期行的註釋(預設值: Expected
)。
diff.aIndicator
- CLI:
--diff.aIndicator <indicator>
- Config: diff.aIndicator
預期行的指示符(預設值: -
)。
diff.bAnnotation
- CLI:
--diff.bAnnotation <annotation>
- Config: diff.bAnnotation
接收行的註釋(預設值: Received
)。
diff.bIndicator
- CLI:
--diff.bIndicator <indicator>
- Config: diff.bIndicator
接收行的指示符(預設值: +
)。
diff.commonIndicator
- CLI:
--diff.commonIndicator <indicator>
- Config: diff.commonIndicator
共同行的指示符(預設值: )。
diff.contextLines
- CLI:
--diff.contextLines <lines>
- Config: diff.contextLines
在每個變更周圍顯示的上下文行數(預設值: 5
)。
diff.emptyFirstOrLastLinePlaceholder
- CLI:
--diff.emptyFirstOrLastLinePlaceholder <placeholder>
- Config: diff.emptyFirstOrLastLinePlaceholder
空的第一行或最後一行的佔位符(預設值: ""
)。
diff.expand
- CLI:
--diff.expand
- Config: diff.expand
展開所有共同行(預設值: true
)。
diff.includeChangeCounts
- CLI:
--diff.includeChangeCounts
- Config: diff.includeChangeCounts
在差異輸出中包含比較計數(預設值: false
)。
diff.omitAnnotationLines
- CLI:
--diff.omitAnnotationLines
- Config: diff.omitAnnotationLines
從輸出中省略註釋行(預設值: false
)。
diff.printBasicPrototype
- CLI:
--diff.printBasicPrototype
- Config: diff.printBasicPrototype
列印基本原型物件和陣列(預設值: true
)。
diff.maxDepth
- CLI:
--diff.maxDepth <maxDepth>
- Config: diff.maxDepth
列印巢狀物件時遞迴的深度限制(預設值: 20
)。
diff.truncateThreshold
- CLI:
--diff.truncateThreshold <threshold>
- Config: diff.truncateThreshold
在每個變更前後顯示的行數(預設值: 0
)。
diff.truncateAnnotation
- CLI:
--diff.truncateAnnotation <annotation>
- Config: diff.truncateAnnotation
截斷行的註釋(預設值: ... Diff result is truncated
)。
exclude
- CLI:
--exclude <glob>
- Config: exclude
要從測試中排除的額外檔案 glob。
expandSnapshotDiff
- CLI:
--expandSnapshotDiff
- Config: expandSnapshotDiff
快照失敗時顯示完整差異。
disableConsoleIntercept
- CLI:
--disableConsoleIntercept
- Config: disableConsoleIntercept
停用控制台日誌的自動攔截(預設值: false
)。
typecheck.enabled
- CLI:
--typecheck.enabled
- Config: typecheck.enabled
啟用與測試同時進行的型別檢查(預設值: false
)。
typecheck.only
- CLI:
--typecheck.only
- Config: typecheck.only
僅執行型別檢查測試。這會自動啟用型別檢查(預設值: false
)。
typecheck.checker
- CLI:
--typecheck.checker <name>
- Config: typecheck.checker
指定要使用的型別檢查器。可用值為:「tsc」和「vue-tsc」以及可執行檔的路徑(預設值: "tsc"
)。
typecheck.allowJs
- CLI:
--typecheck.allowJs
- Config: typecheck.allowJs
允許對 JavaScript 檔案進行型別檢查。預設情況下從 tsconfig.json 中獲取值。
typecheck.ignoreSourceErrors
- CLI:
--typecheck.ignoreSourceErrors
- Config: typecheck.ignoreSourceErrors
忽略來源檔案中的型別錯誤。
typecheck.tsconfig
- CLI:
--typecheck.tsconfig <path>
- Config: typecheck.tsconfig
自訂 tsconfig 檔案的路徑。
typecheck.spawnTimeout
- CLI:
--typecheck.spawnTimeout <time>
- Config: typecheck.spawnTimeout
啟動型別檢查器所需的最小時間(毫秒)。
project
- CLI:
--project <name>
- Config: project
如果您使用 Vitest 工作區功能,要執行的專案名稱。這可以重複用於多個專案:--project=1 --project=2
。您也可以使用萬用字元過濾專案,例如 --project=packages*
,並使用 --project=!pattern
排除專案。
slowTestThreshold
- CLI:
--slowTestThreshold <threshold>
- Config: slowTestThreshold
測試或套件被視為慢速的閾值(毫秒)(預設值: 300
)。
teardownTimeout
- CLI:
--teardownTimeout <timeout>
- Config: teardownTimeout
拆卸函數的預設超時時間(毫秒)(預設值: 10000
)。
maxConcurrency
- CLI:
--maxConcurrency <number>
- Config: maxConcurrency
套件中並行測試的最大數量(預設值: 5
)。
expect.requireAssertions
- CLI:
--expect.requireAssertions
- Config: expect.requireAssertions
要求所有測試至少有一個斷言。
expect.poll.interval
- CLI:
--expect.poll.interval <interval>
- Config: expect.poll.interval
expect.poll()
斷言的輪詢間隔(毫秒)(預設值: 50
)。
expect.poll.timeout
- CLI:
--expect.poll.timeout <timeout>
- Config: expect.poll.timeout
expect.poll()
斷言的輪詢超時時間(毫秒)(預設值: 1000
)。
printConsoleTrace
- CLI:
--printConsoleTrace
- Config: printConsoleTrace
始終列印控制台堆疊追蹤。
includeTaskLocation
- CLI:
--includeTaskLocation
- Config: includeTaskLocation
在 location
屬性中收集測試和套件的位置。
attachmentsDir
- CLI:
--attachmentsDir <dir>
- Config: attachmentsDir
context.annotate
附件的儲存目錄(預設值: .vitest-attachments
)。
run
- CLI:
--run
停用監控模式。
color
- CLI:
--no-color
從控制台輸出中移除顏色。
clearScreen
- CLI:
--clearScreen
在監控模式下重新執行測試時清除終端機螢幕(預設值: true
)。
configLoader
- CLI:
--configLoader <loader>
使用 bundle
將設定與 esbuild 捆綁,或使用 runner
(實驗功能)即時執行。此功能僅在 vite 6.1.0 及更高版本中可用(預設值: bundle
)。
standalone
- CLI:
--standalone
啟動 Vitest 而不執行測試。檔案過濾器將被忽略,測試只會在變更時執行(預設值: false
)。
changed
- 類型:
boolean | string
- 預設:false
只針對變更過的檔案執行測試。如果未提供值,它將針對尚未提交的變更(包括已暫存和未暫存的)執行測試。
若要針對上次提交的變更執行測試,您可以使用 --changed HEAD~1
。您也可以傳遞提交雜湊值(例如 --changed 09a9920
)或分支名稱(例如 --changed origin/develop
)。
當用於程式碼覆蓋率時,報告將只包含與變更相關的檔案。
如果與 forceRerunTriggers
組態選項搭配使用,只要 forceRerunTriggers
列表中至少有一個檔案發生變更,它將執行整個測試套件。預設情況下,Vitest 組態檔案和 package.json
的變更將始終重新執行整個套件。
shard
- 類型:
string
- 預設:disabled
要執行的測試套件分割部分,格式為 <index>
/<count>
,其中:
count
是一個正整數,表示分割的總數index
是一個正整數,表示分割部分的序號
此命令會將所有測試分成 count
個相等的部分,並且只執行屬於 index
部分的測試。例如,要將您的測試套件分成三部分,請使用:
vitest run --shard=1/3
vitest run --shard=2/3
vitest run --shard=3/3
WARNING
您不能在 --watch
啟用時使用此選項(在開發環境中預設啟用)。
TIP
如果 --reporter=blob
在沒有輸出檔案的情況下使用,預設路徑將包含目前的分割部分設定,以避免與其他 Vitest 程序衝突。
merge-reports
- 類型:
boolean | string
合併指定資料夾(預設為 .vitest-reports
)中的所有 blob 報告。您可以將任何報告產生器與此命令一起使用(除了 blob
):
vitest --merge-reports --reporter=junit