找不到类问题(作曲家,PHPUnit)


Class not found issue (Composer, PHPUnit)

从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, ...

金钱测试类:

<?php
namespace FoobarTest'Money;

class MoneyTest extends 'PHPUnit_Framework_TestCase
{
    // ...

金钱类:

<?php
namespace Foobar'Money;

class Money
{
    // ...

为什么它试图加载FoobarTest'Money'Money而不是Foobar'Money'Money

为了帮助 php 自动加载器(和作曲家),您必须使用

use Foobar'Money'Money;

在测试文件中。

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