Skip to content

Latest commit

 

History

History
138 lines (113 loc) · 6.61 KB

File metadata and controls

138 lines (113 loc) · 6.61 KB

Changelog

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.

[0.1.5] - 2026-06-25

✨ New Features

  • Group by Tags: Tests can now be grouped by their PHPUnit @group annotations in the tree view
    • New accordion level: Collection → Group → File → Method
    • Tests without @group are collected under an "Ungrouped" section
    • One test with multiple @group tags 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")

⚙️ Configuration

  • phpTestCollections.groupTestsByGroups (boolean, default true): controls whether the tree groups tests by @group annotations

[0.1.4] - 2026-06-24

✨ New Features

  • Inheritance-Based Test Detection: New testBaseClasses parameter 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

🐛 Bug Fixes

  • 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

📚 Documentation

  • README: Added comprehensive section on inheritance-based detection with examples
  • USER-GUIDE: Added detailed guide for testBaseClasses configuration with concrete examples
  • CLAUDE.md: Updated architecture documentation with new detection features

[0.1.2] - 2026-02-05

🐛 Bug Fixes

  • 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

🔧 Improvements

  • Test Parser: Enhanced extractClassName method with more robust pattern matching
  • Code Quality: Improved comment handling and false positive prevention

[0.1.1] - 2024-11-28

✨ New Features

  • 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

🔧 Improvements

  • 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

🐛 Bug Fixes

  • 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

📚 Documentation

  • README: Added comprehensive logging configuration section
  • Error Handling: Documented new error details panel functionality
  • Code Comments: All source files now have English documentation

[0.1.0] - 2025-11-17

🎉 Added

  • 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

🚀 Improved

  • 🚀 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

🏗️ Technical Architecture

  • 📁 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

🐛 Fixed

  • Terminal TTY: Removed -it flag for VS Code compatibility
  • Configuration: Required workspace validation
  • File opening: Fixed test file URI handling
  • Command order: PHPUnit --filter syntax before file

🎯 Features

  • PHP/PHPUnit Support: Automatic detection of *Test.php files
  • Test method detection: Both testXxx() methods and @test annotations
  • 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

[0.0.1] - 2025-11-15

🎉 Initial Release

  • 📚 Configurable test collections
  • 🎯 Individual test and collection execution
  • ⚙️ Graphical interface in VS Code explorer
  • 🔧 Flexible JSON configuration