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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

标签:
  • 热门焦点
  • 服务存储设计模式:Cache-Aside模式

    Cache-Aside模式一种常用的缓存方式,通常是把数据从主存储加载到KV缓存中,加速后续的访问。在存在重复度的场景,Cache-Aside可以提升服务性能,降低底层存储的压力,缺点是缓存和底
  • 企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • 十个简单但很有用的Python装饰器

    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用
  • 中国家电海外掘金正当时|出海专题

    作者|吴南南编辑|胡展嘉运营|陈佳慧出品|零态LT(ID:LingTai_LT)2023年,出海市场战况空前,中国创业者在海外纷纷摩拳擦掌,以期能够把中国的商业模式、创业理念、战略打法输出海外,他们依
  • 得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的“在线鉴别”,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 首发天玑9200+ iQOO Neo8系列发布首销售价2299元起

    2023年5月23日晚,iQOO Neo8系列正式发布。其中,Neo系列首款Pro之作——iQOO Neo8 Pro强悍登场,限时售价3099元起;价位段最强性能手机iQOO Neo8同期上市
  • OPPO K11样张首曝:千元机影像“卷”得真不错!

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
  • 联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将于秋季新品会上推出,官方按照惯例直接在发布会前给出了机型的所有参数。联想小新 Pad Pro 12.6 将搭载高通骁龙 870 处理器,重量为 5
  • 最薄的14英寸游戏笔记本电脑 Alienware X14已可以购买

    2022年1月份在国际消费电子展(CES2022)上首次亮相的Alienware新品——Alienware X14现在已经可以购买了,这款笔记本电脑被誉为世界上最薄的 14 英寸游戏笔
Top