http://localhost/laravel/app/tests/ExampleTest.php
если я запустил laravel, он показывает следующую ошибку
Неустранимая ошибка: Class 'TestCase' не найден в D: \ xampp \ htdocs \ laravel \ app \ tests \ ExampleTest.php в строке 3, любая идея
Выполните следующую команду в корневом каталоге вашего проекта
phpunit app/tests/
У вас на самом деле нет большой информации, но конкретная проблема, вероятно, в том, что у вас нет автозагрузчика (поэтому класс TestCase
который ожидает PHP, на самом деле не загружен. Основная проблема, в свою очередь, вы пытаетесь запустить ExampleTest.php
непосредственно на терминале, тогда как вместо этого вы должны правильно загружать тестовую среду через Laravel и PHPUnit.
Вы должны найти файл phpunit.xml в корне вашей установки Laravel. Этот файл сообщает PHPUnit, как загружать и запускать тесты для вашего приложения, поэтому вам просто нужно запустить phpunit
в командной строке в корне вашего приложения, и он должен работать.
Если это не проблема, просьба предоставить более подробную информацию для людей, с которыми вам нужно помочь.
В моем случае я заметил, что в моей корневой папке не содержится файла phpunit.xml.
Решите его, включая следующий код в phpunit.xml в корневой папке:
<?xml version="1.0" encoding="UTF-8"?> <phpunit backupGlobals="false" backupStaticAttributes="false" bootstrap="bootstrap/autoload.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" syntaxCheck="false" > <testsuites> <testsuite name="Application Test Suite"> <directory>./app/tests/</directory> </testsuite> </testsuites> </phpunit>
во<?xml version="1.0" encoding="UTF-8"?> <phpunit backupGlobals="false" backupStaticAttributes="false" bootstrap="bootstrap/autoload.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" syntaxCheck="false" > <testsuites> <testsuite name="Application Test Suite"> <directory>./app/tests/</directory> </testsuite> </testsuites> </phpunit>
во<?xml version="1.0" encoding="UTF-8"?> <phpunit backupGlobals="false" backupStaticAttributes="false" bootstrap="bootstrap/autoload.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" syntaxCheck="false" > <testsuites> <testsuite name="Application Test Suite"> <directory>./app/tests/</directory> </testsuite> </testsuites> </phpunit>
У меня была такая же проблема, вы должны запустить тест из корневой папки, в вашем случае « http: // localhost / laravel », а в терминале вам просто нужно написать phpunit, и тест будет выполнен.
Проверьте, указан ли каталог ваших tests
в classmap
вашего файла composer.json
.
Если не добавить его и запустить composer dump-autoload
.
"autoload-dev": { "classmap": [ "tests", "database/" ] },
У меня такая же ошибка, но никто не работал,
кроме этого, это сработало для меня,
Я попытался переустановить и обновить свой phpunit в Laravel 5.4,
Изменить compose.json -> найти эту строку и изменить версию phpunit
"require-dev": {"phpunit / phpunit": "~ 6.4"},
после редактирования, запустите на вашем cmd,
обновление композитора
затем выполните
компоновщик-автозагрузка
php artisan config:clear
php artisan cache:clear
наконец, запустить phpunit
или запустить определенную единицу, phpunit --filter yourTestCaseClass