跳至主内容

Jest 23:🔥 极速畅快的测试体验

· 8 分钟阅读
Ricky Hanlon
Ricky Hanlon
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

今天,我们激动地宣布 Jest 23 正式发布——这是迄今为止我们规模最大的一次主版本更新!在超过 100 位贡献者的共同努力下,我们带来了大量新功能和错误修复。感谢社区中的每一位成员,是你们让 JavaScript 测试变得如此畅快!

我们还要热烈欢迎 Babelwebpack 加入 Jest 社区!在从 Mocha 迁移到 Jest 23 Beta 后,webpack 的完整测试套件执行时间缩短了 6 倍——从超过 13 分钟降至 2 分 20 秒。#blazingmeansgood

以下是一些 Jest 23 的重要亮点和破坏性变更。

Jest 22:优化与自定义运行器

· 8 分钟阅读
Simen Bekkhus
Simen Bekkhus
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

今天我们正式发布 Jest 的全新主要版本,该版本优化了几乎所有的组件,旨在提供更稳固的测试基础。我们与 Jest 社区共同实施了多项全面改进,帮助您更充分地发挥 Jest 的潜力。同时,我们将自定义运行器功能从实验阶段正式推出,并新增了 jest-worker 包来实现跨进程的并行任务处理。下方列出了主要亮点,但请务必查阅(一如既往)完整的更新日志

Jest 20:💖 愉悦的测试体验 & 🏃🏽 多项目运行器

· 7 分钟阅读
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

几个月前我们发布了 Jest 19,它带来了重大新功能并成为当时最大的版本更新。而今天的 Jest 20 包含的变更量是前版的两倍,彻底重写了测试运行器,并新增了测试 API。新版本为项目提供了前所未有的自定义和配置能力,同时确保升级过程丝滑流畅。超越"无痛 JavaScript 测试",我们相信 Jest 现在提供了愉悦的 JavaScript 测试体验。让我们深入看看最亮眼的新特性和改进:

多项目运行器 & 配置重构

此前,Jest 每次只能处理一个项目。当您同时开发多个具有独立设置的小型项目时,这种限制常令人困扰。Jest 20 彻底重写了测试运行器,使其能在单实例中并行运行多个项目——例如同时处理 React 前端和 Node.js 后端项目。以下视频展示了 Jest 同时为 ReactRelayYarn 和 Jest 自身运行测试的场景:

multi-runner

🃏 Jest 19:沉浸式观察模式与测试平台改进

· 9 分钟阅读
Rogelio Guzman
Rogelio Guzman
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

今天我们很高兴发布 Jest 测试平台的第 19 版。这是迄今为止我们推出的最大规模 Jest 版本,我们非常激动地向您展示过去两个月构建的新功能:

沉浸式观察模式

我们完全重写了观察模式,使其即时响应且更具扩展性。因此使用体验真正实现了沉浸式:文件更改后测试立即重新运行,并且我们简化了选择特定测试的操作流程。

卓越的开发者体验

· 3 分钟阅读
Héctor Ramos
Héctor Ramos
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

我们坚信出色的文档对于提供卓越的开发者体验至关重要。文档应当清晰简洁,无论对新用户还是资深开发者都实用高效。基于这一理念,我们近期投入时间对Jest网站进行了全面升级。

优化的文档

您访问文档时首先会注意到侧边栏的更新。现在文档划分为三个主要板块:Jest简介、功能详解指南以及完整的API参考。

简介章节将引导您完成安装Jest、编写首个测试用例,到使用匹配器(match)和测试异步代码的全过程。如果您是Jest新手或需要快速复习,这些文档能助您迅速上手。若您已使用过Jest只需查阅安装指引,入门指南就是您的最佳选择。

当您熟练使用Jest后,可进入高阶指南部分。全新的快照测试指南涵盖了创建和维护快照测试用例的所有要点。

最后,我们彻底重构了API参考文档。您现在可以查阅Jest所有全局API匹配器以及jest命令行工具支持的所有参数的详细信息。

Jest 的 2016 年

· 9 分钟阅读
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

2016 年对 JavaScript 测试领域而言是 Jest 的重要一年。我们在上半年重写了 Jest,建立了坚实基础以显著提升性能并优化 JavaScript 代码测试的开发者体验。我们对整个代码库进行了 Flow 类型标注,为 Jest 本身构建了大量集成测试,并采用 lerna 将 Jest 从框架转变为 零痛苦的 JavaScript 测试平台

