Claude
Skills
Sign in
Back

python-testing

Included with Lifetime
$97 forever

# Python Testing Skill

General

What this skill does

# Python Testing Skill

Comprehensive testing with pytest including unit tests, integration tests, fixtures, and coverage reporting.

## When to Use This Skill

Use this skill when:
- User requests to run tests
- User wants to create new tests
- User asks about test coverage
- User mentions pytest, unit tests, or integration tests
- Debugging test failures

## Core Capabilities

1. **Test Execution**
   - Run all tests or specific test files
   - Run tests matching patterns
   - Run only failed tests
   - Generate test reports

2. **Test Coverage**
   - Measure code coverage
   - Generate HTML coverage reports
   - Identify untested code
   - Set coverage thresholds

3. **Test Writing**
   - Create unit tests for functions and classes
   - Write integration tests
   - Use pytest fixtures effectively
   - Implement parametrized tests

4. **Test Organization**
   - Structure test files properly
   - Use conftest.py for shared fixtures
   - Organize tests by feature or module
   - Mark tests for selective execution

## Context Files

This skill references the following context files in this directory:
- `pytest-configuration.md` - Pytest setup and configuration
- `test-patterns.md` - Common testing patterns and examples
- `fixtures-guide.md` - Using pytest fixtures
- `coverage-guide.md` - Code coverage best practices

## Key Tools and Commands

```bash
# Run tests
uv run pytest                   # All tests
uv run pytest tests/test_file.py  # Specific file
uv run pytest -k "pattern"      # Tests matching pattern
uv run pytest --lf              # Last failed only

# Coverage
uv run pytest --cov             # With coverage
uv run pytest --cov --cov-report=html  # HTML report
uv run pytest --cov --cov-report=term-missing  # Show missing lines

# Output control
uv run pytest -v                # Verbose
uv run pytest -s                # Show print statements
uv run pytest -x                # Stop on first failure
```

## Common Test Patterns

### Unit Test Example
```python
def test_addition():
    assert add(2, 3) == 5
    assert add(-1, 1) == 0
```

### Fixture Usage
```python
@pytest.fixture
def sample_data():
    return {"key": "value"}

def test_with_fixture(sample_data):
    assert sample_data["key"] == "value"
```

### Parametrized Tests
```python
@pytest.mark.parametrize("input,expected", [
    (2, 4),
    (3, 9),
    (4, 16),
])
def test_square(input, expected):
    assert square(input) == expected
```

## Expected Outcomes

After using this skill:
- Comprehensive test suite covering critical functionality
- High test coverage (ideally > 80%)
- Well-organized test files
- Clear test failure messages
- Fast test execution

## Integration with Other Skills

- Works with `python-project-setup` for test directory structure
- Complements `python-code-quality` for comprehensive QA
- Used by `python-project-setup` agent for automated testing

Related in General