近期,Astro 在其官方博客中宣布,雖然我們對(duì) Mocha 感到滿意,但也在尋求讓我們的 CI 作業(yè)更快的方法。最終將超過(guò) 500 多個(gè)測(cè)試從 Mocha 遷移到了 Node.js。
先了解下 Astro 是什么?Astro 是適合構(gòu)建像博客、營(yíng)銷(xiāo)網(wǎng)站、電子商務(wù)網(wǎng)站這樣的以?xún)?nèi)容驅(qū)動(dòng)的網(wǎng)站的 Web 框架。沒(méi)有強(qiáng)綁定一些 UI 框架,它支持像 React、Preact、Svelte、Vue、Solid、Lit、HTMX、Web 組件等這些前端 UI 框架。
一開(kāi)始,Astro 只是遷移了一個(gè)尚未使用 astro 集成套件的軟件包:create-astro,由 Mocha 轉(zhuǎn)為使用 Node.js 內(nèi)置斷言庫(kù) node:assert。
當(dāng)成功遷移了第一個(gè)包后,潘多拉的盒子便已打開(kāi)。之后開(kāi)始嘗試遷移 @astrojs/node 包的測(cè)試套件。這個(gè)集成是 Astro 下載量最大的集成之一。
根據(jù)其博客描述,對(duì)最終的結(jié)果是感到滿意的。在遷移之后沒(méi)有看到性能出現(xiàn)任何顯著退化。
Node.js 內(nèi)置測(cè)試模塊畢竟還比較新,在實(shí)現(xiàn)過(guò)程中也有遇到一些問(wèn)題的,例如:
--test-name-pattern 而不是 --match,-m 參數(shù);
--test-timeout 而不是 --timeout,-t 參數(shù),等等。
使用 --test-only 參數(shù)運(yùn)行 CLI
將 .only 添加到包含要運(yùn)行的 it.only 的 describe 中。
如果有多個(gè) describe 實(shí)例,所有這些實(shí)例都需要標(biāo)記為 .only。
對(duì)于 Astro 來(lái)講,使用 Node.js 內(nèi)置測(cè)試運(yùn)行器,對(duì)于它們的主 monorepo 有一些優(yōu)勢(shì):
Astro 在其博客最后由提到以下兩句話:
“Node.js 測(cè)試運(yùn)行器仍然年輕,并且在積極開(kāi)發(fā)中,有望變得更好。例如,Node.js 項(xiàng)目目前正在評(píng)估在我們提出使用案例后使用主進(jìn)程運(yùn)行測(cè)試”。
“以真正的開(kāi)源合作精神,我們很高興通過(guò)將我們的測(cè)試切換到 Node.js 來(lái)改進(jìn) Astro,反過(guò)來(lái)也將改進(jìn) Node.js 本身!”
這也是一種相互合作,相互成就吧!感謝 Astro 能夠促進(jìn) Node.js 內(nèi)置測(cè)試模塊的發(fā)展!
參考 https://astro.build/blog/node-test-migration/
本文鏈接:http://m.www897cc.com/showinfo-26-80336-0.htmlAstro 宣布:將超過(guò) 500 多個(gè)測(cè)試從 Mocha 遷移到了 Node.js
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com