当前位置:首页 > 科技  > 软件

Astro 宣布:将超过 500 多个测试从 Mocha 迁移到了 Node.js

来源: 责编: 时间:2024-03-29 09:19:59 279观看
导读近期,Astro 在其官方博客中宣布,虽然我们对 Mocha 感到满意,但也在寻求让我们的 CI 作业更快的方法。最终将超过 500 多个测试从 Mocha 迁移到了 Node.js。先了解下 Astro 是什么?Astro 是适合构建像博客、营销网站、电子

近期,Astro 在其官方博客中宣布,虽然我们对 Mocha 感到满意,但也在寻求让我们的 CI 作业更快的方法。最终将超过 500 多个测试从 Mocha 迁移到了 Node.js。Oih28资讯网——每日最新资讯28at.com

先了解下 Astro 是什么?Astro 是适合构建像博客、营销网站、电子商务网站这样的以内容驱动的网站的 Web 框架。没有强绑定一些 UI 框架,它支持像 React、Preact、Svelte、Vue、Solid、Lit、HTMX、Web 组件等这些前端 UI 框架。Oih28资讯网——每日最新资讯28at.com

一开始,Astro 只是迁移了一个尚未使用 astro 集成套件的软件包:create-astro,由 Mocha 转为使用 Node.js 内置断言库 node:assert。Oih28资讯网——每日最新资讯28at.com

当成功迁移了第一个包后,潘多拉的盒子便已打开。之后开始尝试迁移 @astrojs/node 包的测试套件。这个集成是 Astro 下载量最大的集成之一。Oih28资讯网——每日最新资讯28at.com

根据其博客描述,对最终的结果是感到满意的。在迁移之后没有看到性能出现任何显著退化。Oih28资讯网——每日最新资讯28at.com

Node.js 内置测试模块毕竟还比较新,在实现过程中也有遇到一些问题的,例如:Oih28资讯网——每日最新资讯28at.com

  • 一开始发现 “Node.js 测试运行器比 Mocha 慢得多”,经过调查发现是 Node.js 为每个测试文件生成了一个新进程,以确保每个测试套件都在隔离的环境中运行。这样好处是保证了测试环境不会被污染。但通过创建一个临时文件,导入所有的测试套件,让 Node.js 执行该文件,这样可在性能上得到保证。
  • 不能传递 --test-concurrency 标志(仅在 Node.js 21 及以上版本可用)
  • 参数名称冗长:

--test-name-pattern 而不是 --match,-m 参数;Oih28资讯网——每日最新资讯28at.com

--test-timeout 而不是 --timeout,-t 参数,等等。Oih28资讯网——每日最新资讯28at.com

  • Mocha 中只需使用 it.only 就可以运行单个测试套件。而 Node.js 中你必须:
  • 使用 --test-only 参数运行 CLIOih28资讯网——每日最新资讯28at.com

  • 将 .only 添加到包含要运行的 it.only 的 describe 中。Oih28资讯网——每日最新资讯28at.com

  • 如果有多个 describe 实例,所有这些实例都需要标记为 .only。Oih28资讯网——每日最新资讯28at.com

对于 Astro 来讲,使用 Node.js 内置测试运行器,对于它们的主 monorepo 有一些优势:Oih28资讯网——每日最新资讯28at.com

  • 减少了我们 monorepo 中需要安装和维护的依赖项:mocha 和 chai。
  • API 迁移成本:Node.js 断言模块几乎提供了我们所需的所有功能,因此从 chai 迁移并不像我们想象的那么痛苦。
  • 可维护性:有更多的人参与 Node.js 项目来维护 Node.js 测试运行器。
  • 未来的好处:我们相信测试运行器会随着时间的推移而改进,并最终节省我们 CI 工作流程中的一些时间。

Astro 在其博客最后由提到以下两句话:Oih28资讯网——每日最新资讯28at.com

“Node.js 测试运行器仍然年轻,并且在积极开发中,有望变得更好。例如,Node.js 项目目前正在评估在我们提出使用案例后使用主进程运行测试”。Oih28资讯网——每日最新资讯28at.com

“以真正的开源合作精神,我们很高兴通过将我们的测试切换到 Node.js 来改进 Astro,反过来也将改进 Node.js 本身!”Oih28资讯网——每日最新资讯28at.com

这也是一种相互合作,相互成就吧!感谢 Astro 能够促进 Node.js 内置测试模块的发展!Oih28资讯网——每日最新资讯28at.com

参考 https://astro.build/blog/node-test-migration/Oih28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-80336-0.htmlAstro 宣布:将超过 500 多个测试从 Mocha 迁移到了 Node.js

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 滴滴送花 3 月暴增 19 倍 乌鲁木齐市民最爱快送鲜花

下一篇: 深入探索堆:Go语言中的高效数据结构

标签:
  • 热门焦点
  • 一加Ace2 Pro真机揭晓 钛空灰配色质感拉满

    终于,在经过了几波预热之后,一加Ace2 Pro的外观真机图在网上出现了。还是博主数码闲聊站曝光的,这次的外观设计还是延续了一加11的方案,只是细节上有了调整,例如新加入了钛空灰
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • 0糖0卡0脂 旭日森林仙草乌龙茶优惠:15瓶到手29元

    旭日森林无糖仙草乌龙茶510ml*15瓶平时要卖为79.9元,今日下单领取50元优惠券,到手价为29.9元。产品规格:0糖0卡0脂,添加草本仙草汁,清凉爽口,富含茶多酚,保留
  • Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 三言两语说透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是两种很有用的技术,可以帮助我们写出更加优雅、泛用的函数。本文将首先介绍柯里化和反柯里化的概念、实现原理和应用
  • 多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • 微信语音大揭秘:为什么禁止转发?

    大家好,我是你们的小米。今天,我要和大家聊一个有趣的话题:为什么微信语音不可以转发?这是一个我们经常在日常使用中遇到的问题,也是一个让很多人好奇的问题。让我们一起来揭开这
  • 三星推出Galaxy Tab S9系列平板电脑以及Galaxy Watch6系列智能手表

    2023年7月26日,三星电子正式发布了Galaxy Z Flip5与Galaxy Z Fold5。除此之外,Galaxy Tab S9系列平板电脑以及三星Galaxy Watch6系列智能手表也同期
  • iQOO Neo8 Pro真机谍照曝光:天玑9200+和V1+旗舰双芯加持

    去年10月,iQOO推出了iQOO Neo7系列机型,不仅搭载了天玑9000+,而且是同价位唯一一款天玑9000+直屏旗舰,一经上市便受到了用户的广泛关注。在时隔半年后,
Top