Prerequisites
全局安装 angular 原理图:npm install -g @angular-devkit/schematics-cli。 确保 Angular CLI 是最新的: npm install -g @angular/cli@latest
单元测试
要运行所有原理图单元测试:
$ ./node_modules/ts-node/dist/bin.js ./tools/schematics/testing.ts 并选择测试所有原理图选项。
要为特定库运行原理图测试:
导航到您要测试的库/项目 - 例如 $ cd 功能库/asm
运行 $ yarn test:schematics。 请注意,在测试项目/原理图时,要运行的命令是 $ yarn test。
原理图已经有单元测试来覆盖它们设计用来执行的迁移任务。 但是,您可能想要测试您添加的新原理图配置是否会产生预期的结果,当用户将在原理图的帮助下执行迁移而不在应用程序上运行完全迁移时,这将非常耗时。 测试新配置的一种便捷方法是临时修改原理图单元测试用例,并使用将使用新配置的示例。 在您评估您的迁移方案按预期进行后,您可以恢复您在单元测试中所做的更改。
以下几点提供了如何实现这一目标的指导。
假设您正在处理构造函数弃用任务,在这种情况下,您将打开 projects/schematics/src/migrations/mechanism/constructor-deprecations/constructor-deprecations_spec.ts。
首先要更改的是 MIGRATION_SCRIPT_NAME。如果您正在测试 v3 的迁移任务,您需要将 MIGRATION_SCRIPT_NAME 常量的值更改为 migration-v3-constructor-deprecations-03(注意名称中的 v3)。要查看迁移脚本的确切名称,您可以转到 projects/schematics/src/migrations/migrations.json 并将您正在测试的脚本名称复制粘贴到规范文件中。
接下来,您可以挑选一个使用类作为输入的测试(从客户的角度来看,该类是一个组成的测试类,表示为字符串)。测试的输出也是一个类,通过原理图修改(基本是预期的结果);同样,此类也表示为字符串。因此,在构造函数弃用的情况下,您可以修改例如
ADD_AND_REMOVE_PARAMETER_VALID_TEST_CLASS 常量以匹配您的输入。然后,您可以只使用 console.log() 结果并在控制台中手动断言迁移的代码。
执行之前的 class 源代码和执行之后期望的源代码:
为了节省一些时间,建议使用上一步中的常量来描述(或拟合)测试。要运行测试,请按照本节开头的步骤进行操作。
另一个好处是它消除了终端中的大量噪音,这在使用 console.log() 结果时特别有用。
Update schematics
将 Spartacus 升级到新的主要版本(例如,从 3.x 到 4.0)时,Spartacus 迁移机制会自动修复新版本中修改或删除的代码。
当您处理功能或错误,或对 Spartacus 源代码进行任何其他更改时,您需要更新原理图作为完成定义的一部分。 通过将这些更新迭代地作为 DoD 的一部分对源代码进行每次更改,您就不必在开发周期结束时花费大量时间升级迁移机制,因此,它更容易 为新的主要版本准备 Spartacus 库。