All notable changes to the "PHP Test Collections Explorer" extension will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Group by Tags: Tests can now be grouped by their PHPUnit
@groupannotations in the tree view- New accordion level: Collection → Group → File → Method
- Tests without
@groupare collected under an "Ungrouped" section - One test with multiple
@grouptags appears in each matching group
- Toggle Group by Tags: New button in the explorer toolbar to enable/disable grouping on the fly
$(tag)icon when grouping is active — click to disable$(list-tree)icon when grouping is inactive — click to enable- State persisted in workspace settings (
phpTestCollections.groupTestsByGroups)
- Run by Group: New ▶ inline button on each group item to run all tests in that group
- Executes
phpunit --group "tagName"via the collection's configured command - Fully supports Docker (
docker exec … phpunit --group "tagName")
- Executes
phpTestCollections.groupTestsByGroups(boolean, defaulttrue): controls whether the tree groups tests by@groupannotations
- Inheritance-Based Test Detection: New
testBaseClassesparameter for flexible test file discovery- Detect test files by class inheritance instead of just filename patterns
- Support custom test base classes (e.g.,
TestCase,CustomBaseTest) - Auto-detect common frameworks: PHPUnit, Laravel, Symfony
- Combine pattern matching with inheritance detection in one collection
- Test Icon Updates: Fixed issue where test icons wouldn't update when inheritance detection was enabled
- Test status now preserved during cache reload cycles
- Icons update correctly when tests execute
- Resolved status reset on tree view refresh
- README: Added comprehensive section on inheritance-based detection with examples
- USER-GUIDE: Added detailed guide for
testBaseClassesconfiguration with concrete examples - CLAUDE.md: Updated architecture documentation with new detection features
- Class Name Detection: Fixed incorrect class name detection when "class" keyword appears in comments
- Improved regex pattern to ignore class references in multi-line and single-line comments
- Added support for class modifiers (abstract, final) in detection
- Enhanced parsing accuracy by filtering out commented code before analysis
- Resolved issue where words following "class" in documentation comments were incorrectly captured as class names
- Test Parser: Enhanced
extractClassNamemethod with more robust pattern matching - Code Quality: Improved comment handling and false positive prevention
- Test Error Details Panel: New dedicated WebView panel for displaying test errors
- Rich HTML formatting with VS Code theme integration
- Detailed error information including method, class, file, and collection
- Formatted error messages and stack traces
- Suggested actions for debugging
- Enhanced Error Visualization: Improved error display with proper HTML escaping
- Better UX: Test error details now open in a separate tab instead of modal dialogs
- Logging System: Fully configurable logging levels (error, warn, info, debug)
- Real-time level changes without restart
- Performance optimization by filtering debug messages
- Clear level hierarchy and user documentation
- Code Translation: Complete English translation of all source files
- Professional documentation and comments
- Consistent terminology across the extension
- International-ready codebase
- Error Display: Fixed modal dialog limitations for long error messages
- HTML Escaping: Proper escaping of error content to prevent rendering issues
- UI Consistency: Improved error presentation consistency
- README: Added comprehensive logging configuration section
- Error Handling: Documented new error details panel functionality
- Code Comments: All source files now have English documentation
- ✨ Modular architecture: Code reorganized into 6 autonomous services
- ✨ Complete Docker support: Native execution in containers
- ✨ File status indicators: Visual indicators for each test file
- ✨ Dedicated Test tab: View integrated in VS Code Test tab
- ✨ Advanced logging: Detailed output with timestamps
- ✨ File execution: Button to run all tests in a file
- ✨ Individual test execution: Run specific test methods
- ✨ Test collections: Organize tests by logical groups
- 🚀 Performance: Smart cache with automatic refresh
- 🎯 UX: Informative tooltips and status icons
- 🔍 Debug: Complete logs in "PHP Test Collections" Output
- ⚡ Stability: Robust error handling and fallbacks
- 🖥️ Terminal management: Reuse terminals per collection
- 📁 types/: Centralized TypeScript interfaces
- 📝 LoggingService: Premium logging system
- 💾 CacheService: Workspace-specific JSON cache management
- 🚀 TestRunner: PHPUnit execution with Docker support
- 🔍 TestParser: PHP parsing with dual detection
- 👁️ FileWatcher: Real-time file monitoring
- ✅ Terminal TTY: Removed
-itflag for VS Code compatibility - ✅ Configuration: Required workspace validation
- ✅ File opening: Fixed test file URI handling
- ✅ Command order: PHPUnit
--filtersyntax before file
- PHP/PHPUnit Support: Automatic detection of
*Test.phpfiles - Test method detection: Both
testXxx()methods and@testannotations - Hierarchical view: Collection → File → Test methods
- Status tracking: Visual indicators for test states (passed/failed/running/unknown)
- Docker integration: Seamless container execution with image configuration
- Cache system: Persistent test discovery for faster loading
- Terminal management: Smart terminal reuse and cleanup
- 📚 Configurable test collections
- 🎯 Individual test and collection execution
- ⚙️ Graphical interface in VS Code explorer
- 🔧 Flexible JSON configuration