Неудачная ошибка 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() {
    }
}

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