呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态

图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
联系频道主:@cosine_yu
#优质博文 #AI #AST #React #前端 #测试 #工程实践 #ClaudeCode #codemod #course
好文章,关于使用 AI 进行重构迁移的教科书式文章。
Migrating 6000 React tests using AI Agents and ASTs

AI 摘要:作者在 Filestage 的前端项目中使用 AI Agents(特别是 Claude Code)与 AST(Abstract Syntax Tree)技术,将近千个测试文件、六千多条测试从 React Testing Library v13 迁移至 v14。文章展示了从制定迁移指南、分步提交 PR、编写 codemod、自动化验证到改进 AI 提示的完整过程,最后总结出 AI 在大规模代码迁移中的优势与局限,并强调“小步迭代 + 自动化验证”的工程基本功仍然至关重要。

[以下是方便搜索索引的大纲 (AI 生成),请读原文]
1. 项目背景与动机
• 公司使用旧版 React Testing Library 编写了 970 个测试文件,总计 6000 多测试用例。
• 升级至 v14 后 API 完全异步化,行为变化大,手动迁移代价极高。
• 作者决定尝试用 AI 辅助完成大规模迁移。

2. 准备与迁移指南
• 首次直接用 Claude Code CLI 自动迁移失败,暴露出测试失败过多、AI 调试混乱的问题。
• 于是转而使用 Claude Web 模式制作详细的迁移指南,分析版本差异与新 API。
• 确定主要变化:异步 API、测试 setup 模式更新、时序逻辑差异需人工介入。

3. 拆分改动与依赖并行安装
• 利用 NPM 的包别名功能同时运行 v13 与 v14,避免一次性大变更。
• 生成迁移指南并提交第一份 PR,保证团队迭代可控。

4. 编写与测试 codemod 自动化工具
• 使用 jscodeshift 解析代码为 AST,再生成批量修改工具。
• 编写输入输出测试用例以验证 codemod 效果(例如导入路径、 renderWithUserEvent 封装替换)。
• 自动测试 codemod 确保修改一致性和可验证性。

5. 实际迁移与 AI 协作循环
• 通过详细 prompt 指令让 Claude Code 分批迁移 10 个测试文件,执行 lint 检查与单测验证。
• 持续观察失败案例,不断改进 codemod 与迁移指南。
• 迁移指南从最初 4500 字扩充到 7500 字;codemod 从 271 行发展到近千行,测试覆盖更完备。
• 共执行 50 次迁移,形成 50 个独立 PR。

6. AI 性能与局限分析
• Claude Code 在调试测试与识别重复模式方面表现优异。
• 局限包括 context 深度不足、长任务遗忘指令、无法稳定维持覆盖率。
• 通过增加 JSON 格式的覆盖率报告输入,AI 能理解覆盖问题并修复。
• 网络波动与服务超限导致中断,验证仍需人工把关。

7. 工程启示与最终成果
• 整体用一周完成迁移,每个 PR 约半小时。
• 若纯人工迁移,估计需数月。
• 迁移过程机械但 AI 显著提升效率。
• 保持验证自动化、关注 edge case、理解底层工具机制,是让 AI 发挥价值的关键。
• 作者展望未来 AI 将进一步解放开发者,从“重复劳动”转向更有创造力的工作。


author Elio Capella Sánchez Migrating 6000 React tests using AI Agents and ASTs
#优质博文 #测试 #前端 #工程化 #新动态
Announcing Vitest 4.0:Vitest 团队宣布推出 Vitest 4.0,这是该测试框架的重大版本更新。此次版本将 Browser Mode 标记为稳定,让开发者能在真实浏览器环境中运行单元测试,从而获得更高的可靠性。此外还引入了 视觉回归测试 与 Playwright Trace 支持,提升了调试与测试体验。

[以下是方便搜索索引的大纲 (AI 生成),请读原文]
1. 发布概况
• Vitest 在过去一年内从每周 700 万下载增长至 1700 万,社区影响力显著提升。
• 经过近一年的开发,Vitest 4.0 正式发布。
• 该版本包含若干重大变更(breaking changes),需参考迁移指南进行升级适配。

