Expect 是什麼?
Expect 是一款開發者工具,讓代理程式能在真實瀏覽器中測試你的程式碼。它會分析你目前的變更(例如,未暫存變更或分支差異),生成測試計畫,並在即時瀏覽器中執行該計畫。
核心目的是將程式碼變更轉換成可執行的瀏覽器測試集合,從命令列執行,讓你在開發時驗證行為。
主要功能
- 從程式碼變更一鍵生成測試計畫:掃描未暫存變更或分支差異,決定要測試什麼,減少手動撰寫測試計畫的功夫。
- 代理程式生成的測試計畫:根據偵測到的變更產生測試計畫,提供結構化的瀏覽器執行起點。
- 在真實瀏覽器中執行:在真實瀏覽器環境執行生成的計畫,而非僅限靜態檢查。
- 命令列初始化與使用:包含透過
expect-cli套件提供的init流程。 - 基於技能的擴充性:支援新增技能(例如,使用
npx skills add … --skill expect指令新增技能),可擴充額外功能。
如何使用 Expect
- 安裝與初始化:執行
npx -y expect-cli@latest init來設定 Expect。 - 新增技能(若需要):使用
npx skills add https://github.com/millionco/expect --skill expect新增相關技能。 - 執行一鍵流程:使用工具的主要指令,掃描未暫存變更或分支差異,生成測試計畫,並在真實瀏覽器中執行。
使用情境
- 驗證少量本機變更:當有未暫存變更時,執行 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 的區別在於明確的「真實瀏覽器」執行步驟,與程式碼差異連結。
替代品
Codex Plugins
使用 Codex Plugins 將技能、應用程式整合與 MCP 伺服器打包成可重複使用的工作流程,讓 Codex 存取 Gmail、Google Drive、Slack 等工具。
Falconer
Falconer 是自動更新的知識平台,讓高速度團隊在同一處撰寫、分享並搜尋可靠的內部文件與程式碼脈絡。
OpenFlags
OpenFlags 是開源、可自架設的功能旗標系統,支援逐步交付;App SDK 可本地評估,控制平面提供安全、精準的發佈。
AakarDev AI
AakarDev AI 是一個強大的平台,通過無縫的向量資料庫整合簡化 AI 應用程式的開發,實現快速部署和可擴展性。
AgentMail
AgentMail 是供 AI 代理使用的電子郵件收件匣 API:透過 REST 建立、寄送、接收與搜尋郵件,支援雙向對話。
Arduino VENTUNO Q
Arduino VENTUNO Q 邊緣 AI 電腦,結合 AI 推論硬體與微控制器,支援機器人即時控制;透過 Arduino App Lab 進行嵌入式、Linux 與邊緣 AI 工作流程。