gpt4 book ai didi

namespaces - phpunit 类未在测试中加载

转载 作者:行者123 更新时间:2023-12-04 16:55:39 25 4
gpt4 key购买 nike

我尝试使用自己的命名空间创建自己的库,以便可以将其包含在其他项目中。

我已经这样做了并且 composer install 运行没有错误,但是当我尝试在我的库中运行我的单元测试时,它没有找到任何用于模拟或直接初始化的类。

我的文件夹结构是这样的:

ProjectFolder
|
\_src
| \_Sap
| \_Classes
|
\_tests
| \_Sap
| \_TestClasses
| bootstrap.php
\_vendor

类中使用的命名空间遵循以下模式:
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

当我尝试直接初始化类时,同样的问题。

我的路径错了吗?我的命名空间?

最佳答案

问题是我的 src 文件夹中的附加文件夹。使用此修改后的结构,测试通过并找到类:

ProjectFolder
|
\_src
| \_Classes
|
\_tests
| \_Sap
| \_TestClasses
| bootstrap.php
\_vendor

感谢 Robbie Averill 为我指明了正确的方向。

关于namespaces - phpunit 类未在测试中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59162216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com