Неудачная ошибка laravel для TestCase не найдена
http://localhost/laravel/app/tests/ExampleTest.php
если я запустил laravel, он показывает следующую ошибку
Неустранимая ошибка: Class 'TestCase' не найден в D:\xampp\htdocs\laravel\app\tests\ExampleTest.php в строке 3, любая идея
Ответы
Ответ 1
Запустите следующую команду в корневом каталоге вашего проекта
phpunit app/tests/
Обновить:
Вы также можете запустить следующую команду, если phpunit не установлен на вашем компьютере. Что также лучше, чтобы избежать различий в версии между товарищами по команде.
vendor/bin/phpunit
![enter image description here]()
Ответ 2
В моем случае я заметил, что в моей корневой папке не содержится файла 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>
Ответ 3
Здесь вы действительно не указали много информации, но конкретная проблема, вероятно, в том, что у вас нет автозагрузчика (поэтому класс TestCase
, который ожидает PHP, на самом деле не загружен. Основная проблема в свою очередь, вероятно, вы пытаетесь запустить ExampleTest.php
непосредственно на терминале, тогда как вместо этого вы должны правильно загружать тестовую среду через Laravel и PHPUnit.
Вы должны найти файл phpunit.xml в корне вашей установки Laravel. Этот файл сообщает PHPUnit, как загружать и запускать тесты для вашего приложения, поэтому вы должны просто запустить phpunit
в командной строке в корневой папке приложения и работать.
Если это не проблема, пожалуйста, предоставьте более подробную информацию для людей, с которыми можно помочь.
Ответ 4
У меня была такая же проблема, вы должны запустить тест из корневой папки, в вашем случае http://localhost/laravel ', а в терминале вам просто нужно напишите phpunit, и будет выполнен тест.
Ответ 5
Проверьте, указан ли ваш каталог tests
в свойстве classmap
вашего файла composer.json
.
Если не добавить его и запустить composer dump-autoload
.
"autoload-dev": {
"classmap": [
"tests",
"database/"
]
},
Ответ 6
У меня такая же ошибка, но никто не работал,
кроме этого, это сработало для меня,
Я попытался переустановить и обновить свой phpunit в Laravel 5.4,
-
изменить compose.json → найти эту строку и изменить версию phpunit
"require-dev": { "phpunit/phpunit": "~ 6.4" },
-
после редактирования, запустите на вашем cmd,
Обновление композитора
-
затем запустите
композитор dump-autoload
-
php artisan config:clear
-
php artisan cache:clear
-
наконец,
запустите phpunit
или запустить определенный блок, phpunit --filter yourTestCaseClass
![введите описание изображения здесь]()
Ответ 7
Это вызвано устаревшим phpunit. Если вы используете глобально установленный phpunit, вот ссылка на то, как его обновить fooobar.com/questions/1661261/.... Или вы можете явно использовать phpunit, который был установлен вместе с проектом.
Ответ 8
Если бы у PHPUnit была такая же проблема, он всегда выводил бы одно и то же сообщение: PHP Fatal error: Class 'Tests\TestCase' not found...
и, действительно, я думаю, что у него были проблемы с поиском этого класса, поэтому вам нужно преобразовать его. линия:
ИЗ ЭТОГО (Старая версия):
<?php
namespace Tests\Feature;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
class AnotherTest extends TestCase {
public function testExample() {
}
}
ЭТО (Новая версия):
<?php
namespace Tests\Feature;
use PHPUnit\Framework\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
class AnotherTest extends TestCase {
public function testExample() {
}
}
Обратите внимание на первую строку в использовании, и вы должны сделать это, если есть другие файлы в том же случае