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 库。

更多Jerry的原创文章,尽在:“汪子熙”:

SAP 电商云 Spartacus Schematics 开发环境搭建相关推荐

  1. @ngrx/router-store 在 SAP 电商云 Spartacus UI 开发中的作用

    标题:@ngrx/router-store 的作用 官网 用于将 Angular Router 与 Store 连接的绑定. 在每个路由器导航周期中,会分派多个动作,让您可以监听路由器状态的变化. 然 ...

  2. Mobile first 设计思路在 SAP 电商云 Spartacus UI 中的设计体现一例

    关于 Mobile First 的概念,请查看我这篇文章:什么是前端开发中的 mobile first 策略. 下图是 SAP 电商云 Spartacus UI 的搜索结果页面: 其布局设计:temp ...

  3. SAP 电商云 Spartacus UI 产品搜索结果的设计明细

    我们使用如下 url 访问 SAP 电商云 Spartacus UI 产品搜索页面: http://localhost:4000/electronics-spa/en/USD/search/sony ...

  4. SAP 电商云 Spartacus UI ComponentDataProvider defer 工厂函数

    为什么 this.componentService.getItems 最后就触发到 Component-data.provider.ts 工厂函数的执行了? 29行的 getService: getS ...

  5. SAP 电商云 Spartacus UI 里如何捕捉语言设置的更改

    我们知道在 SAP 电商云 Spartacus UI 里,用户可以通过下拉菜单更改当前访问 site 的语言: 监控语言变化的代码: this.subscription.add(this.langua ...

  6. 在 SAP 电商云 Spartacus UI 里手动注入 module 的几种排列组合

    先把所有的排列组合罗列如下: (1) 通过构造函数注入 QuickOrderFacade,但不调用其方法 (2) 通过构造函数注入 QuickOrderFacade,调用其方法 (3) 手动通过 in ...

  7. SAP 电商云 Spartacus UI Proxy Facade 的一个实际例子

    如何理解 SAP 电商云 Spartacus UI 中的 proxy facade? Jerry 这篇文章什么是 SAP 电商云 Spartacus UI 的 proxy façade提供了理论上的解 ...

  8. SAP 电商云 Spartacus UI Quick Order 主页的实现

    存货单位(英語:stock keeping unit,SKU/ˌɛsˌkeɪˈjuː/),也翻译为库存单元,是一個會計學名詞,定义为库存管理中的最小可用单元,例如纺织品中一个SKU通常表示规格.颜色. ...

  9. SAP 电商云 Spartacus UI 从 CMS 取回 slots 和 component 之后的处理

    从前一篇文章SAP 电商云 Spartacus UI 的双重 layout 配置层设计 我们得知,Spartacus 层面的 layout-config.ts 可以控制 page template 应 ...

最新文章

  1. LeetCode 10. Regular Expression Matching python特性、动态规划、递归
  2. Kernel PCI总线框架
  3. PPLIVe是如何通过URL来启动程序的?
  4. Python字符串的定义与常用操作
  5. SQLite.NET在Win7(64位)下使用的问题
  6. react 判断图片是否加载完成_如何判断图片(img)是否已经加载成功--基于react...
  7. Linux下载_Linux系统各种版本ISO镜像下载(redhat,centos,oracle,ubuntu,openSUSE)
  8. c# 获取word表格中的内容_Java 获取、删除Word文本框中的表格
  9. mysql备份七牛云存储_定时备份 Mysql并上传到七牛的方法
  10. pandas的自带数据集_用Python和Pandas进行数据清理:检测丢失值
  11. 平面设计师常用的网站|素材路上
  12. 代码阅读软件kscope源码安装指导
  13. android曲线水波纹录音动画,Android-贝塞尔曲线实现水波纹动画
  14. hibernate.validator验证参数
  15. python运维是什么_什么是python自动化运维?
  16. 求正方形和长方形的个数
  17. 服务器修改传奇道士神兽升级,传奇游戏小道士关于神兽升级的研究——骨灰级传奇玩家分享...
  18. 计算机金融学校排名2015,金融学院2015级各专业排名情况统计表
  19. UnityAction和System.Action引发的思考
  20. dlang语法的简单整理

热门文章

  1. 让Eclipse启动时显示选择workspace的对话框
  2. 方法的反射---反射学习笔记(二)
  3. Apache Sentry架构介绍
  4. [转]写好shell脚本的13个技巧
  5. 超云将成为数据中心演化的下一个阶段
  6. 理解React-组件生命周期
  7. ZOJ Problem Set - 1730 Crazy Tea Party
  8. Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web
  9. 我是如何学习写一个操作系统(完结):总结和系列索引
  10. 4 交换机-fanout(订阅发布模式)