- Deleted `CHANGES.md`, `CHANGES_SUMMARY.md`, `CONCURRENCY_ANALYSIS.md`, `CONCURRENCY_IMPLEMENTATION_SUMMARY.md`, and related developer documentation files. - Removed redundant or legacy content no longer aligned with the current codebase and workflows. - Updated repository to reflect streamlined documentation approach, reducing clutter and improving maintainability. **Purpose**: Simplify and declutter repository by removing obsolete documentation files, ensuring it remains focused and relevant.
5.8 KiB
Vitest Output Improvements
Changes Made
The Vitest configuration has been updated to provide cleaner, more focused test output that shows only successes, failures, and a nice summary report at the end. The following changes were implemented:
1. Reporter Configuration
- Removed the verbose reporter which was causing excessive output
- Configured the default reporter to:
- Show a summary at the end
- Display test titles for all tests
- Use a compact output format
reporters: [
[
'default',
{
summary: true,
reportSummary: true,
successfulTestOnly: false,
outputFile: false
}
]
]
2. Output Settings
- Set
hideSkippedTests: trueto reduce noise from skipped tests - Set
printConsoleTrace: falseto only show stack traces for failed tests - Added output formatting options:
outputDiffLines: 5; // Limit diff output lines for cleaner error reports outputFileMaxLines: 40; // Limit file output lines for cleaner error reports outputTruncateLength: 80; // Truncate long output lines
3. Console Output Filtering
Enhanced the onConsoleLog function to be more aggressive in filtering out unnecessary output:
- Added filtering for stdout logs to only show errors, failures, warnings, and test results
- Expanded the noise patterns list to filter out more common noise sources
- Added explicit handling to show logs that pass all filters
Results
The test output is now much cleaner and more focused:
- Only shows important information like test successes and failures
- Displays stderr messages only when relevant (e.g., for error handling tests)
- Provides a clean, readable summary at the end showing:
- Number of test files passed
- Number of tests passed
- Duration information
- Start time
How to Run Tests
Use the standard npm test commands:
# Run all tests
npm test
# Run specific test file
npm test -- tests/core.test.ts
# Run tests in watch mode
npm run test:watch
Recent Improvements (July 2025)
The Vitest configuration has been further enhanced to provide more detailed reporting and better console output suppression:
1. Multiple Reporters
Added multiple reporters to provide different levels of detail:
reporters: [
// Default reporter for basic progress and summary
[
'default',
{
summary: true,
reportSummary: true,
successfulTestOnly: false,
outputFile: false
}
],
// Verbose reporter for detailed information about failures
[
'verbose',
{
onError: true,
displayDiff: true,
displayErrorStacktrace: true
}
],
// JSON reporter for machine-readable output
[
'json',
{
outputFile: './test-results.json'
}
]
]
2. Enhanced Console Output Suppression
Improved the console output filtering to be more aggressive:
- Added a whitelist approach for stdout, only allowing specific test-related patterns
- Enhanced stderr filtering to only show actual errors
- Expanded the list of noise patterns to filter out common debug messages
- Added additional filtering for common debug output patterns
3. New Test Scripts
Added several new test scripts to provide different reporting options:
# Standard test run with default configuration
npm test
# Detailed report with verbose output
npm run test:report:detailed
# Generate JSON report for machine processing
npm run test:report:json
# Run tests in silent mode (minimal output)
npm run test:silent
# Show only progress and errors
npm run test:progress-only
How to Use the New Features
For Detailed Test Reports
When you need comprehensive information about test results, especially for failures:
npm run test:report:detailed
This will show detailed information about each test, including:
- Full test hierarchy
- Detailed error messages with stack traces
- Test durations
- Comprehensive summary
For CI/CD Integration
When you need machine-readable output for integration with CI/CD systems:
npm run test:report:json
This generates a test-results.json file that can be processed by other tools.
For Minimal Output
When you want to see only test progress without noise:
npm run test:progress-only
This shows only test progress indicators and critical errors.
For Completely Silent Operation
When you want to run tests with minimal console output:
npm run test:silent
Recent Improvements (July 2025)
Pretty Test Reporter
A new visually appealing test summary reporter has been added to provide a clearer, more readable test summary. The pretty reporter:
- Uses colors and symbols to distinguish between passed, failed, and skipped tests
- Displays test results in a clean, tabular format
- Shows detailed statistics about the test run
- Clearly lists any failed tests with their error messages
To use the pretty reporter, run:
npm run test:report:pretty
For more details, see the PRETTY_TEST_REPORTER.md document.
Future Improvements
If further customization is needed, consider:
- Creating custom HTML reports for better visualization
- Integrating with notification systems for test failures
- Adding performance benchmarking to the test reports
Recent Fixes (July 2025)
Fixed Duplicate Summary Output
The test output was showing duplicate summary information at the end of test runs. This has been fixed by:
- Simplifying the reporters configuration to use only the necessary reporters
- Removing the verbose reporter which was causing duplicate summary output
- Keeping only the default reporter for console output and JSON reporter for machine-readable output
For more information about expected error messages during test runs, see the EXPECTED_TEST_MESSAGES.md document.