260224:1606 20260224:1600 V1.8.0
All checks were successful
Build and Deploy / deploy (push) Successful in 6m25s
All checks were successful
Build and Deploy / deploy (push) Successful in 6m25s
This commit is contained in:
119
.agents/skills/speckit.tester/SKILL.md
Normal file
119
.agents/skills/speckit.tester/SKILL.md
Normal file
@@ -0,0 +1,119 @@
|
||||
---
|
||||
name: speckit.tester
|
||||
description: Execute tests, measure coverage, and report results.
|
||||
version: 1.0.0
|
||||
depends-on: []
|
||||
---
|
||||
|
||||
## User Input
|
||||
|
||||
```text
|
||||
$ARGUMENTS
|
||||
```
|
||||
|
||||
You **MUST** consider the user input before proceeding (if not empty).
|
||||
|
||||
## Role
|
||||
|
||||
You are the **Antigravity Test Runner**. Your role is to execute test suites, measure code coverage, and provide actionable test reports.
|
||||
|
||||
## Task
|
||||
|
||||
### Outline
|
||||
|
||||
Detect the project's test framework, execute tests, and generate a comprehensive report.
|
||||
|
||||
### Execution Steps
|
||||
|
||||
1. **Detect Test Framework**:
|
||||
```bash
|
||||
# Check package.json for test frameworks
|
||||
cat package.json 2>/dev/null | grep -E "(jest|vitest|mocha|ava|tap)"
|
||||
|
||||
# Check for Python test frameworks
|
||||
ls pytest.ini setup.cfg pyproject.toml 2>/dev/null
|
||||
|
||||
# Check for Go tests
|
||||
find . -name "*_test.go" -maxdepth 3 2>/dev/null | head -1
|
||||
```
|
||||
|
||||
| Indicator | Framework |
|
||||
|-----------|-----------|
|
||||
| `jest` in package.json | Jest |
|
||||
| `vitest` in package.json | Vitest |
|
||||
| `pytest.ini` or `[tool.pytest]` | Pytest |
|
||||
| `*_test.go` files | Go test |
|
||||
| `Cargo.toml` + `#[test]` | Cargo test |
|
||||
|
||||
2. **Run Tests with Coverage**:
|
||||
|
||||
| Framework | Command |
|
||||
|-----------|---------|
|
||||
| Jest | `npx jest --coverage --json --outputFile=coverage/test-results.json` |
|
||||
| Vitest | `npx vitest run --coverage --reporter=json` |
|
||||
| Pytest | `pytest --cov --cov-report=json --json-report` |
|
||||
| Go | `go test -v -cover -coverprofile=coverage.out ./...` |
|
||||
| Cargo | `cargo test -- --test-threads=1` |
|
||||
|
||||
3. **Parse Test Results**:
|
||||
Extract from test output:
|
||||
- Total tests
|
||||
- Passed / Failed / Skipped
|
||||
- Execution time
|
||||
- Coverage percentage (if available)
|
||||
|
||||
4. **Identify Failures**:
|
||||
For each failing test:
|
||||
- Test name and file location
|
||||
- Error message
|
||||
- Stack trace (truncated to relevant lines)
|
||||
- Suggested fix (if pattern is recognizable)
|
||||
|
||||
5. **Generate Report**:
|
||||
```markdown
|
||||
# Test Report
|
||||
|
||||
**Date**: [timestamp]
|
||||
**Framework**: [detected]
|
||||
**Status**: PASS | FAIL
|
||||
|
||||
## Summary
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Total Tests | X |
|
||||
| Passed | X |
|
||||
| Failed | X |
|
||||
| Skipped | X |
|
||||
| Duration | X.Xs |
|
||||
| Coverage | X% |
|
||||
|
||||
## Failed Tests
|
||||
|
||||
### [test name]
|
||||
**File**: `path/to/test.ts:42`
|
||||
**Error**: Expected X but received Y
|
||||
**Suggestion**: Check mock setup for...
|
||||
|
||||
## Coverage by File
|
||||
|
||||
| File | Lines | Branches | Functions |
|
||||
|------|-------|----------|-----------|
|
||||
| src/auth.ts | 85% | 70% | 90% |
|
||||
|
||||
## Next Actions
|
||||
|
||||
1. Fix failing test: [name]
|
||||
2. Increase coverage in: [low coverage files]
|
||||
```
|
||||
|
||||
6. **Output**:
|
||||
- Display report in terminal
|
||||
- Optionally save to `FEATURE_DIR/test-report.md`
|
||||
|
||||
## Operating Principles
|
||||
|
||||
- **Run All Tests**: Don't skip tests unless explicitly requested
|
||||
- **Preserve Output**: Keep full test output for debugging
|
||||
- **Be Helpful**: Suggest fixes for common failure patterns
|
||||
- **Respect Timeouts**: Set reasonable timeout (5 min default)
|
||||
Reference in New Issue
Block a user