我有一些命名空间被在包A中使用自动加载的测试
"autoload-dev": {
"psr-4": {
"Vendor\\PackageA\\PhpUnit\\": "tests/PhpUnit"
}
},
Run Code Online (Sandbox Code Playgroud)
这很好用.
我有另一个包,包B也有命名空间测试,需要在包A中进行一个命名空间测试
"autoload-dev": {
"psr-4": {
"Vendor\\PackageB\\PhpUnit\\": "tests/PhpUnit"
}
},
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在包B中包含该文件时,找不到该类
use Vendor\PackageA\PhpUnit\MyTestFromA;
class MyTestFromB extends MyTestFromA
{
Run Code Online (Sandbox Code Playgroud)
让我觉得其他软件包中的autoload-dev东西没有被加载.
PHP致命错误:第3行的/full/path/to/PackageBClass.php中找不到类'Vendor\PackageA\PhpUnit\MyTestFromA'
当我尝试autoload从包B而不是导入使用自动加载的文件时autoload-dev,我没有得到任何错误.
我怎么能克服这个?
我的一部分是考虑为测试制作一个包,并在两者中自动加载,autoload-dev但我想先确认.
解决方案:Composer autoload-dev不起作用.
看看文档.它说:"autoload-dev (仅限root) ".root只表示它只适用于root包.当您包含该包时,显示的
composer.json文件不是根包,autoload-dev因此忽略该部分.
| 归档时间: |
|
| 查看次数: |
477 次 |
| 最近记录: |