跳到正文
cccskills
免费在 GitHub 公开

bats-test-scaffolder

Generate BATS test structure and fixtures for shell script testing with setup/teardown, assertions, and mocking.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(2)

  • SKILL.md3.5 KB
  • README.md710 B

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

BATS Test Scaffolder

Generate BATS test structure for shell script testing.

Capabilities

  • Generate BATS test files
  • Create setup and teardown fixtures
  • Implement custom assertions
  • Set up mocking helpers
  • Configure test isolation
  • Generate test helpers

Usage

Invoke this skill when you need to:

  • Set up BATS testing for shell scripts
  • Create test fixtures and helpers
  • Implement mock functions
  • Generate test cases

Generated Test Structure

tests/
├── bats/
│   └── bats-*.bash        # BATS submodules
├── test_helper/
│   ├── common-setup.bash  # Common setup
│   └── mocks.bash         # Mock helpers
├── fixtures/
│   ├── input.txt          # Test fixtures
│   └── expected.txt
└── *.bats                  # Test files

Test File Template

#!/usr/bin/env bats

# Load test helpers
load 'test_helper/common-setup'

# Setup runs before each test
setup() {
    common_setup
    # Test-specific setup
    export TEST_DIR="$(mktemp -d)"
}

# Teardown runs after each test
teardown() {
    # Cleanup
    rm -rf "${TEST_DIR}"
}

@test "script displays help with --help" {
    run ./script.sh --help

    assert_success
    assert_output --partial "Usage:"
}

@test "script fails without required argument" {
    run ./script.sh

    assert_failure
    assert_output --partial "Missing required argument"
}

@test "script processes input file" {
    cp fixtures/input.txt "${TEST_DIR}/"

    run ./script.sh "${TEST_DIR}/input.txt"

    assert_success
    assert_output --partial "Processing complete"
}

@test "script creates output file" {
    run ./script.sh -o "${TEST_DIR}/output.txt" fixtures/input.txt

    assert_success
    assert_file_exists "${TEST_DIR}/output.txt"
}

@test "script handles special characters in filename" {
    local special_file="${TEST_DIR}/file with spaces.txt"
    echo "test" > "${special_file}"

    run ./script.sh "${special_file}"

    assert_success
}

Test Helper (test_helper/common-setup.bash)

#!/usr/bin/env bash

# Load BATS support libraries
load 'bats/bats-support/load'
load 'bats/bats-assert/load'
load 'bats/bats-file/load'

# Common setup for all tests
common_setup() {
    # Get the containing directory
    PROJECT_ROOT="$(cd "$(dirname "$BATS_TEST_FILENAME")/.." && pwd)"

    # Add scripts to PATH
    PATH="${PROJECT_ROOT}/bin:${PATH}"

    # Set up test temp directory
    TEST_TEMP_DIR="$(mktemp -d)"
}

# Common teardown
common_teardown() {
    rm -rf "${TEST_TEMP_DIR}"
}

# Custom assertion: check exit code
assert_exit_code() {
    local expected="$1"
    if [[ "${status}" -ne "${expected}" ]]; then
        echo "Expected exit code ${expected}, got ${status}" >&2
        return 1
    fi
}

# Mock a command
mock_command() {
    local cmd="$1"
    local response="$2"

    eval "${cmd}() { echo '${response}'; }"
    export -f "${cmd}"
}

Target Processes

  • shell-script-development
  • cli-unit-integration-testing
  • cross-platform-cli-compatibility

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Provide implementations of advanced data structures

中文简介正在准备中。当前显示原文说明。

a5c-ai/babysitter18632026年9月17日 更新

Fresh adversarial code review with binary PASS/FAIL verdicts, evidence citations, and anchoring bias prevention via fresh reviewer spawning.

中文简介正在准备中。当前显示原文说明。

a5c-ai/babysitter18632026年9月17日 更新

WASM-based instant code transforms for simple tasks, achieving 352x speedup over LLM inference with zero cost.

中文简介正在准备中。当前显示原文说明。

a5c-ai/babysitter18632026年9月17日 更新

Coordinate Crew (persistent) and Polecat (transient) agents using Gas Town's hook-based work distribution and GUPP principle.

中文简介正在准备中。当前显示原文说明。

a5c-ai/babysitter18632026年9月17日 更新

Generate visual representations of algorithm execution

中文简介正在准备中。当前显示原文说明。

a5c-ai/babysitter18632026年9月17日 更新

Hierarchical coordination and drift detection with frequent checkpoints, shared memory coherence validation, role specialization enforcement, and short task cycles.

中文简介正在准备中。当前显示原文说明。

a5c-ai/babysitter18632026年9月17日 更新

查看 a5c-ai 的全部技能

报告此技能的问题