Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Convention Laravel Package

testo/convention

Testo naming-convention plugin that discovers tests by file and class name patterns instead of explicit attributes. Ideal for adopting Testo in existing codebases with established conventions or integrating third-party suites without Testo attributes.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Legacy System Modernization: Enables adoption of Testo in PHP/Laravel projects with existing test suites that rely on naming conventions (e.g., *Test.php), avoiding costly refactoring to add Testo-specific attributes.
  • Hybrid Testing Strategy: Allows parallel use of Testo alongside PHPUnit/Pest by leveraging shared naming patterns, reducing migration risk.
  • Developer Experience (DX): Reduces friction for teams migrating from other frameworks by preserving familiar test discovery patterns (e.g., TestCase classes, test* methods).
  • Build vs. Buy Decision: Validates Testo’s convention-based discovery as a viable alternative to building custom solutions for test file scanning.
  • Roadmap for Testo Ecosystem: Supports long-term adoption of Testo by providing a low-effort entry point for projects with established conventions.

When to Consider This Package

  • Adopt when:

    • Your project uses consistent test naming conventions (e.g., *Test.php, TestCase suffixes, test* methods).
    • You’re migrating from PHPUnit/Pest and want to minimize changes to existing test files.
    • You need zero-configuration test discovery for Testo without manual attribute setup.
    • Your team prioritizes convention-over-configuration for test organization.
    • You’re evaluating Testo as a secondary test runner alongside Laravel’s native tools.
  • Look elsewhere when:

    • Your test suite lacks standardized naming (e.g., mixed Test, Spec, or custom patterns).
    • You require fine-grained test metadata (e.g., @group, @skip) that conventions cannot express.
    • You’re starting a new project and haven’t established naming conventions yet (attributes may be cleaner).
    • The Testo ecosystem lacks critical tooling (e.g., CI/CD integrations, Laravel-specific plugins).
    • Your team prefers explicit over implicit and values annotation-based clarity.

How to Pitch It (Stakeholders)

For Executives:

*"This package lets us leverage existing test files when adopting Testo, saving thousands of hours in refactoring. By using naming conventions (e.g., UserTest.php), we can run tests under Testo without changes, reducing migration risk. It’s a low-cost, high-reward way to modernize our testing infrastructure while preserving our current workflows.

Key Ask:

  • Approve a pilot on a legacy module to validate time savings.
  • Allocate resources to document and standardize naming conventions if they’re inconsistent."

For Engineering:

*"The testo/convention plugin disovers tests via filenames and method names (e.g., UserServiceTest.php + testCreateUser()), eliminating the need to add Testo attributes. This is ideal for:

  • Migrating from PHPUnit/Pest: No need to rewrite TestCase classes or methods.
  • Integrating third-party suites: Works alongside PestPHP/Codeception if they share conventions.
  • CI/CD simplicity: Zero-config test discovery for Testo.

Tradeoffs:

  • Less explicit control over test metadata (e.g., no @group via naming).
  • Assumes discipline in naming—if conventions are inconsistent, discovery may fail.

Proposal:

  1. Phase 1: Use it to run existing tests under Testo without changes.
  2. Phase 2: Gradually add Testo attributes for advanced features (e.g., data providers).
  3. Blockers: If our test naming is chaotic, we’ll need to standardize first.

Tech Stack Fit:

  • Works with Laravel/PHP projects using Testo.
  • Complements Testo’s core (no conflicts with other plugins).
  • Low maintenance: Syncs with Testo’s main repo.

Next Steps:

  • Validate if our test naming aligns with supported conventions.
  • Benchmark discovery speed vs. PHPUnit/Pest.
  • Explore integration with Laravel’s TestCase lifecycle."
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
graham-campbell/flysystem
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
directorytree/opensearch-client
directorytree/opensearch-adapter
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin