Jest CLI選項(xiàng)

2021-09-23 20:22 更新

jest 命令行運(yùn)行器擁有諸多有用的選項(xiàng)。 運(yùn)行?jest --help?可以查看所有可用的選項(xiàng) 下面所示選項(xiàng)都可一起使用,以你想要的方式來(lái)運(yùn)行測(cè)試。 每一條 Jest 的 配置選項(xiàng) 都可以通過(guò)命令行來(lái)指定.

大致簡(jiǎn)述如下:

在命令行運(yùn)行

運(yùn)行所有測(cè)試(默認(rèn))

  1. <code>jest</code>

僅運(yùn)行符合指定用模板或文件名的測(cè)試︰

  1. jest my-test #or
  2. jest path/to/my-test.js

運(yùn)行基于 hg/git (未提交的文件) 修改的文件的測(cè)試︰

  1. jest -o

運(yùn)行類(lèi)似? path/to/fileA.js ?和 ?path/to/fileB.js?的測(cè)試︰

  1. jest --findRelatedTests path/to/fileA.js path/to/fileB.js

運(yùn)行匹配特定名稱(chēng)的測(cè)試用例(主要是匹配 ?describe ?或 ?test?的名稱(chēng))。

  1. jest -t name-of-spec

運(yùn)行監(jiān)視模式︰

  1. jest --watch #runs jest -o by default
  2. jest --watchAll #runs all tests

監(jiān)視模式還能夠指定名稱(chēng)或文件路徑,從而運(yùn)行特定的一組測(cè)試。

與 yarn 一起使用

如果通過(guò) 運(yùn)行 ?Jest ?yarn test??,則可以將命令行參數(shù)直接作為 Jest 參數(shù)傳遞。

代替:

  1. jest -u -t="ColorPicker"

現(xiàn)在你可以使用

  1. yarn test -u -t="ColorPicker"

使用npm腳本

如果你通過(guò) 運(yùn)行 ?Jest ?npm test??,你仍然可以通過(guò)?--?在?npm test?和 Jest 參數(shù)之間插入 a來(lái)使用命令行參數(shù)。

代替:

  1. jest -u -t="ColorPicker"

現(xiàn)在你可以使用

  1. npm test -- -u -t="ColorPicker"

Camelcase & dashed args 支持

Jest 支持駝峰格式和虛線(xiàn) arg 格式。以下示例將產(chǎn)生相同的結(jié)果:

  1. jest --collect-coverage
  2. jest --collectCoverage

參數(shù)也可以混合使用:

  1. jest --update-snapshot --detectOpenHandles

選項(xiàng)

注意:CLI 選項(xiàng)優(yōu)先于Configuration 中的值。

參考

jest <regexForTestFiles>

