You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHPUnit 10:如何用Attributes替代@covers文档块元数据?

PHPUnit 迁移到覆盖属性的解决方案

要替代原文档块中的@coversDefaultClass和@covers ::bar,你需要按照以下方式使用PHPUnit的属性:

  1. 先引入所需的属性类:
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\CoversFunction;
use PHPUnit\Framework\Attributes\Test;
  1. 类级别用#[CoversClass]替代@coversDefaultClass,方法级别用#[CoversFunction]指定完整方法限定名替代@covers ::bar:
#[CoversClass(\App\Foo::class)]
final class FooTest
{
    #[Test]
    #[CoversFunction('App\Foo::bar')]
    public function can_it_bar(): void
    {
        // 测试逻辑
    }
}

关键注意点

  • #[CoversClass]直接传入目标类的完整类名(带命名空间),作用和@coversDefaultClass完全一致,为整个测试类指定默认覆盖的类。
  • #[CoversFunction]需要传入完整的方法限定名(命名空间+类名+方法名),不能像文档块那样仅写::bar,这是属性与文档块语法的核心区别,能确保覆盖率统计精准匹配目标方法。

内容的提问来源于stack exchange,提问作者lloydimus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 09:07:08