Класс не найден (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, …

Класс MoneyTest:

<?php
namespace FoobarTest\Money;class MoneyTest extends \PHPUnit_Framework_TestCase
{
// ...

Денежный класс:

<?php
namespace Foobar\Money;class Money
{
// ...

Почему он пытается загрузить FoobarTest\Money\Money вместо Foobar\Money\Money ?

0

Решение

Чтобы помочь php автозагрузчику (и композитору), вы должны импортировать целевой класс, используя

use Foobar\Money\Money;

в вашем тестовом файле.

Также вы, вероятно, хотите дать свой тестовый файл MoneyTest.php имя, соответствующее имени соответствующего класса.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]