【发布时间】:2016-11-08 00:28:36
【问题描述】:
我有以下项目结构
src/
├─ MyPackage/
├─ MySDK.php
└─ SDKHelper.php
test/
├─ MySDKTest.php
└─ TestUtils.php
composer.json
composer.lock
我的 composer.json 文件如下所示:
"autoload": {
"psr-4": {
"MyPackage\\": "src/MyPackage"
}
}
一切都很好,MySDKTest.php 单元测试通过了,直到我尝试将一些实用方法添加到第三个文件TestUtils.php。当我尝试从MySDKTest.php 调用TestUtils::utilityMethod() 时,phpunit 抱怨找不到类TestUtils。
我一直在阅读有关添加 autoload-dev 密钥的信息,我尝试过各种变体,但到目前为止,似乎没有任何效果。我应该澄清一下,我可以在MySDKTest 中使用MySDK 和SDKHelper 方法。 MySDKTest.php 工作时看起来像这样:
use MyPackage\MySDK;
class MySDKTest extends PHPUnit_Framework_TestCase {
public function testPackage() {
$sdk = new MySDK();
$sdk->exampleMethod();
}
}
【问题讨论】:
-
对于一个好问题,你应该总是提到你到底尝试了什么,但没有奏效。这将使您更容易发现错误。不要写我一直在阅读有关添加 autoload-dev 密钥的文章,我尝试过的变体,至少显示一个您认为应该完成这项工作的示例。还要显示无法加载的代码,而不是已经工作的代码,即我们需要
TestUtils.php内容,而不是MySDKTest.php。 -
嘿@Sven,我忘了这个问题。事实证明,我实际上做的一切都是正确的。再次运行
composer.phar install会生成更新的 autoload.php,从而解决了问题。我将添加我使用过的autoload-dev配置。
标签: php phpunit composer-php autoload psr-4