我在供应商目录中安装了一个名为
bbn
的库,我想在作为依赖项时运行测试。
在依赖项中,我注意到有些可以毫无问题地运行,但其他依赖项需要成为要运行的主项目。
bbn
库就是这种情况,但我不明白为什么。
试图实现这一目标,我对作曲家配置做了一些更改,但我仍然遇到相同的错误:未找到类。
这就是我设置作曲家的方式:
"autoload": {
"psr-4": {
"bbn\\": "src/bbn/"
}
},
"autoload-dev": {
"psr-4": {
"bbn\\": "tests/"
}
},
我的测试位于名为“tests”的目录中。在这个“测试”目录中,我有另一个名为“测试”的目录(因此测试/测试),在这个测试文件夹中,我实现了两个包含一些特征的文件:
Reflectable.php:
<?php
namespace bbn\tests;
trait Reflectable
{
...
}
反射助手:
<?php
namespace bbn\tests;
class ReflectionHelpers
{
...
}
在我的主“测试”目录中(tests/),我实现了一个测试类,它调用我的可反射类,但在运行测试时出现错误:
XTest.php:
<?php
namespace bbn;
use bbn\X;
use Illuminate\Support\Str;
use PHPUnit\Framework\TestCase;
use bbn\tests\Files;
use bbn\tests\Reflectable;
class XTest extends TestCase
{
use Reflectable, Files;
...
}
错误:
PHP Fatal error: Trait "bbn\tests\Reflectable" not found in XTest.php
我可以得到任何建议吗?
当您的库安装在
vendor
中时,*-dev
配置不适用。因此,当库处于 vendor
时,不可能运行库测试。
如果您想运行库测试,您需要从其 Git 存储库加载它,然后运行它的
composer install
- 只有在这种情况下,它的 autoload-dev
才会处于活动状态。