使用Jest?在?Visual?Studio?Code?中進(jìn)行單元測(cè)試的流程分析
前言:
Jest是一個(gè)流行的JavaScript測(cè)試框架,它提供了簡(jiǎn)潔、靈活和強(qiáng)大的工具來編寫和運(yùn)行單元測(cè)試。在Visual Studio Code(VS Code)中使用Jest可以進(jìn)一步提升單元測(cè)試的效率和體驗(yàn)。
使用 Jest 擴(kuò)展顯著改善測(cè)試流程
我用 Jest 編寫單元測(cè)試已經(jīng)有 5-6 年了。 它總是能夠?yàn)轭悺⒎椒ê徒M件編寫適當(dāng)?shù)膯卧獪y(cè)試。在我的所有項(xiàng)目中,總是通過命令行運(yùn)行 Jest。我在初始化項(xiàng)目時(shí)設(shè)置了一個(gè)簡(jiǎn)單的 npm test或 yarn test命令,并在需要手動(dòng)測(cè)試時(shí)使用它。 此外,每當(dāng)創(chuàng)建新的拉取/合并請(qǐng)求時(shí),測(cè)試都會(huì)在 CI/CD 流水線中運(yùn)行。然而,最近我發(fā)現(xiàn)了 VSCode Jest Extension。 此擴(kuò)展提供了比命令行更好的工作流程。 讓我們來看看幾個(gè)功能。
1.自動(dòng)啟動(dòng) Jest 測(cè)試
如果 Jest 安裝在項(xiàng)目的根文件夾中,那么此插件將開箱即用,并將開始監(jiān)視更改以運(yùn)行相關(guān)測(cè)試。如果沒有在根目錄中安裝 Jest,可以通過工作區(qū)中的 VSCode 設(shè)置或全局 VSCode 設(shè)置輕松設(shè)置自定義命令。 例如:“jest.jestCommandLine”: “yarn test”
2. 顯示單個(gè)失敗/通過的測(cè)試用例
VSCode Jest 擴(kuò)展在測(cè)試通過/失敗的測(cè)試文件中提供了一個(gè)可視化界面。 此外,可以通過單擊綠色/紅色圖標(biāo)重新運(yùn)行測(cè)試。

Jest 擴(kuò)展在測(cè)試失敗的地方添加了一個(gè)內(nèi)聯(lián)紅色下劃線,并顯示詳細(xì)的錯(cuò)誤消息。 此外,可以在左側(cè)看到所有測(cè)試的狀態(tài)。VSCode Jest 擴(kuò)展在測(cè)試通過/失敗的測(cè)試文件中提供了一個(gè)可視化界面。 此外,可以通過單擊綠色/紅色圖標(biāo)重新運(yùn)行測(cè)試。Visual Studio 邊欄有一個(gè)測(cè)試面板,現(xiàn)在將顯示所有的jtest測(cè)試用例及其狀態(tài)。 這提供了快速概覽和在測(cè)試之間導(dǎo)航的簡(jiǎn)便方法。
此外,失敗的測(cè)試也顯示在底部面板的問題檢查器中。
允許調(diào)試單元測(cè)試
我們可以輕松地為 Jest 測(cè)試設(shè)置調(diào)試。首先,在項(xiàng)目的根目錄中創(chuàng)建或打開.vscode/launch.json。應(yīng)將以下配置添加到文件中。
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest single run all tests",
"program": "${workspaceRoot}/node_modules/jest/bin/jest.js",
"args": [
"-c",
"./jest.config.ts",
"--verbose",
"-i",
"--no-cache"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
]
}導(dǎo)航到測(cè)試文件并在代碼中要調(diào)試的任意位置設(shè)置斷點(diǎn)。可以通過單擊行號(hào)左側(cè)的位置來設(shè)置圓點(diǎn)來設(shè)置斷點(diǎn)。