2. Browser Mode 稳定
• Browser Mode 结束 Beta 阶段,正式进入稳定版。
• 支持在真实浏览器中运行组件测试,不再局限于 JSDOM 等模拟环境。
• 使用相同的 Vitest API,无需修改测试代码。
• 基于 Playwright 等 provider 实现执行环境,但不替代现有 E2E 工具,仅改变测试运行方式。

3. 新增功能与改进
视觉回归测试 (Visual Regression Test):在 Browser Mode 下进行组件截图与参考图对比,用于检测视觉变化。
Playwright Traces:生成可在 Trace Viewer 中分析的跟踪文件,辅助调试。
• 报告系统 (reporter) 更新、类型感知钩子 (type-aware hooks) 等多项改进。

4. 版本变更与迁移
• 此次为主版本升级,包含不兼容改动。
• 官方提供迁移指南:Migration guide

5. 未来计划与社区
• 团队将重点优化性能和 Browser Mode 体验。
• 报告问题可通过 GitHub Issues 提交。
Announcing Vitest 4.0
#优质博文 #前端 #新动态 #javascript #css #node
Web Weekly #158

AI 摘要:本期 Web Weekly 聚焦前端开发领域的新提案、工具优化与实用技巧,涵盖 Edge 团队的 ariaNotify() 和 console.context() 提案、Node.js 双包风险、CSS 新单位 lh 的应用,以及 Chrome 原生 CSS 轮播的可访问性分析。同时推荐了有趣的 CSS 全息效果、小众浏览器和 JavaScript Set 新方法等资源。

1. Edge 团队新提案
• document.ariaNotify() :简化无障碍通知的 DOM 操作,直接通过 JavaScript 触发屏幕阅读器提示。
• console.context() :提供日志分组、样式和过滤功能,优化调试体验。

2. Node.js 双包风险警告
官方建议仅发布一种模块格式(CJS 或 ESM),避免因混合格式导致的兼容性问题。

3. CSS 新特性与实践
• lh 单位:基于行高的垂直间距控制,提升视觉一致性。
• Chrome 原生 CSS 轮播:新增 scroll-marker-group 等属性,但当前可访问性不足(Sara 评估,她的结论是:他们还没有准备好,但你自己要多读一读)。
纯 CSS 全息效果:纯 CSS 实现,利用 mix-blend-mode 和 background-attachment 实现。 解释博客

4. JavaScript 更新
JavaScript Set 新方法:difference()、intersection() 等集合操作。
JavaScript 类中的静态初始化块 - 不久前,我了解到您可以将 "nameless static " 块放入 ECMAScript 类中。他们是做什么的?
• RegExp.escape():自动转义正则表达式特殊字符(Chromium 136+)。

5. 工具与资源推荐
小众浏览器:Vivaldi 及其他非主流选项。
• 自然语言日期解析库 wanasit/chrono
Node.js 测试最佳实践指南 #测试
• MCP 服务器的集合 punkpeye/awesome-mcp-servers#AI #MCP

6. 其他亮点
• 趣味网站:owlsintowels.org(猫头鹰主题)。
• 设计技巧:复杂曲线边框的 CSS 实现方案。
My Three Strikes Rule for Blogging 第三次在对话中使用某个想法时,您必须将其写在博客上。 #技术写作


author Stefan Judis Web Weekly #158
#优质博文 #本地化 #前端 #测试
系统抽风蹦出的「火星文」,如何帮助推动本地化?
https://sspai.com/post/90269

原标题:在「机器翻译」盛行的时代,「伪本地化」是否还有必要?

AI 摘要:文章探讨了在机器翻译技术日益发展的背景下,伪本地化在软件测试中的必要性。伪本地化通过改变源语言的呈现方式而非内容,帮助开发人员在本地化之前识别和修复潜在问题。与机器翻译不同,伪本地化能同时模拟多种语言特征,如字符集、文本长度、书写方向等,确保软件在不同语言环境中的可读性和功能完整性,因此仍然是有效的本地化测试方法。


by SUNTRISE
 
 
Back to Top