Test Framework Detector
Purpose
Automatically identify which test framework(s) a project uses by examining:
- •Package manifests (package.json, requirements.txt, Gemfile, *.csproj)
- •Test configuration files (jest.config.js, pytest.ini, spec_helper.rb, xunit.runner.json)
- •Directory structure and naming conventions
Usage
This skill is invoked by agents (like deep-debugger) when they need to determine which test framework to use for test generation or execution.
Detection Script
Run the detection script with the project path:
node detect-framework.js /path/to/project
Output Format
The script returns a JSON object with detected frameworks:
{
"detected": true,
"frameworks": [
{
"name": "jest",
"confidence": 0.95,
"version": "29.7.0",
"configFiles": ["jest.config.js", "package.json"],
"testDirectory": "tests/",
"testPattern": "**/*.test.js"
}
],
"primary": "jest"
}
Detection Patterns
The skill uses pattern-based detection defined in framework-patterns.json. Each framework has:
- •Package indicators: Dependencies that suggest framework presence
- •Config files: Framework-specific configuration files
- •Test file patterns: Common test file naming conventions
Supported Frameworks
- •
Jest (JavaScript/TypeScript)
- •Config: jest.config.js, jest.config.ts, package.json (jest section)
- •Dependencies: jest, @types/jest, ts-jest
- •Patterns: .test.js, .spec.js, tests/
- •
pytest (Python)
- •Config: pytest.ini, pyproject.toml, setup.cfg, tox.ini
- •Dependencies: pytest in requirements.txt or pyproject.toml
- •Patterns: test_.py, _test.py, tests/
- •
RSpec (Ruby)
- •Config: .rspec, spec/spec_helper.rb
- •Dependencies: rspec in Gemfile
- •Patterns: _spec.rb, spec/*
- •
xUnit (C#/.NET)
- •Config: xunit.runner.json, *.csproj
- •Dependencies: xunit, xunit.runner.visualstudio in *.csproj
- •Patterns: Tests.cs, Test.cs, Tests/
Confidence Scoring
Confidence scores (0.0-1.0) are calculated based on:
- •Config file presence: +0.4
- •Package dependency found: +0.3
- •Test directory exists: +0.2
- •Test files found: +0.1
Multiple frameworks may be detected (e.g., Jest + pytest in monorepos).
Example Invocations
Detect framework in current directory:
node skills/test-detector/detect-framework.js .
Detect framework with verbose output:
DEBUG=true node skills/test-detector/detect-framework.js /path/to/project
Integration with Agents
Agents should invoke this skill before test generation:
1. Invoke test-detector skill with project path 2. Parse JSON output to get primary framework 3. Invoke appropriate test framework skill (jest-test, pytest-test, etc.) 4. Generate or execute tests using framework-specific patterns
Error Handling
If no framework is detected:
{
"detected": false,
"frameworks": [],
"primary": null,
"message": "No test framework detected. Please specify framework manually."
}