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

Drupal 10.x PHPUnit测试中共享测试工具类无法自动加载

问题原因及解决办法

1. 核心原因:测试目录自动加载规则限制

Drupal默认的Composer自动配置仅对Tests目录下**继承PHPUnit官方测试基类(如BrowserTestBase、KernelTestBase)**的类启用自动加载。你创建的MyTestObject属于纯测试工具类,不在默认自动加载范围内,因此PHP找不到该类。

2. 具体解决方法

方法一:手动配置Composer自动加载(推荐)

在模块根目录的composer.json(无则新建)中,添加测试工具类的PSR-4自动加载映射:

{
  "autoload-dev": {
    "psr-4": {
      "Drupal\\Tests\\my_module\\Utilities\\": "tests/src/Utilities/"
    }
  }
}

执行命令更新自动加载缓存:

composer dump-autoload -o

方法二:手动引入文件

如果不想修改Composer配置,可在测试类文件顶部直接引入工具类文件:

require_once __DIR__ . '/../Utilities/MyTestObject.php';

方法三:整合到测试类文件

若工具类逻辑简单,可直接将MyTestObject的代码写在测试类所在的文件中,省去单独文件的加载问题。

额外检查项

  • 确保文件路径与命名空间严格匹配:tests/src/Utilities/MyTestObject.php对应命名空间Drupal\Tests\my_module\Utilities\MyTestObject,Linux环境需注意大小写一致。
  • 不要将测试工具类放到模块src/目录下,该目录用于生产代码,测试类必须留在tests/目录内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:57:12