當(dāng)你在運(yùn)行 ?jest?時(shí)附加參數(shù),參數(shù)會(huì)以正則表達(dá)式來(lái)匹配項(xiàng)目中的文件。 可通過(guò)提供的模式來(lái)運(yùn)行測(cè)試。 只會(huì)選擇并運(yùn)行匹配模式的測(cè)試文件。根據(jù)終端的不同,你可能需要引用以下參數(shù):?jest“my.*(complex)?pattern”?。在Windows上,你需要使用?/?作為路徑分隔符或轉(zhuǎn)義?\\`as\\\`?。

--bail

別名:?-b?。在?n?失敗的測(cè)試套件數(shù)量后立即退出測(cè)試套件。默認(rèn)為?1?.

--cache

是否使用緩存。 默認(rèn)值為 true。 使用 ?--no-cache?來(lái)禁止緩存。 注意︰ 僅在遇到緩存相關(guān)的問(wèn)題時(shí)禁用緩存。 一般來(lái)說(shuō),禁用緩存會(huì)令Jest運(yùn)行至少慢兩倍。

如果要檢查緩存,請(qǐng)使用?--showConfig?并查看該?cacheDirectory?值。如果你需要清除緩存,請(qǐng)使用?--clearCache?.

--changedFilesWithAncestor

運(yùn)行與當(dāng)前更改和上次提交中所做更改相關(guān)的測(cè)試。與 ?--onlyChanged? 的行為相似。

--changedSince

運(yùn)行與自提供分支以來(lái)的更改相關(guān)的測(cè)試。如果當(dāng)前分支與給定分支有分歧,則只會(huì)測(cè)試本地所做的更改。與?--onlyChanged?的行為相似。

--ci

指定該參數(shù)時(shí),Jest會(huì)認(rèn)為正在CI環(huán)境上運(yùn)行。 當(dāng)遇到新的快照時(shí),這會(huì)改變?cè)瓉?lái)的行為。 不再是自動(dòng)的保存新的快照,取而代之的是,它會(huì)將測(cè)試標(biāo)記失敗,并要求運(yùn)行Jest時(shí)增加?--updateSnapshot?參數(shù)。

--clearCache

刪除 Jest 的緩存目錄, 然后不運(yùn)行測(cè)試直接退出。 如果傳遞該選項(xiàng),將刪除?cacheDirectory?,或Jest的默認(rèn)緩存目錄。通過(guò)調(diào)用?jest--showConfig?可以找到默認(rèn)的緩存目錄_

注意:清除緩存將降低性能。

--collectCoverageFrom=<glob>

與?rootDir?匹配需要收集覆蓋信息的文件相關(guān)的全局模式。

--colors

即便stdout不是TTY模式, 也要強(qiáng)制高亮顯示測(cè)試結(jié)果。

--config=<path>

或: ?-c?. 指定如何查找和執(zhí)行測(cè)試的Jest配置文件的路徑。如果配置中未設(shè)置?rootDir?,則假定包含配置文件的目錄是項(xiàng)目的?rootDir?。這也可以是 JSON 編碼的值,Jest可以將其設(shè)為基本配置。

--coverage[=<boolean>]

別名: ?--collectCoverage. ?將測(cè)試覆蓋率信息輸出為報(bào)告。 可選地傳遞?<boolean>?以覆蓋配置中的選項(xiàng)集。

--coverageProvider=<provider>

指示應(yīng)使用哪個(gè)提供程序來(lái)檢測(cè)代碼以進(jìn)行覆蓋。允許的值為?babel?(默認(rèn))或?v8?。

請(qǐng)注意,使用?v8?被認(rèn)為是實(shí)驗(yàn)性的。這使用了 V8 的內(nèi)置代碼覆蓋率,而不是基于 Babel 的覆蓋率。它沒(méi)有經(jīng)過(guò)很好的測(cè)試,而且在 Node.js 的最后幾個(gè)版本中也得到了改進(jìn)。使用最新版本的 node(在撰寫(xiě)本文時(shí)為 v14)會(huì)產(chǎn)生更好的結(jié)果。

--debug

打印關(guān)于 Jest 配置的調(diào)試信息。

--detectOpenHandles

嘗試收集和打印阻止 Jest 干凈退出的打開(kāi)句柄。在你需要使用?--forceExit?它以便 Jest 退出以可能追蹤原因的情況下使用它。這意味著?--runInBand?,使測(cè)試串行運(yùn)行。使用async_hooks. 此選項(xiàng)具有顯著的性能損失,應(yīng)僅用于調(diào)試。

--env=<environment>

用于所有測(cè)試的測(cè)試環(huán)境。這可以指向任何文件或節(jié)點(diǎn)模塊。示例:?jsdom?,?node?或?path/to/my-environment.js?。

--errorOnDeprecated

使調(diào)用已棄用的 API 拋出有用的錯(cuò)誤消息。有助于簡(jiǎn)化升級(jí)過(guò)程。

--expand

別名:?-e?。使用此標(biāo)志來(lái)顯示完整的差異和錯(cuò)誤而不是補(bǔ)丁。

--findRelatedTests <spaceSeparatedListOfSourceFiles>

查找并運(yùn)行覆蓋作為參數(shù)傳入的以空格分隔的源文件列表的測(cè)試。對(duì)于預(yù)提交鉤子集成以運(yùn)行最少數(shù)量的必要測(cè)試很有用??膳c with 一起使用?--coverage?以包含源文件的測(cè)試覆蓋率,無(wú)需重復(fù)?--collectCoverageFrom?參數(shù)。

--forceExit

強(qiáng)制Jest在所有測(cè)試運(yùn)行完后退出。 對(duì)于一些由測(cè)試所生成但無(wú)法充分清理的資源來(lái)說(shuō),這是很有用的。 注意︰ 此功能是escape-hatch。 如果Jest在測(cè)試運(yùn)行最后沒(méi)有退出,那就意味著外部資源還是被占用,又或是計(jì)時(shí)器還尚在你的代碼中待令。 為了確保Jest可以完全關(guān)閉,建議你在每個(gè)測(cè)試后都關(guān)閉用到的外部資源。你可以使用?--detectOpenHandles?來(lái)幫助跟蹤它。

--help

顯示幫助信息,類(lèi)似于本頁(yè)文檔。

--init

生成一個(gè)基礎(chǔ)配置文件. 根據(jù)你的項(xiàng)目,Jest將向你詢(xún)問(wèn)一些問(wèn)題,這些問(wèn)題將有助于生成一個(gè)?Jest.config.js?文件,其中包含每個(gè)選項(xiàng)的簡(jiǎn)短描述。

--json

以 JSON 格式打印測(cè)試結(jié)果。此模式會(huì)將所有其他測(cè)試輸出和用戶(hù)消息發(fā)送到 stderr。

--outputFile=<filename>

通過(guò) ?--json ?參數(shù)可以將測(cè)試結(jié)果寫(xiě)入到指定文件。返回的JSON結(jié)構(gòu)記錄在 testResultsProcessor.

--lastCommit

運(yùn)行上次提交中受文件更改影響的所有測(cè)試。與? --onlyChanged? 的行為相似。

--listTests

將所有測(cè)試列為 Jest 將在給定參數(shù)的情況下運(yùn)行的 JSON,然后退出。這可以與?--findRelatedTests?知道 Jest 將運(yùn)行哪些測(cè)試一起使用。

--logHeapUsage

每次測(cè)試后記錄堆使用情況。用于調(diào)試內(nèi)存泄漏。再加上使用?--runInBand?和?--expose-gc?在節(jié)點(diǎn)。

--maxConcurrency=<num>

防止 Jest 同時(shí)執(zhí)行超過(guò)指定數(shù)量的測(cè)試。僅影響使用?test.concurrent?.

--maxWorkers=<num>|<string>

別名:?-w?。設(shè)置運(yùn)行測(cè)試的最大工作池?cái)?shù)目。在監(jiān)視模式下,這默認(rèn)為你機(jī)器上可用內(nèi)核的一半,以確保 Jest 不引人注目并且不會(huì)使你的機(jī)器停止運(yùn)行。在? CI ?等資源有限的環(huán)境中進(jìn)行調(diào)整可能很有用,但對(duì)于大多數(shù)用例來(lái)說(shuō),默認(rèn)值應(yīng)該足夠了。

對(duì)于具有可變 CPU 可用的環(huán)境,你可以使用基于百分比的配置:? --maxWorkers=50%?

--noStackTrace

禁止棧跟蹤信息在測(cè)試結(jié)果輸出中。

--notify

激活測(cè)試結(jié)果通知。當(dāng)你不希望你的意識(shí)能夠?qū)W⒂诔?JavaScript 測(cè)試之外的任何事情時(shí),這很有用。

--onlyChanged

或: ?-o?. 嘗試確定根據(jù)當(dāng)前存儲(chǔ)庫(kù)中哪些已經(jīng)更改的文件來(lái)運(yùn)行的測(cè)試。 僅當(dāng)你目前正在?git?/?hg?存儲(chǔ)庫(kù)中運(yùn)行測(cè)試,并且需要靜態(tài)依賴(lài)關(guān)系圖(即不需要?jiǎng)討B(tài)依賴(lài)關(guān)系圖)時(shí),此功能才有效。

--passWithNoTests

允許在沒(méi)有找到文件的情況下通過(guò)測(cè)試。

--projects <path1> ... <pathN>

從一個(gè)或多個(gè)在指定路徑中找到的項(xiàng)目運(yùn)行測(cè)試;也需要路徑球。此選項(xiàng)是projects配置選項(xiàng)的 CLI 等效項(xiàng)。請(qǐng)注意,如果在指定路徑中找到配置文件,則將運(yùn)行這些配置文件中指定的所有項(xiàng)目。

--reporters

使用指定的報(bào)告器運(yùn)行測(cè)試。無(wú)法通過(guò) CLI 使用報(bào)告器選項(xiàng)。多個(gè)記者的例子:

?jest --reporters="default" --reporters="jest-junit"?

--runInBand

別名:?-i?。在當(dāng)前進(jìn)程中連續(xù)運(yùn)行所有測(cè)試,而不是創(chuàng)建運(yùn)行測(cè)試的子進(jìn)程的工作池。這對(duì)于調(diào)試很有用。

--selectProjects <project1> ... <projectN>

僅運(yùn)行指定項(xiàng)目的測(cè)試。Jest 使用?displayName?配置中的屬性來(lái)標(biāo)識(shí)每個(gè)項(xiàng)目。如果你使用此選項(xiàng),你應(yīng)該為?displayName?所有項(xiàng)目提供一個(gè)。

--runTestsByPath

僅運(yùn)行以其確切路徑指定的測(cè)試。

注意:默認(rèn)的正則表達(dá)式匹配在小規(guī)模運(yùn)行中運(yùn)行良好,但如果提供多個(gè)??模式和/或針對(duì)大量測(cè)試,則速度會(huì)變慢。此選項(xiàng)替換正則表達(dá)式匹配邏輯,從而優(yōu)化 Jest 過(guò)濾特定測(cè)試文件所需的時(shí)間

--setupTestFrameworkScriptFile=<file>

模塊路徑是可以在每個(gè)測(cè)試運(yùn)行前,通過(guò)運(yùn)行一些代碼來(lái)配置或設(shè)置測(cè)試框架。 請(qǐng)注意,安裝腳本導(dǎo)入的文件在測(cè)試期間不會(huì)被模擬。

--showConfig

輸出Jest配置,然后退出。

--silent

阻止所有測(cè)試通過(guò)控制臺(tái)輸出信息。

--testNamePattern=<regex>

別名︰ ?-t?。 只運(yùn)行名稱(chēng)與正則表達(dá)式匹配的測(cè)試。例如,假設(shè)你只想運(yùn)行與具有類(lèi)似名稱(chēng)的授權(quán)相關(guān)的測(cè)試?"GET /api/posts with auth"?,那么你可以使用?jest -t=auth.

注意:正則表達(dá)式與全名匹配,全名是測(cè)試名稱(chēng)及其周?chē)忻枋鰤K的組合。

--testLocationInResults

location向測(cè)試結(jié)果添加字段。如果你想在報(bào)告器中報(bào)告測(cè)試的位置,則很有用。

請(qǐng)注意 column 是從 0 開(kāi)始,而 line 不是。

  1. {
  2. "column": 4,
  3. "line": 5
  4. }

--testPathPattern=<regex>

在運(yùn)行測(cè)試前,匹配的regexp模式字符串的測(cè)試文件路徑。 在Windows上,你需要使用/作為路徑分隔符或轉(zhuǎn)義?\`as\`?。

--testPathIgnorePatterns=[array]

在執(zhí)行測(cè)試之前針對(duì)所有測(cè)試路徑測(cè)試的正則表達(dá)式模式字符串?dāng)?shù)組。與 相反--testPathPattern,它只會(huì)運(yùn)行那些路徑與提供的正則表達(dá)式不匹配的測(cè)試。

--testRunner=<path>

允許你指定自定義測(cè)試運(yùn)行程序。

--testSequencer=<path>

允許你指定自定義測(cè)試音序器。具體請(qǐng)參考對(duì)應(yīng)配置屬性的文檔。

--testTimeout=<number>

默認(rèn)測(cè)試超時(shí)時(shí)間單位為毫秒。? 默認(rèn)值: 5000。?

--updateSnapshot

或: ?-u?. 在運(yùn)行測(cè)試中使用這個(gè)參數(shù)來(lái)重新錄制每個(gè)失敗測(cè)試的快照。 還可以和測(cè)試套件模式或者和 ?--testNamePattern? 一起使用,從而重新錄制的快照。

--useStderr

轉(zhuǎn)移所有輸出到?stderr?(標(biāo)準(zhǔn)錯(cuò)誤輸出).

--verbose

層次顯示測(cè)試套件中每個(gè)測(cè)試的結(jié)果。

--version

別名:?-v?。打印版本并退出。

--watch

監(jiān)視文件的更改并重新運(yùn)行與更改文件相關(guān)的測(cè)試。如果要在文件更改時(shí)重新運(yùn)行所有測(cè)試,請(qǐng)改用?--watchAll?選項(xiàng)。

--watchAll

觀察文件的變化并在發(fā)生變化時(shí)重新運(yùn)行所有測(cè)試。如果你只想重新運(yùn)行依賴(lài)于已更改文件的測(cè)試,請(qǐng)使用?--watch?選項(xiàng)。

使用?--watchAll=false?明確的禁止計(jì)時(shí)模式。請(qǐng)注意,在大多數(shù) CI 環(huán)境中,這會(huì)自動(dòng)為你處理。

--watchman

是否使用 watchman 進(jìn)行文件抓取。默認(rèn)值為 true。 禁用使用?--no-watchman?.


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)