第 13 行的斷點(diǎn)示例在“ Run and Debug”面板中,可以按播放按鈕開始調(diào)試。 這將顯示大量信息:Local variables——所有局部變量將與它們的值一起顯示在面板的左上部分??梢允褂谜{(diào)試器功能在測(cè)試行上移動(dòng),甚至移動(dòng)到您正在測(cè)試的方法中,以找出測(cè)試未通過的原因。Closure ——在閉包中可訪問的所有變量。Global——所有全局可訪問的變量。

在文件中顯示代碼覆蓋率
VSCode Jest 擴(kuò)展提供了一個(gè)選項(xiàng),可以通過命令面板切換代碼覆蓋率報(bào)告。 打開命令面板并查找Jest:Toggle Coverage命令。這將在代碼文件中切換幾項(xiàng)內(nèi)容,如下面的屏幕截圖所示?!裨谖募敳?,可以獲得有關(guān)此文件覆蓋范圍的全局信息。 它顯示單元測(cè)試覆蓋的函數(shù)、語句和分支的百分比?!裎礈y(cè)試的行標(biāo)有紅色背景。 這有助于一目了然地找出代碼中未經(jīng)測(cè)試的路徑?!癫糠譁y(cè)試的代碼標(biāo)有黃色背景。 例如,下面的三元運(yùn)算符僅在一種情況下進(jìn)行了測(cè)試,但從未到達(dá) else 子句。

結(jié)論
如果你像我一樣只使用過 CLI 界面進(jìn)行單元測(cè)試,我強(qiáng)烈建議你嘗試一下編輯器工具。 在我親身體驗(yàn)之前,我不知道我到底有多需要它。
到此這篇關(guān)于使用 Jest 在 Visual Studio Code 中進(jìn)行更好的單元測(cè)試的文章就介紹到這了,更多相關(guān)Jest Visual Studio Code單元測(cè)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)http post四種請(qǐng)求體詳解
這篇文章給大家介紹python實(shí)現(xiàn)http post四種請(qǐng)求體,本文結(jié)合Python代碼(同時(shí)涵蓋傳統(tǒng)urllib2和現(xiàn)代requests庫),詳細(xì)演示如何實(shí)現(xiàn)這四種請(qǐng)求體,感興趣的朋友跟隨小編一起看看吧2026-03-03
python光學(xué)仿真學(xué)習(xí)wxpython創(chuàng)建手速測(cè)試程序
這篇文章主要介紹了python光學(xué)仿真學(xué)習(xí)使用wxpython創(chuàng)建一個(gè)手速測(cè)試程序示例的實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
pytorch中交叉熵?fù)p失函數(shù)的使用小細(xì)節(jié)
這篇文章主要介紹了pytorch中交叉熵?fù)p失函數(shù)的使用細(xì)節(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Python3模擬curl發(fā)送post請(qǐng)求操作示例
這篇文章主要介紹了Python3模擬curl發(fā)送post請(qǐng)求操作,結(jié)合實(shí)例形式分析了Python3使用Request請(qǐng)求模擬curl發(fā)送post相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
從基礎(chǔ)到進(jìn)階詳解Python字符串拼接的6種方法
字符串拼接是編程中最基礎(chǔ)的操作之一,本文將通過實(shí)際代碼示例和性能測(cè)試,帶你全面了解Python中字符串拼接的6種方法,希望對(duì)大家有所幫助2026-02-02
python腳本實(shí)現(xiàn)下載高德離線底圖瓦片并使用
在內(nèi)網(wǎng)環(huán)境中開發(fā),無法使用高德在線瓦片服務(wù),需要下載到本地或者部署到內(nèi)網(wǎng)服務(wù)器中進(jìn)行使用,下面我們就來看看如何使用python腳本下載高德離線底圖瓦片并使用吧2026-01-01
從基礎(chǔ)到高級(jí)詳解Python讀寫二進(jìn)制結(jié)構(gòu)數(shù)組的完全指南
二進(jìn)制數(shù)據(jù)處理是Python編程中??至關(guān)重要??的技能,本文將深入探討Python中讀寫二進(jìn)制結(jié)構(gòu)數(shù)組的各種方法和技術(shù),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-09-09
python實(shí)現(xiàn)去除下載電影和電視劇文件名中的多余字符的方法
這篇文章主要介紹了python實(shí)現(xiàn)去除下載電影和電視劇文件名中的多余字符的方法,可以批量修改視頻文件名稱,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09

