技能 bats-testing-patterns
📦

bats-testing-patterns

安全

掌握 Shell 測試與 Bats 框架

撰寫可靠的 Shell 腳本而沒有測試會導致生產環境故障。本技能教授全面的 Bats 測試模式,以透過單元測試、測試固定裝置和 CI/CD 整合來驗證 Shell 腳本。

支援: Claude Codex Code(CC)
📊 70 充足
1

下載技能 ZIP

2

在 Claude 中上傳

前往 設定 → 功能 → 技能 → 上傳技能

3

開啟並開始使用

測試它

正在使用「bats-testing-patterns」。 建立一個 Bats 測試來驗證我的備份腳本是否建立正確的檔案

預期結果:

產生具有 @test 區塊的 Bats 測試檔案,用於檔案建立驗證,設定函式建立暫存測試目錄,清理測試檔案,以及檢查檔案存在性和權限的斷言。

正在使用「bats-testing-patterns」。 為我的驗證函式新增錯誤處理測試

預期結果:

建立缺少參數、無效輸入格式、權限被拒絕場景以及實用錯誤訊息的測試案例。每個測試使用 run 命令並檢查退出狀態和錯誤輸出。

正在使用「bats-testing-patterns」。 為複雜輸入場景設定測試固定裝置

預期結果:

實作固定裝置目錄結構,包含範例輸入檔案、載入固定裝置的輔助函式,以及使用 diff 與預期輸出檔案進行比較的斷言。

安全審計

安全
v5 • 1/21/2026

Static analysis flagged 103 patterns including external commands, filesystem operations, and network references. All findings are false positives from educational code examples teaching Bats testing patterns. The skill contains no executable code, only documentation with test pattern examples. URLs reference legitimate documentation sites (GitHub, readthedocs.io). No security risks identified.

2
已掃描檔案
1,721
分析行數
0
發現項
5
審計總數
未發現安全問題
審計者: claude 查看審計歷史 →

品質評分

38
架構
100
可維護性
87
內容
29
社群
100
安全
87
規範符合性

你能建構什麼

DevOps 工程師測試部署腳本

為部署自動化腳本撰寫全面的單元測試,以在生產環境部署前驗證行為。測試設定、清理、錯誤處理和邊界情況。

開發人員為 Shell 公用程式實作 TDD

將測試驅動開發方法論應用於 Shell 腳本開發。先撰寫測試,然後實作功能以符合測試規格。

網站可靠性工程師驗證系統腳本

為 CI/CD 管道中的系統管理腳本建立自動化測試套件。驗證腳本在不同環境和 Shell 方言下的運作情況。

試試這些提示

產生基本的 Bats 測試檔案
為我的腳本建立一個 Bats 測試檔案,用於驗證命令列參數解析和退出碼
新增設定和清理函式
為我的 Bats 測試新增設定和清理函式,以建立暫存目錄並清理測試固定裝置
模擬外部依賴項
展示如何在我的 Bats 測試中模擬 curl 命令,這樣我就可以在不進行實際網路呼叫的情況下測試 API 函式
將測試整合到 CI 管道
建立一個 GitHub Actions 工作流程,在每次提取請求時以 TAP 輸出格式執行我的 Bats 測試套件

最佳實務

  • 使用設定和清理函式來建立隔離的測試環境,使用暫存目錄並在每個測試後進行清理
  • 模擬外部依賴項和命令,使測試快速、確定性,並獨立於外部服務或系統狀態
  • 撰寫描述性的測試名稱,清楚說明正在驗证的內容,使測試失敗更容易診斷和理解

避免

  • 避免依賴特定系統狀態或測試目錄外部檔案的測試,這會使測試脆弱且不可攜
  • 不要跳過清理,這些遺留的暫存檔案會累積並可能導致測試失敗或填滿磁碟空間
  • 永遠不要在單一測試案例中測試多個不相關的行為,這會使識別哪些特定功能失敗變得困難

常見問題

什麼是 Bats,我應該什麼時候使用它?
Bats 是用於 Shell 腳本的測試框架,使用 TAP 輸出格式。當您需要在 CI/CD 管道或開發過程中使用自動化測試來驗證 Shell 腳本行為時,請使用它。
如何在我的系統上安裝 Bats?
透過套件管理員安裝:在 macOS 上使用 brew install bats-core,或使用 npm install --global bats 適用於 Node.js 環境,或從 GitHub 複製並執行安裝腳本。
我可以在我測試中模擬外部命令嗎?
可以,在暫存目錄中建立 Stub 指令碼,在實際命令之前將其加入 PATH,Stub 就會取代實際的外部命令被呼叫。
如何測試錯誤條件和失敗情況?
使用 run 命令來擷取退出狀態和輸出,然後斷言狀態為非零值且輸出包含預期的錯誤訊息,以測試失敗場景。
Bats 測試可以平行執行嗎?
可以,使用 --parallel 標誌並指定數字來表示要同時執行多少個測試。確保測試是獨立的並使用隔離的暫存目錄。
如何將 Bats 與 CI/CD 管道整合?
在 CI 環境中安裝 Bats,使用 --tap 標誌執行 bats 測試以產生 TAP 輸出,並設定您的 CI 系統來解析測試結果並在測試失敗時使建構失敗。

開發者詳情

檔案結構

📄 SKILL.md