成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

先了解下 Astro 是什么?Astro 是適合構建像博客、營銷網站、電子商務網站這樣的以內容驅動的網站的 Web 框架。沒有強綁定一些 UI 框架,它支持像 React、Preact、Svelte、Vue、Solid、Lit、HTMX、Web 組件等這些前端 UI 框架。

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

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

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

Node.js 內置測試模塊畢竟還比較新,在實現過程中也有遇到一些問題的,例如:

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

--test-name-pattern 而不是 --match,-m 參數;

--test-timeout 而不是 --timeout,-t 參數,等等。

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

對于 Astro 來講,使用 Node.js 內置測試運行器,對于它們的主 monorepo 有一些優勢:

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

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

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

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

這也是一種相互合作,相互成就吧!感謝 Astro 能夠促進 Node.js 內置測試模塊的發展!

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

責任編輯:武曉燕 來源: Nodejs技術棧
相關推薦

2012-05-30 09:12:46

NodeJSRubyRails

2022-05-18 09:48:07

ArmGitHubGitLab

2011-04-25 09:35:31

TwitterJava

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技術

2015-03-10 10:59:18

Node.js開發指南基礎介紹

2011-12-14 10:06:55

UnixLinux服務器

2013-03-08 09:54:00

BAENode.js百度云

2011-11-10 08:55:00

Node.js

2011-09-08 13:46:14

node.js

2011-11-01 10:30:36

Node.js

2011-09-02 14:47:48

Node

2011-09-09 14:23:13

Node.js

2020-10-13 18:16:19

微服務架構數據

2016-05-18 10:15:25

PythonNode.js
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线免费黄色小视频 | 日韩欧美亚洲 | 超碰人人人 | 国产精品久久久久不卡 | 一区二区三区小视频 | 波多野结衣一二三区 | 久久机热| 欧美国产一区二区 | 91国内在线观看 | 日韩中文一区二区三区 | 久久久久久黄 | 亚洲视频精品 | 精品久久久久久久久亚洲 | 亚洲一区二区三区四区视频 | 精品日韩| 国产免费视频 | 日本小电影网站 | 午夜影院在线观看 | 网站国产 | 亚洲成年影院 | 欧美区日韩区 | 国产黄色在线 | 国产精品18毛片一区二区 | 成人18亚洲xxoo| 国产精品欧美一区二区三区 | 放个毛片看看 | 91久久精品日日躁夜夜躁国产 | 国产精品久久久久久久久久免费看 | 精品久久久久久久久久久久 | 欧美日韩亚洲二区 | 日韩国产在线观看 | 污视频在线免费观看 | 久久综合久久自在自线精品自 | 中文字幕视频在线观看 | 国产精品精品久久久 | 日韩成人免费视频 | 精品少妇一区二区三区在线播放 | 亚洲精品www | 亚洲精品一区二区另类图片 | 国产精品视频免费观看 | 天天干天天玩天天操 |