Vitest 进阶技巧
Advanced Vitest Patterns
你是否知道这种工具“契合”的感觉?当你突然对某个工具如此熟悉,以至于它不再仅仅是一个达成目的的手段,而是一个为你创造更好体验的工具时。在过去十年里,这种转变发生在我使用的许多工具上。
今天,我希望这种转变也能发生在你身上,对象是 Vitest。
在这个工作坊中,我的目标是让你成为 Vitest 的超级用户。这意味着要超越基础,进入高级阶段。这意味着要精通 Vitest,让你能够自信地创造自定义测试体验,理解测试运行器的内部机制,并将这些知识用于解决从复杂问题到测试性能不佳等各种问题。
欢迎来到高级 Vitest 模式工作坊!
你会学到什么
本次工作坊的核心主题是定制化 。我相信你对工具的掌握程度取决于你对其理解的深度以及你在定制它们时的舒适度。通过这次工作坊,我收集了一些最佳技巧和建议,帮助你成为真正的 Vitest 超级用户。
我还将利用这次工作坊的机会,向你传授测试设置的重要性。在练习过程中,你将通过自定义插件、匹配器和相等性测试器等工具,打造属于自己的测试体验。这将帮助你为复杂、真实的实际应用编排测试。
设置
在第一个模块中,你将更深入地了解 Vitest。从使用 Vitest 的 Visual Studio Code 扩展更快地编写和调试测试,到配置和可视化代码覆盖率,以及设置多个测试项目以充分发挥你的测试运行器的全部功能。
背景
您将学习如何通过创建自定义 fixtures 来自定义您的测试体验。发现 fixture 语法、其生命周期以及如何在类型安全的方式下实现它们。然后,记下 fixture 设计的最佳实践,以确保您的自定义 fixtures 消除复杂性,而不是引入它。
断言
在自定义主题之后,了解您如何可以超级增强您的断言。首先,您将创建自己的 matchers 来帮助表达您对测试应用的期望,并使您的测试读起来像人类语言。然后,探索什么是相等测试器以及您如何可以教会 Vitest 的内置 .toEqual matcher 来比较不可比较的内容。
掌握如何使用 expect.poll 编写最终状态的断言,并通过理解硬断言与软断言之间的平衡,完全掌控失败断言所提供的信息量。
性能
是的,我留最好的内容到最后。性能。
学习如何使用 Vitest 内置指标以及 vitest-profiler-plugin 来分析缓慢的测试运行。你将读懂 CPU 和堆内存分析报告,理解它们的意义,并学会如何利用它们找出测试中的问题区域。
此后的内容都是让测试更快的技巧。我们谈论的是高达 40 倍的提升(这不是笔误)。窥探 Vitest 如何调度测试运行以及它为确保可靠结果而设置的默认配置。了解测试中并行化与并发化的区别,探索测试隔离对性能的影响,并学习如何将测试拆分成分片以加速 CI/CD 作业。
这个研讨会适合谁
本工作坊适合所有希望学习如何自定义 Vitest,以在其基础上创建更好、更个性化的测试体验的开发者。适合那些觉得在项目中添加新测试就像与全世界作对的开发者。适合那些在缓慢的测试套件面前感到迷失的开发者。
正如名称所示,您将深入学习高级主题,因此必须具备 Vitest 的基本经验才能从这些练习中获得最大收益。


评论(0)