PHPUnit установил автоматическую загрузку psr-4 в composer.json

#php #unit-testing #composer-php #phpunit

#php #модульное тестирование #композитор-php #phpunit

Вопрос:

Я использую следующие конфигурации composer.json для использования phpunit:

 {  "require-dev": {  "phpunit/phpunit": "^9"  },  "autoload": {  "psr-4": {  "App\": "src"  }  },  "autoload-dev": {  "psr-4": {  "Tests\": "tests"  }  } }  

Мои файлы проекта выглядят следующим образом:

 gt; src  gt; Configs  gt; DB  gt; Helper  Config.php  gt; tests gt; vendor composer.json composer.lock  

Эта ошибка будет возникать до тех пор, пока "App\": "src" в файле composer.json:

 Uncaught Error: Class 'AppHelperConfig' not found in  

Но если я изменю src на приложение (in composer.json) и переименую каталог src в приложение, проблема будет решена. То есть файл композитора должен выглядеть следующим образом:

 {  "require-dev": {  "phpunit/phpunit": "^9"  },  "autoload": {  "psr-4": {  "App\": "app" // ** rename src to app **  }  },  "autoload-dev": {  "psr-4": {  "Tests\": "tests"  }  } }  

И расположите каталоги и файлы следующим образом:

 gt; app  gt; Configs  gt; DB  gt; Helper  Config.php  gt; tests gt; vendor composer.json composer.lock  

Я также использовал эту composer dump-autoload команду.

В чем может быть причина этой проблемы?

Комментарии:

1. Вы сбросили загрузчик классов после изменения корневого пространства имен? Кроме того, как это связано с PHPUnit?

2. ДА. он работает с помощью phpunit. @Нико Хаасе

3. После какого действия вы получаете эту ошибку?

4. ./phpunit index.php @пользователь487772

5. @MohsenMovahed вернуться к src , но вместо "App\": "src" этого "App\": "src/" (да, добавьте окончание / ).