bats-testing-patterns
Освоение тестирования Shell-скриптов с помощью фреймворка Bats
Написание надежных shell-скриптов без тестов приводит к сбоям в продакшене. Этот навык обучает комплексным паттернам тестирования Bats для валидации shell-скриптов с помощью unit-тестов, фикстур и интеграции CI/CD.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «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 с ожидаемыми выходными файлами.
Аудит безопасности
Безопасно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.
Оценка качества
Что вы можете построить
DevOps-инженер тестирует скрипты развертывания
Написание комплексных unit-тестов для скриптов автоматизации развертывания для валидации поведения перед выкаткой в продакшен. Тестирование настройки, очистки, обработки ошибок и граничных случаев.
Разработчик внедряет TDD для Shell-утилит
Применение методологии разработки через тестирование к разработке shell-скриптов. Сначала написание тестов, затем реализация функциональности для соответствия тестовым спецификациям.
Site Reliability Engineer валидирует системные скрипты
Создание автоматизированных тестовых наборов для скриптов системного администрирования в CI/CD пайплайнах. Валидация работы скриптов в различных окружениях и диалектах оболочек.
Попробуйте эти промпты
Create a Bats test file for my script that validates command line argument parsing and exit codes
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
Create a GitHub Actions workflow that runs my Bats test suite on every pull request with TAP output format
Лучшие практики
- Используйте функции setup и teardown для создания изолированных тестовых окружений с временными каталогами, которые очищаются после каждого теста
- Мокируйте внешние зависимости и команды, чтобы сделать тесты быстрыми, детерминированными и независимыми от внешних сервисов или состояния системы
- Пишите описательные имена тестов, которые четко объясняют, что валидируется, что делает диагностику и понимание сбоев тестов проще
Избегать
- Избегайте тестов, зависящих от специфического состояния системы или файлов вне тестового каталога, что делает тесты хрупкими и непереносимыми
- Не пропускайте очистку в teardown, так как оставшиеся временные файлы накапливаются и могут вызвать сбои тестов или заполнить дисковое пространство
- Никогда не тестируйте множество несвязанных поведений в одном тестовом случае, что затрудняет идентификацию того, какая именно функциональность сбоила
Часто задаваемые вопросы
Что такое Bats и когда его следует использовать?
Как установить Bats в моей системе?
Могу ли я мокировать внешние команды в моих тестах?
Как тестировать условия ошибок и сбои?
Могут ли Bats-тесты выполняться параллельно?
Как интегрировать Bats с CI/CD пайплайнами?
Сведения для разработчиков
Автор
wshobsonЛицензия
MIT
Репозиторий
https://github.com/wshobson/agents/tree/main/plugins/shell-scripting/skills/bats-testing-patternsСсылка
main
Структура файлов
📄 SKILL.md