Получение следующей формы ошибки 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
?
Чтобы помочь php автозагрузчику (и композитору), вы должны импортировать целевой класс, используя
use Foobar\Money\Money;
в вашем тестовом файле.
Также вы, вероятно, хотите дать свой тестовый файл MoneyTest.php
имя, соответствующее имени соответствующего класса.
Других решений пока нет …