UStackUStack
Expect icon

Expect

Expect 會掃描未暫存變更或分支差異,生成測試計畫並在真實瀏覽器中執行,讓你用指令驗證程式行為。

Expect

Expect 是什麼?

Expect 是一款開發者工具,讓代理程式能在真實瀏覽器中測試你的程式碼。它會分析你目前的變更(例如,未暫存變更或分支差異),生成測試計畫,並在即時瀏覽器中執行該計畫。

核心目的是將程式碼變更轉換成可執行的瀏覽器測試集合,從命令列執行,讓你在開發時驗證行為。

主要功能

  • 從程式碼變更一鍵生成測試計畫:掃描未暫存變更或分支差異,決定要測試什麼,減少手動撰寫測試計畫的功夫。
  • 代理程式生成的測試計畫:根據偵測到的變更產生測試計畫,提供結構化的瀏覽器執行起點。
  • 在真實瀏覽器中執行:在真實瀏覽器環境執行生成的計畫,而非僅限靜態檢查。
  • 命令列初始化與使用:包含透過 expect-cli 套件提供的 init 流程。
  • 基於技能的擴充性:支援新增技能(例如,使用 npx skills add … --skill expect 指令新增技能),可擴充額外功能。

如何使用 Expect

  1. 安裝與初始化:執行 npx -y expect-cli@latest init 來設定 Expect。
  2. 新增技能(若需要):使用 npx skills add https://github.com/millionco/expect --skill expect 新增相關技能。
  3. 執行一鍵流程:使用工具的主要指令,掃描未暫存變更或分支差異,生成測試計畫,並在真實瀏覽器中執行。

使用情境

  • 驗證少量本機變更:當有未暫存變更時,執行 Expect 掃描變更、生成測試計畫,並在真實瀏覽器中執行。
  • 審核前測試功能分支:針對分支差異,執行 Expect 從分支差異產生瀏覽器測試計畫。
  • 自動化瀏覽器測試流程:使用 Expect 讓代理程式生成計畫並在即時瀏覽器執行,減少手動測試計畫功夫。
  • 以技能擴充功能:若想讓 Expect 透過技能機制支援額外行為,可使用提供的 CLI 指令新增技能。

常見問題

Expect 如何決定要執行哪些測試?

Expect 會掃描未暫存變更或分支差異,然後根據該變更集生成測試計畫。

Expect 會在真實瀏覽器中執行測試嗎?

會。所述流程會在即時瀏覽器中執行生成的測試計畫。

如何開始使用?

你可以從 npx -y expect-cli@latest init 開始,然後使用網站內容所示的 npx skills add ... --skill expect 指令新增技能。

Expect 能用於不同程式碼狀態(未暫存 vs 分支差異)嗎?

頁面特別提到掃描未暫存變更或分支差異,作為一鍵流程的輸入。

Expect 中的「技能」是什麼?

技能似乎是可透過 CLI 新增的元件(使用 npx skills add ... --skill ... 指令)。頁面內容示範從 GitHub URL 新增技能。

替代方案

  • 基於瀏覽器的端到端測試框架 (E2E):這些工具在真實瀏覽器執行測試,通常需要你直接撰寫與維護測試腳本,而 Expect 著重從程式碼差異生成測試計畫。
  • 靜態分析與 linting 工具:這些工具無需在瀏覽器執行即可捕捉問題。Expect 的方法特別針對代理程式生成的計畫在瀏覽器執行。
  • 聚焦變更的 CI 測試自動化:根據變更檔案決定測試內容的方案,工作流程類似,但可能不會生成並執行相同樣式的瀏覽器測試計畫。
  • 代理式 QA/測試工具:類別層級替代方案也可能使用代理程式規劃與執行任務,但 Expect 的區別在於明確的「真實瀏覽器」執行步驟,與程式碼差異連結。
Expect | UStack