通过快照测试评测接口变化 - Amazon CodeCatalyst

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

通过快照测试评测接口变化

支持在蓝图的多个配置中生成快照测试。

蓝图支持对您作为蓝图作者提供的配置进行快照测试。配置是部分覆盖,合并在蓝图根目录下的 defaults.json 文件之上。启用并配置快照测试后,构建和测试流程会综合给定的配置,并验证综合输出与参考快照相比是否没有变化。要查看快照测试代码,请参阅CodeCatalyst 蓝图 GitHub 存储库

启用快照测试

  1. .projenrc.ts文件中, ProjenBlueprint 使用要快照的文件将输入对象更新为。例如:

    { .... blueprintSnapshotConfiguration: { snapshotGlobs: ['**', '!environments/**', '!aws-account-to-environment/**'], }, }
  2. 重新同步蓝图以在蓝图项目中创建 TypeScript 文件。不要编辑源文件,因为它们是由 Projen 维护和重新生成的。使用以下命令:

    yarn projen
  3. 导航到 src/snapshot-configurations 目录,查看带有空对象的 default-config.json 文件。用您自己的一个或多个测试配置更新或替换该文件。然后将每个测试配置与项目的 defaults.json 文件合并、合成,并在测试时与快照进行比较。使用以下命令进行测试:

    yarn test

    首次使用测试命令时,将显示以下消息:Snapshot Summary › NN snapshots written from 1 test suite。随后的测试运行验证合成输出与快照相比是否没有变化,并显示以下消息:Snapshots: NN passed, NN total

    如果您有意更改蓝图以产生不同的输出,请运行以下命令更新参考快照:

    yarn test:update

快照希望每次运行的合成输出恒定不变。如果您的蓝图生成的文件各不相同,您必须将这些文件排除在快照测试之外。更新 ProjenBluerpint 输入对象的 blueprintSnapshotConfiguration 对象,添加 snapshotGlobs 属性。snapshotGlobs 属性是一个 globs 数组,用于确定快照包含或排除哪些文件。

注意

有一个默认的 globs 列表。如果您指定了自己的列表,可能需要明确恢复默认条目。