新推出的 react-test-renderer 终于实现了对 react-native 组件的测试。通过 jest-react-native 预设(现已直接集成到 react-native),Jest 现可开箱即用地支持任何 React 项目,并在 create-react-appreact-native 项目中预配置。我们将 Jest 的核心组件集成到 react-native 的打包工具中,而全新的快照测试功能更延伸至 Jest 之外:它作为 "storyshots" 集成到 React Storybook 中,并被 ava 等其他测试运行器采用。

Jest 16.0:性能飙升的 CLI 及社区更新

· 6 分钟阅读
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

距离上一次重大版本发布已有一个月,这段时间我们对 Jest 进行了诸多重要改进。在此次主要更新中,我们调整了快照格式,升级 Jest 后可能需要更新现有快照。我们不会轻易做出这类变更,预计未来也不会频繁调整,但认为有必要定期优化格式设计。

CLI 全面升级

reporter

Jest 16 配备了全新的报告器界面,实时展示运行中的测试用例、动态摘要及基于历史测试时长预估的进度条。同时优化了 CLI 输出在不同配色方案下的显示效果。若前次运行存在失败用例,Jest 将优先执行这些测试,以便用户快速获取有效反馈。

Jest 15.0:全新默认配置

· 8 分钟阅读
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

过去一年中,我们致力于让Jest更快配置更简单新增海量功能并构建了快照测试。然而有两个领域我们投入甚少:CLI输出和用户体验。通过Jest 15,我们彻底改造了框架,使其对新手和经验丰富的用户都更易用。我们欣喜地看到对Jest的投资正在获得回报:能够快速迭代框架,为Facebook和开源社区提供光速般的改进。Jest的目标是开箱即用,并尽可能减少配置需求。我们最近在create-react-app的讨论中阐述了这一设计理念。

最重要的变更是全新默认配置。现有Jest用户很可能需要更新配置以适应Jest 15。多数情况下这将简化您的设置,升级过程中Jest会提供实用的错误提示。所有新默认项均可按需禁用,但我们认为这些功能在特定场景中至关重要,并将长期在Facebook内部持续使用和支持。API文档也已全面重写以体现这些变更。React的这个PR展示了现有项目需要进行的部分调整。

Jest 14.0: React 树快照测试

· 6 分钟阅读
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

Jest 的核心哲学之一是提供集成的"零配置"体验。我们致力于让编写有价值的测试变得尽可能轻松。我们观察到,当工程师获得开箱即用的工具时,他们会编写更多测试,从而构建出稳定健康的代码库。

一个长期存在的难题是如何高效编写 React 测试。市面上已有诸多工具,例如 ReactTestUtilsenzyme。这些工具都很优秀且被广泛使用。然而工程师们常反馈,编写测试花费的时间甚至超过了开发组件本身。结果导致许多人完全放弃了测试,最终引发代码稳定性问题。工程师们告诉我们,他们真正需要的只是确保组件不会发生意外变更。

Jest 13.0:Flow 与 REPL

· 3 分钟阅读
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

今天我们非常高兴地宣布 Jest 的下一个主要版本。我们对 Jest 进行了重大改进,这些变化将使您和 Facebook 的所有 JavaScript 测试基础设施受益。最重要的是,在 Facebook 最近的 Jest 黑客马拉松期间,我们为所有 Jest 代码添加了静态类型。十五位开发者日夜奋战,为 Jest 添加了 Flow 类型支持并实现了新功能。Flow 类型主要带来两大价值:首先,我们坚信代码是用来阅读的。大多数情况下,代码只编写一次,但会被数十人在数年间反复阅读。为项目添加静态类型有助于代码文档化,并能解释 Jest 的部分架构设计。其次,静态类型使维护更加轻松,让我们能够更自信地重构 Jest 的各个模块,而无需担心破坏性变更。

Flow 项目在 Facebook 内部经历了长足发展,已成功应用于我们的多个框架和几乎所有产品代码。它的采用过程可以完美并行化——只需逐个文件添加类型标注,直到代码库大部分完成类型化。此时 Flow 就能提供真正的价值,帮助指导大规模变更。通过这种方式,我们发现了很多细微的边界情况和错误。