自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

近期,Astro 在其官方博客中宣布,雖然我們對 Mocha 感到滿意,但也在尋求讓我們的 CI 作業(yè)更快的方法。最終將超過 500 多個(gè)測試從 Mocha 遷移到了 Node.js。

先了解下 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 框架。

一開始,Astro 只是遷移了一個(gè)尚未使用 astro 集成套件的軟件包:create-astro,由 Mocha 轉(zhuǎn)為使用 Node.js 內(nèi)置斷言庫 node:assert。

當(dāng)成功遷移了第一個(gè)包后,潘多拉的盒子便已打開。之后開始嘗試遷移 @astrojs/node 包的測試套件。這個(gè)集成是 Astro 下載量最大的集成之一。

根據(jù)其博客描述,對最終的結(jié)果是感到滿意的。在遷移之后沒有看到性能出現(xiàn)任何顯著退化。

Node.js 內(nèi)置測試模塊畢竟還比較新,在實(shí)現(xiàn)過程中也有遇到一些問題的,例如:

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

--test-name-pattern 而不是 --match,-m 參數(shù);

--test-timeout 而不是 --timeout,-t 參數(shù),等等。

  • Mocha 中只需使用 it.only 就可以運(yùn)行單個(gè)測試套件。而 Node.js 中你必須:
  • 使用 --test-only 參數(shù)運(yùn)行 CLI
  • 將 .only 添加到包含要運(yùn)行的 it.only 的 describe 中。
  • 如果有多個(gè) describe 實(shí)例,所有這些實(shí)例都需要標(biāo)記為 .only。

對于 Astro 來講,使用 Node.js 內(nèi)置測試運(yùn)行器,對于它們的主 monorepo 有一些優(yōu)勢:

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

Astro 在其博客最后由提到以下兩句話:

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

“以真正的開源合作精神,我們很高興通過將我們的測試切換到 Node.js 來改進(jìn) Astro,反過來也將改進(jìn) Node.js 本身!”

這也是一種相互合作,相互成就吧!感謝 Astro 能夠促進(jìn) Node.js 內(nèi)置測試模塊的發(fā)展!

參考 https://astro.build/blog/node-test-migration/

責(zé)任編輯:武曉燕 來源: Nodejs技術(shù)棧
相關(guān)推薦

2012-05-30 09:12:46

NodeJSRubyRails

2011-04-25 09:35:31

TwitterJava

2022-05-18 09:48:07

ArmGitHubGitLab

2021-11-29 09:44:03

UmiJSVite前端

2012-10-24 14:56:30

IBMdw

2021-07-09 00:24:10

No.jsNode.js原理

2017-03-22 11:32:17

Node.js單元測試

2013-04-27 10:37:35

Python

2022-11-01 08:55:55

編譯工具MavenSpring

2013-11-01 09:34:56

Node.js技術(shù)

2015-03-10 10:59:18

Node.js開發(fā)指南基礎(chǔ)介紹

2011-12-14 10:06:55

UnixLinux服務(wù)器

2013-03-08 09:54:00

BAENode.js百度云

2011-09-09 14:23:13

Node.js

2011-11-01 10:30:36

Node.js

2011-09-08 13:46:14

node.js

2011-09-02 14:47:48

Node

2011-11-10 08:55:00

Node.js

2016-05-18 10:15:25

PythonNode.js

2022-10-12 08:00:00

語音識別Node.js音頻質(zhì)量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號