@usdbuy

Phpunit не находит класс из соседнего проекта?

Всем привет, подскажите пожалуйста по настроке загрузки класса..

у меня проект в котором есть класс app/library/Helper/Crypt.php

вот как выглядит данный класс

namespace Helper;

class Crypt
{
}


composer autoload основного проекта

"autoload": {
       "psr-4": {        
        "Helper\\": "library/Helper/"        
    }
}


я добавил по пути app/xxx/phpunit-tests/ компонент где планировал создавать классы из основного проекта для юнит тестривания

при запуске теста php vendor/bin/phpunit не может найти класс Error: Class 'Helper\Crypt' not found

данный тест находится по пути app/xxx/phpunit-tests/test

<?php

use Helper\Crypt;
use PHPUnit\Framework\TestCase;

class CryptTest extends TestCase
{
    public function testSuccess(): void
    {
        $res = Crypt::get()->crypt(42144);

        var_dump($res);
    }
}


композер данного тестового окружения

{
    "autoload": {
        "psr-4": {
            "Helper\\": "../../library/Helper/"
        }
    },
    "require-dev": {
        "phpunit/phpunit": "^9.5"
    }
}


phpunit.xml

<phpunit bootstrap="vendor/autoload.php"
    colors="true"
    verbose="true"
    stopOnFailure="false">
    <testsuites>
        <testsuite name="Tests">
            <directory>test</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
        <directory suffix=".php">app</directory>
    </whitelist>
    </filter>
</phpunit>


как можно сделать чтобы все классы из данной папки app были доступны? тесты запускаю в контейнере файлы основного проекта и компонента прокинуты туда

UPD
добавил для наглядности скринов
y8Uo6Dl.png
6EqCwYQ.png
f4dyWtg.png
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ответы на вопрос 1
@spaceatmoon
Хм, не знаю почему, но ответ удалили или удалился сам. Daria Motorina что за магия?

В общем, у тебя неправильный путь прописан. Ты должен указывать полный путь от корня, а не относительный.

"autoload": {
        "psr-4": {
            "Spaceatmoon\\": "src/",
	     "Mue\\": "src/hue/mue"
        }
    },

Потом нужно обновить autoload
php composer.phar dump-autoload
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы