类未找到问题(Composer,PHPUnit)

时间:2014-12-01 21:33:08

标签: php phpunit composer-php autoload psr-0

从PHPUnit获取以下错误:

Fatal error: Class 'FoobarTest\Money\Money'
not found in /www/foobar/tests/FoobarTest/Money/MoneyTest.php on line 11

我的结构如下:

/src/Foobar/Money/Money.php (class Money, namespace Foobar\Money)

/tests/FoobarTest/Money/Money.php (class Money, namespace FoobarTest\Money)

通过作曲家完成自动加载:

"autoload": {
    "psr-4": {
        "Foobar\\": "src/"
    },
    "psr-0": {
        "FoobarTest\\": "tests/"
    }
},

尝试使用PSR0,PSR2,PSR4,......

MoneyTest类:

<?php
namespace FoobarTest\Money;


class MoneyTest extends \PHPUnit_Framework_TestCase
{
    // ...

金钱类:

<?php
namespace Foobar\Money;


class Money
{
    // ...

为什么要尝试加载 FoobarTest\Money\Money而不是Foobar\Money\Money

1 个答案:

答案 0 :(得分:1)

要帮助php自动加载器(和编写器),您必须使用

导入目标类
use Foobar\Money\Money;

在您的测试文件中。

此外,您可能希望为测试文件指定一个MoneyTest.php名称以匹配相应的类名。