日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

Astro 宣布:將超過 500 多個測試從 Mocha 遷移到了 Node.js

來源: 責(zé)編: 時間:2024-03-29 09:19:59 199觀看
導(dǎo)讀近期,Astro 在其官方博客中宣布,雖然我們對 Mocha 感到滿意,但也在尋求讓我們的 CI 作業(yè)更快的方法。最終將超過 500 多個測試從 Mocha 遷移到了 Node.js。先了解下 Astro 是什么?Astro 是適合構(gòu)建像博客、營銷網(wǎng)站、電子

近期,Astro 在其官方博客中宣布,雖然我們對 Mocha 感到滿意,但也在尋求讓我們的 CI 作業(yè)更快的方法。最終將超過 500 多個測試從 Mocha 遷移到了 Node.js。REa28資訊網(wǎng)——每日最新資訊28at.com

先了解下 Astro 是什么?Astro 是適合構(gòu)建像博客、營銷網(wǎng)站、電子商務(wù)網(wǎng)站這樣的以內(nèi)容驅(qū)動的網(wǎng)站的 Web 框架。沒有強(qiáng)綁定一些 UI 框架,它支持像 React、Preact、Svelte、Vue、Solid、Lit、HTMX、Web 組件等這些前端 UI 框架。REa28資訊網(wǎng)——每日最新資訊28at.com

一開始,Astro 只是遷移了一個尚未使用 astro 集成套件的軟件包:create-astro,由 Mocha 轉(zhuǎn)為使用 Node.js 內(nèi)置斷言庫 node:assert。REa28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)成功遷移了第一個包后,潘多拉的盒子便已打開。之后開始嘗試遷移 @astrojs/node 包的測試套件。這個集成是 Astro 下載量最大的集成之一。REa28資訊網(wǎng)——每日最新資訊28at.com

根據(jù)其博客描述,對最終的結(jié)果是感到滿意的。在遷移之后沒有看到性能出現(xiàn)任何顯著退化。REa28資訊網(wǎng)——每日最新資訊28at.com

Node.js 內(nèi)置測試模塊畢竟還比較新,在實(shí)現(xiàn)過程中也有遇到一些問題的,例如:REa28資訊網(wǎng)——每日最新資訊28at.com

  • 一開始發(fā)現(xiàn) “Node.js 測試運(yùn)行器比 Mocha 慢得多”,經(jīng)過調(diào)查發(fā)現(xiàn)是 Node.js 為每個測試文件生成了一個新進(jìn)程,以確保每個測試套件都在隔離的環(huán)境中運(yùn)行。這樣好處是保證了測試環(huán)境不會被污染。但通過創(chuàng)建一個臨時文件,導(dǎo)入所有的測試套件,讓 Node.js 執(zhí)行該文件,這樣可在性能上得到保證。
  • 不能傳遞 --test-concurrency 標(biāo)志(僅在 Node.js 21 及以上版本可用)
  • 參數(shù)名稱冗長:

--test-name-pattern 而不是 --match,-m 參數(shù);REa28資訊網(wǎng)——每日最新資訊28at.com

--test-timeout 而不是 --timeout,-t 參數(shù),等等。REa28資訊網(wǎng)——每日最新資訊28at.com

  • Mocha 中只需使用 it.only 就可以運(yùn)行單個測試套件。而 Node.js 中你必須:
  • 使用 --test-only 參數(shù)運(yùn)行 CLIREa28資訊網(wǎng)——每日最新資訊28at.com

  • 將 .only 添加到包含要運(yùn)行的 it.only 的 describe 中。REa28資訊網(wǎng)——每日最新資訊28at.com

  • 如果有多個 describe 實(shí)例,所有這些實(shí)例都需要標(biāo)記為 .only。REa28資訊網(wǎng)——每日最新資訊28at.com

對于 Astro 來講,使用 Node.js 內(nèi)置測試運(yùn)行器,對于它們的主 monorepo 有一些優(yōu)勢:REa28資訊網(wǎng)——每日最新資訊28at.com

  • 減少了我們 monorepo 中需要安裝和維護(hù)的依賴項(xiàng):mocha 和 chai。
  • API 遷移成本:Node.js 斷言模塊幾乎提供了我們所需的所有功能,因此從 chai 遷移并不像我們想象的那么痛苦。
  • 可維護(hù)性:有更多的人參與 Node.js 項(xiàng)目來維護(hù) Node.js 測試運(yùn)行器。
  • 未來的好處:我們相信測試運(yùn)行器會隨著時間的推移而改進(jìn),并最終節(jié)省我們 CI 工作流程中的一些時間。

Astro 在其博客最后由提到以下兩句話:REa28資訊網(wǎng)——每日最新資訊28at.com

“Node.js 測試運(yùn)行器仍然年輕,并且在積極開發(fā)中,有望變得更好。例如,Node.js 項(xiàng)目目前正在評估在我們提出使用案例后使用主進(jìn)程運(yùn)行測試”。REa28資訊網(wǎng)——每日最新資訊28at.com

“以真正的開源合作精神,我們很高興通過將我們的測試切換到 Node.js 來改進(jìn) Astro,反過來也將改進(jìn) Node.js 本身!”REa28資訊網(wǎng)——每日最新資訊28at.com

這也是一種相互合作,相互成就吧!感謝 Astro 能夠促進(jìn) Node.js 內(nèi)置測試模塊的發(fā)展!REa28資訊網(wǎng)——每日最新資訊28at.com

參考 https://astro.build/blog/node-test-migration/REa28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-80336-0.htmlAstro 宣布:將超過 500 多個測試從 Mocha 遷移到了 Node.js

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 滴滴送花 3 月暴增 19 倍 烏魯木齊市民最愛快送鮮花

下一篇: 深入探索堆:Go語言中的高效數(shù)據(jù)結(jié)構(gòu)

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 璧山县| 托克逊县| 波密县| 长葛市| 罗江县| 呼和浩特市| 惠水县| 肃北| 堆龙德庆县| 通道| 竹山县| 翁牛特旗| 千阳县| 郎溪县| 岑巩县| 抚宁县| 鄄城县| 兴宁市| 革吉县| 河西区| 麻阳| 华池县| 乐都县| 建昌县| 乌拉特前旗| 咸丰县| 青岛市| 石渠县| 广东省| 灵山县| 上饶县| 四平市| 巩留县| 阳江市| 新昌县| 麻栗坡县| 武山县| 泸溪县| 南宫市| 孟州市| 大港区|