成人免费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-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

2011-11-10 08:55:00

Node.js

2020-10-13 18:16:19

微服務架構數據

2016-05-18 10:15:25

PythonNode.js
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品毛片一区二区在线看 | 毛片毛片毛片毛片毛片 | 羞羞视频免费观看入口 | 好姑娘高清在线观看电影 | 91精品国产综合久久久密闭 | 欧美操操操| 久久这里只有精品首页 | 亚洲精品国产一区 | 亚洲导航深夜福利涩涩屋 | 成人深夜福利 | 精品国产91亚洲一区二区三区www | 亚洲欧美一区二区三区在线 | 国产精品不卡一区 | 91精品在线观看入口 | 污污的网站在线观看 | 国产精品福利视频 | 天天操夜夜骑 | 国产黄色网址在线观看 | 国产一区二区精品在线 | 精品久久久久一区二区国产 | 色婷婷精品国产一区二区三区 | 国产一区二区三区在线视频 | 中文字幕免费在线 | 亚洲一区二区三区视频 | 久久久久亚洲视频 | 亚洲性视频| 密桃av| 午夜成人在线视频 | 成人免费黄视频 | 爱爱视频日本 | 国产午夜精品久久久 | www.久 | 亚洲精品不卡 | 亚洲国产一区二区三区在线观看 | 久久99深爱久久99精品 | 欧美一区二区三区国产 | 91视频大全| 精品一区二区三区视频在线观看 | 亚洲人在线播放 | 老司机67194精品线观看 | 日本成人综合 |