phpunit 类 未在测试中加载
phpunit Classes are not loaded in tests
我尝试创建自己的库,它有自己的命名空间,因此可以包含在其他项目中。
我已经做到了并且 composer 安装 运行s 没有错误,但是当我尝试 运行 我的库中的单元测试时,它也没有找到任何 classes用于模拟或直接初始化。
我的文件夹结构是这样的:
ProjectFolder
|
\_src
| \_Sap
| \_Classes
|
\_tests
| \_Sap
| \_TestClasses
| bootstrap.php
\_vendor
classes 中使用的名称空间遵循以下模式:
namespace PuC\Sap;
测试中使用的模式是这样的:
namespace PuC\Sap\Tests\Sap;
我的 composer.json 看起来像这样:
"autoload": {
"psr-4": {
"PuC\Sap\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"PuC\Sap\Tests\": "tests/"
}
},
在我的测试文件夹中,我添加了一个 bootstrap.php 并在我的 phpunit.xml 文件中引用它:
<?php
$loader = @include __DIR__ . '/../vendor/autoload.php')
$loader->add('Sap', __DIR__);
不,当我在 bash 中 运行 这个时,我得到:
$ bin/phpunit tests/
PHPUnit 8.4.3 by Sebastian Bergmann and contributors.
......
7) PuC\Sap\Tests\Sap\HouseSoapServiceTest::testGetHouseData
Cannot stub or mock class or interface "PuC\Sap\Client\SapSoapClient" which does not exist
当我尝试直接初始化 class 时出现同样的问题。
我的路径错了吗?我的命名空间?
问题出在我的 src 文件夹中的附加文件夹。使用此修改后的结构,测试通过并找到 类:
ProjectFolder
|
\_src
| \_Classes
|
\_tests
| \_Sap
| \_TestClasses
| bootstrap.php
\_vendor
感谢 Robbie Averill 为我指明了正确的方向。
我尝试创建自己的库,它有自己的命名空间,因此可以包含在其他项目中。
我已经做到了并且 composer 安装 运行s 没有错误,但是当我尝试 运行 我的库中的单元测试时,它也没有找到任何 classes用于模拟或直接初始化。
我的文件夹结构是这样的:
ProjectFolder
|
\_src
| \_Sap
| \_Classes
|
\_tests
| \_Sap
| \_TestClasses
| bootstrap.php
\_vendor
classes 中使用的名称空间遵循以下模式:
namespace PuC\Sap;
测试中使用的模式是这样的:
namespace PuC\Sap\Tests\Sap;
我的 composer.json 看起来像这样:
"autoload": {
"psr-4": {
"PuC\Sap\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"PuC\Sap\Tests\": "tests/"
}
},
在我的测试文件夹中,我添加了一个 bootstrap.php 并在我的 phpunit.xml 文件中引用它:
<?php
$loader = @include __DIR__ . '/../vendor/autoload.php')
$loader->add('Sap', __DIR__);
不,当我在 bash 中 运行 这个时,我得到:
$ bin/phpunit tests/
PHPUnit 8.4.3 by Sebastian Bergmann and contributors.
......
7) PuC\Sap\Tests\Sap\HouseSoapServiceTest::testGetHouseData
Cannot stub or mock class or interface "PuC\Sap\Client\SapSoapClient" which does not exist
当我尝试直接初始化 class 时出现同样的问题。
我的路径错了吗?我的命名空间?
问题出在我的 src 文件夹中的附加文件夹。使用此修改后的结构,测试通过并找到 类:
ProjectFolder
|
\_src
| \_Classes
|
\_tests
| \_Sap
| \_TestClasses
| bootstrap.php
\_vendor
感谢 Robbie Averill 为我指明了正确的方向。