- Create benchmark test suites for critical operations: - Node loading performance - Database query performance - Search operations performance - Validation performance - MCP tool execution performance - Add GitHub Actions workflow for benchmark tracking: - Runs on push to main and PRs - Uses github-action-benchmark for historical tracking - Comments on PRs with performance results - Alerts on >10% performance regressions - Stores results in GitHub Pages - Create benchmark infrastructure: - Custom Vitest benchmark configuration - JSON reporter for CI results - Result formatter for github-action-benchmark - Performance threshold documentation - Add supporting utilities: - SQLiteStorageService for benchmark database setup - MCPEngine wrapper for testing MCP tools - Test factories for generating benchmark data - Enhanced NodeRepository with benchmark methods - Document benchmark system: - Comprehensive benchmark guide in docs/BENCHMARKS.md - Performance thresholds in .github/BENCHMARK_THRESHOLDS.md - README for benchmarks directory - Integration with existing test suite The benchmark system will help monitor performance over time and catch regressions before they reach production. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
33 lines
784 B
TypeScript
33 lines
784 B
TypeScript
import { defineConfig } from 'vitest/config';
|
|
import path from 'path';
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
globals: true,
|
|
environment: 'node',
|
|
include: ['tests/benchmarks/**/*.bench.ts'],
|
|
benchmark: {
|
|
// Benchmark specific options
|
|
include: ['tests/benchmarks/**/*.bench.ts'],
|
|
reporters: process.env.CI
|
|
? [['./scripts/vitest-benchmark-json-reporter.js', {}]]
|
|
: ['default'],
|
|
},
|
|
setupFiles: [],
|
|
pool: 'forks',
|
|
poolOptions: {
|
|
forks: {
|
|
singleFork: true,
|
|
},
|
|
},
|
|
// Increase timeout for benchmarks
|
|
testTimeout: 120000,
|
|
hookTimeout: 120000,
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve(__dirname, './src'),
|
|
'@tests': path.resolve(__dirname, './tests'),
|
|
},
|
|
},
|
|
}); |