Skip to content

Deprecate support for #[CoversTrait] and #[UsesTrait] attributes #5958

Description

@sebastianbergmann

The #[CoversTrait] and #[UsesTrait] attributes were introduced in PHPUnit 11.2 while/after working on #5798.

Had I been aware at the time that #[CoversClass] and #[UsesClass] also target the traits used by the targeted classes, I would not have implemented the #[CoversTrait] and #[UsesTrait] attributes. As of 17bbefa, this behaviour is now documented in tests.

The #[CoversTrait] and #[UsesTrait] attributes are therefore not needed and will be deprecated in PHPUnit 11.4 and removed in PHPUnit 12.

If you currently use #[CoversClass] or #[UsesClass] to target traits: don't. Testing traits in isolation from their embedding classes is not useful.

If you currently use #[CoversTrait] or #[UsesTrait] to target traits: don't. The traits used by the class(es) you target with #[CoversClass] or #[UsesClass] will be targeted as well.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions