天天看點

SAP 電商雲 Spartacus Schematics 開發環境搭建

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。

SAP 電商雲 Spartacus Schematics 開發環境搭建

首先要更改的是 MIGRATION_SCRIPT_NAME。如果您正在測試 v3 的遷移任務,您需要将 MIGRATION_SCRIPT_NAME 常量的值更改為 migration-v3-constructor-deprecations-03(注意名稱中的 v3)。

SAP 電商雲 Spartacus Schematics 開發環境搭建

要檢視遷移腳本的确切名稱,您可以轉到 projects/schematics/src/migrations/migrations.json 并将您正在測試的腳本名稱複制粘貼到規範檔案中。

SAP 電商雲 Spartacus Schematics 開發環境搭建

接下來,您可以挑選一個使用類作為輸入的測試(從客戶的角度來看,該類是一個組成的測試類,表示為字元串)。測試的輸出也是一個類,通過原理圖修改(基本是預期的結果);同樣,此類也表示為字元串。是以,在構造函數棄用的情況下,您可以修改例如

ADD_AND_REMOVE_PARAMETER_VALID_TEST_CLASS 常量以比對您的輸入。然後,您可以隻使用 console.log() 結果并在控制台中手動斷言遷移的代碼。

執行之前的 class 源代碼和執行之後期望的源代碼:

SAP 電商雲 Spartacus Schematics 開發環境搭建

為了節省一些時間,建議使用上一步中的常量來描述(或拟合)測試。要運作測試,請按照本節開頭的步驟進行操作。

另一個好處是它消除了終端中的大量噪音,這在使用 console.log() 結果時特别有用。

Update schematics

将 Spartacus 更新到新的主要版本(例如,從 3.x 到 4.0)時,Spartacus 遷移機制會自動修複新版本中修改或删除的代碼。

當您處理功能或錯誤,或對 Spartacus 源代碼進行任何其他更改時,您需要更新原理圖作為完成定義的一部分。 通過将這些更新疊代地作為 DoD 的一部分對源代碼進行每次更改,您就不必在開發周期結束時花費大量時間更新遷移機制,是以,它更容易 為新的主要版本準備 Spartacus 庫。

繼續閱讀