243 lines
5.2 KiB
Markdown
243 lines
5.2 KiB
Markdown
# TDD Methodology Expansion Pack - Installation Guide
|
|
|
|
## Quick Start
|
|
|
|
1. **Copy files to your BMAD installation:**
|
|
|
|
```bash
|
|
# From the expansion pack directory
|
|
cp -r agents/* /path/to/your/bmad-core/agents/
|
|
cp -r tasks/* /path/to/your/bmad-core/tasks/
|
|
cp -r templates/* /path/to/your/bmad-core/templates/
|
|
cp -r scripts/* /path/to/your/bmad-core/scripts/
|
|
```
|
|
|
|
2. **Update your configuration:**
|
|
Add to `bmad-core/core-config.yaml`:
|
|
|
|
```yaml
|
|
tdd:
|
|
enabled: true
|
|
require_for_new_stories: true
|
|
allow_red_phase_ci_failures: true
|
|
default_test_type: unit
|
|
test_runner:
|
|
auto_detect: true
|
|
coverage:
|
|
min_threshold: 0.75
|
|
```
|
|
|
|
3. **Verify installation:**
|
|
|
|
```bash
|
|
# Check that TDD commands are available
|
|
bmad qa --help | grep tdd
|
|
bmad dev --help | grep tdd
|
|
```
|
|
|
|
4. **Try the demo:**
|
|
```bash
|
|
cd examples/tdd-demo
|
|
# Follow the demo instructions
|
|
```
|
|
|
|
## Detailed Configuration
|
|
|
|
### Core Configuration Options
|
|
|
|
```yaml
|
|
# bmad-core/core-config.yaml
|
|
tdd:
|
|
# Enable/disable TDD functionality
|
|
enabled: true
|
|
|
|
# Require TDD for all new stories
|
|
require_for_new_stories: true
|
|
|
|
# Allow CI failures during red phase
|
|
allow_red_phase_ci_failures: true
|
|
|
|
# Default test type for new tests
|
|
default_test_type: unit # unit|integration|e2e
|
|
|
|
# Test runner configuration
|
|
test_runner:
|
|
auto_detect: true
|
|
fallback_command: 'npm test'
|
|
timeout_seconds: 300
|
|
|
|
# Coverage configuration
|
|
coverage:
|
|
min_threshold: 0.75
|
|
report_path: 'coverage/lcov.info'
|
|
fail_under_threshold: true
|
|
```
|
|
|
|
### Test Runner Detection
|
|
|
|
The expansion pack includes auto-detection for common test runners:
|
|
|
|
- **JavaScript/TypeScript**: Jest, Vitest, Mocha
|
|
- **Python**: pytest, unittest
|
|
- **Java**: Maven Surefire, Gradle Test
|
|
- **Go**: go test
|
|
- **C#/.NET**: dotnet test
|
|
|
|
Configure custom runners in `bmad-core/config/test-runners.yaml`:
|
|
|
|
```yaml
|
|
custom_runners:
|
|
my_runner:
|
|
pattern: 'package.json'
|
|
test_command: 'npm run test:custom'
|
|
watch_command: 'npm run test:watch'
|
|
coverage_command: 'npm run test:coverage'
|
|
report_paths:
|
|
- 'coverage/lcov.info'
|
|
- 'test-results.xml'
|
|
```
|
|
|
|
## CI/CD Integration
|
|
|
|
### GitHub Actions
|
|
|
|
```yaml
|
|
name: TDD Workflow
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
tdd-validation:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: TDD Guard
|
|
run: |
|
|
chmod +x bmad-core/scripts/tdd-guard.sh
|
|
./bmad-core/scripts/tdd-guard.sh
|
|
continue-on-error: ${{ contains(github.head_ref, 'red') }}
|
|
|
|
- name: Run Tests
|
|
run: |
|
|
# Your test command (auto-detected by BMAD)
|
|
npm test
|
|
|
|
- name: Coverage Report
|
|
uses: codecov/codecov-action@v3
|
|
with:
|
|
file: coverage/lcov.info
|
|
```
|
|
|
|
### GitLab CI
|
|
|
|
```yaml
|
|
tdd_guard:
|
|
script:
|
|
- chmod +x bmad-core/scripts/tdd-guard.sh
|
|
- ./bmad-core/scripts/tdd-guard.sh
|
|
allow_failure:
|
|
- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^red-/'
|
|
|
|
test:
|
|
script:
|
|
- npm test
|
|
artifacts:
|
|
reports:
|
|
coverage_report:
|
|
coverage_format: cobertura
|
|
path: coverage/cobertura-coverage.xml
|
|
```
|
|
|
|
## File Structure
|
|
|
|
After installation, your BMAD structure should include:
|
|
|
|
```
|
|
bmad-core/
|
|
├── agents/
|
|
│ ├── qa.md # Enhanced with TDD commands
|
|
│ └── dev.md # Enhanced with TDD commands
|
|
├── tasks/
|
|
│ ├── test-design.md # Enhanced with TDD support
|
|
│ ├── write-failing-tests.md
|
|
│ ├── tdd-implement.md
|
|
│ └── tdd-refactor.md
|
|
├── templates/
|
|
│ ├── story-tdd-template.md
|
|
│ ├── tdd-quality-gates.md
|
|
│ └── tdd-ci-template.yml
|
|
├── scripts/
|
|
│ └── tdd-guard.sh
|
|
└── config/
|
|
└── test-runners.yaml
|
|
```
|
|
|
|
## Verification
|
|
|
|
### 1. Configuration Check
|
|
|
|
```bash
|
|
# Verify TDD is enabled
|
|
bmad config --show | grep tdd.enabled
|
|
```
|
|
|
|
### 2. Agent Commands Check
|
|
|
|
```bash
|
|
# Verify TDD commands are available
|
|
bmad qa *tdd-start --help
|
|
bmad qa *write-failing-tests --help
|
|
bmad dev *tdd-implement --help
|
|
```
|
|
|
|
### 3. Demo Run
|
|
|
|
```bash
|
|
# Run the complete demo
|
|
cd examples/tdd-demo
|
|
bmad story 1.1-user-validation.md --tdd
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Issue: "TDD commands not found"
|
|
|
|
**Solution:** Ensure `tdd.enabled: true` in config and restart BMAD orchestrator
|
|
|
|
### Issue: "Test runner not detected"
|
|
|
|
**Solution:** Configure fallback command or add custom runner detection
|
|
|
|
### Issue: "CI failing on red phase"
|
|
|
|
**Solution:** Set `allow_red_phase_ci_failures: true` and use branch naming convention
|
|
|
|
### Issue: "Guard script permission denied"
|
|
|
|
**Solution:** `chmod +x bmad-core/scripts/tdd-guard.sh`
|
|
|
|
## Uninstall
|
|
|
|
To remove the TDD expansion pack:
|
|
|
|
1. Set `tdd.enabled: false` in config
|
|
2. Remove TDD-specific files (optional):
|
|
```bash
|
|
rm bmad-core/tasks/write-failing-tests.md
|
|
rm bmad-core/tasks/tdd-implement.md
|
|
rm bmad-core/tasks/tdd-refactor.md
|
|
rm bmad-core/templates/story-tdd-template.md
|
|
rm bmad-core/templates/tdd-quality-gates.md
|
|
rm bmad-core/scripts/tdd-guard.sh
|
|
```
|
|
3. Restore original agent files from backup (if needed)
|
|
|
|
## Support
|
|
|
|
For installation support:
|
|
|
|
- Check the README.md for comprehensive documentation
|
|
- Review the MIGRATION.md for existing project integration
|
|
- Follow standard BMAD-METHOD support channels
|