Навыки bats-testing-patterns
📦

bats-testing-patterns

Безопасно

Освоение тестирования Shell-скриптов с помощью фреймворка Bats

Написание надежных shell-скриптов без тестов приводит к сбоям в продакшене. Этот навык обучает комплексным паттернам тестирования Bats для валидации shell-скриптов с помощью unit-тестов, фикстур и интеграции CI/CD.

Поддерживает: Claude Codex Code(CC)
📊 70 Адекватно
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «bats-testing-patterns». Create a Bats test to verify my backup script creates the correct files

Ожидаемый результат:

Сгенерирован Bats-тестовый файл с блоками @test для валидации создания файлов, функцией setup, создающей временный тестовый каталог, teardown, очищающим тестовые файлы, и утверждениями, проверяющими существование файлов и права доступа.

Использование «bats-testing-patterns». Add error handling tests for my validation function

Ожидаемый результат:

Созданы тестовые случаи для отсутствующих аргументов, неверных форматов ввода, сценариев отказа в доступе и полезных сообщений об ошибках. Каждый тест использует команду run и проверяет статус выхода и вывод ошибок.

Использование «bats-testing-patterns». Set up test fixtures for complex input scenarios

Ожидаемый результат:

Реализована структура каталога fixtures с примерами входных файлов, вспомогательная функция для загрузки фикстур в setup и утверждения сравнения с использованием 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
Всего аудитов
Проблем безопасности не найдено

Оценка качества

38
Архитектура
100
Сопровождаемость
87
Контент
29
Сообщество
100
Безопасность
87
Соответствие спецификации

Что вы можете построить

DevOps-инженер тестирует скрипты развертывания

Написание комплексных unit-тестов для скриптов автоматизации развертывания для валидации поведения перед выкаткой в продакшен. Тестирование настройки, очистки, обработки ошибок и граничных случаев.

Разработчик внедряет TDD для Shell-утилит

Применение методологии разработки через тестирование к разработке shell-скриптов. Сначала написание тестов, затем реализация функциональности для соответствия тестовым спецификациям.

Site Reliability Engineer валидирует системные скрипты

Создание автоматизированных тестовых наборов для скриптов системного администрирования в CI/CD пайплайнах. Валидация работы скриптов в различных окружениях и диалектах оболочек.

Попробуйте эти промпты

Генерация базового Bats-тестового файла
Create a Bats test file for my script that validates command line argument parsing and exit codes
Добавление функций Setup и Teardown
Add setup and teardown functions to my Bats test that create temporary directories and clean up test fixtures
Мокирование внешних зависимостей
Show me how to mock the curl command in my Bats tests so I can test API functions without real network calls
Интеграция тестов в CI-пайплайн
Create a GitHub Actions workflow that runs my Bats test suite on every pull request with TAP output format

Лучшие практики

  • Используйте функции setup и teardown для создания изолированных тестовых окружений с временными каталогами, которые очищаются после каждого теста
  • Мокируйте внешние зависимости и команды, чтобы сделать тесты быстрыми, детерминированными и независимыми от внешних сервисов или состояния системы
  • Пишите описательные имена тестов, которые четко объясняют, что валидируется, что делает диагностику и понимание сбоев тестов проще

Избегать

  • Избегайте тестов, зависящих от специфического состояния системы или файлов вне тестового каталога, что делает тесты хрупкими и непереносимыми
  • Не пропускайте очистку в teardown, так как оставшиеся временные файлы накапливаются и могут вызвать сбои тестов или заполнить дисковое пространство
  • Никогда не тестируйте множество несвязанных поведений в одном тестовом случае, что затрудняет идентификацию того, какая именно функциональность сбоила

Часто задаваемые вопросы

Что такое Bats и когда его следует использовать?
Bats — это фреймворк тестирования для shell-скриптов, использующий формат вывода TAP. Используйте его, когда нужно валидировать поведение shell-скриптов с помощью автоматизированных тестов в CI/CD пайплайнах или во время разработки.
Как установить Bats в моей системе?
Установите через менеджеры пакетов: brew install bats-core на macOS, или npm install --global bats для окружений Node.js, или клонируйте из GitHub и запустите скрипт установки.
Могу ли я мокировать внешние команды в моих тестах?
Да, создайте скрипты-заглушки во временном каталоге, добавьте его в PATH перед реальными командами, и заглушки будут вызываться вместо фактических внешних команд.
Как тестировать условия ошибок и сбои?
Используйте команду run для захвата статуса выхода и вывода, затем утверждайте, что статус не равен нулю, а вывод содержит ожидаемые сообщения об ошибках для сценариев сбоев.
Могут ли Bats-тесты выполняться параллельно?
Да, используйте флаг --parallel с числом для указания, сколько тестов запускать параллельно. Убедитесь, что тесты независимы и используют изолированные временные каталоги.
Как интегрировать Bats с CI/CD пайплайнами?
Установите Bats в вашем CI-окружении, запустите bats tests с флагом --tap для вывода TAP и настройте вашу CI-систему для разбора результатов тестов и провала сборок при сбое тестов.

Сведения для разработчиков

Автор

wshobson

Лицензия

MIT

Ссылка

main

Структура файлов

📄 SKILL.md