Класс Tests\DuskTestCase не найден в ExampleTest.php

Я пытаюсь запустить тесты Laravel Dusk, но когда я запускаю тест, появляется новая вкладка Chrome с этим сообщением.

Fatal error: Class 'Tests\DuskTestCase' not found in path-to-project\tests\Browser\ExampleTest.php on line 9

Все, что я сделал до сих пор, это запустил composer require --dev laravel/dusk:^1.0 и php artisan dusk:install.

Это мой ExampleTest.php (именно так его настроил Laravel)

<?php

namespace Tests\Browser;

use Laravel\Dusk\Chrome;
use Tests\DuskTestCase;
use Laravel\Dusk\DuskServiceProvider;

class ExampleTest extends DuskTestCase
{
    /**
     * A basic browser test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
        $this->browse(function ($browser) {
            $browser->visit('/')
                ->assertSee('Laravel');
        });
    }
}

DuskTestCase.php такой же, каким его настроил Laravel, и имеет пространство имен namespace Tests;.

Я использую Laravel 5.4 и Dusk 1.0. Я запускаю тест через PhpStorm, используя обходной путь, описанный здесь.

Кто-нибудь знает, почему DuskTestCase не может быть найден, хотя он настроен правильно? Заранее спасибо.


person Larisa    schedule 22.12.2017    source источник
comment
Существует ли файл DuskTestCase.php в каталоге tests? Да, попробуйте запустить composer dump-autoload   -  person Marcin Nabiałek    schedule 22.12.2017


Ответы (4)


В композиторе.json:

добавить "Tests\\": "tests/" в

"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/",
            "Tests\\": "tests/"
        }
    },

затем запустите composer dump-autoload, чтобы перезагрузить пакеты.

person saee    schedule 04.04.2019

У меня была эта ошибка из-за использования устаревших документов, в которых не было этой строки:

$ php artisan dusk:install

person Jack Kinsella    schedule 20.11.2019
comment
С 'composer require --dev laravel/dusk' в моем каталоге тестов раньше не было DuskTestCase.php. При этом он генерируется и работает нормально. Спасибо - person Meow Kim; 13.04.2020

Если composer dump-autoload не решает проблему, попробуйте выполнить следующие действия.

  1. Посетите домашнюю страницу в своем браузере и проверьте, правильно ли она отображается. Если нет, то у вас, вероятно, проблема с конфигурацией веб-сервера (подсказка: разве ваш проект не находится в корневом каталоге документа?).
  2. Вы можете попробовать встроенный сервер Laravel через php artisan serve. Если домашняя страница теперь доступна в вашем браузере, вы можете снова попробовать сумерки. В этом случае не забудьте обновить файл .env, чтобы он соответствовал APP_URL=http://127.0.0.1:8000. , и запустите php artisansummer из другого окна cli, потому что php artisan serve также должен быть запущен.
person Bart    schedule 22.12.2017
comment
Домашняя страница загружается. Я настроил URL-адрес с помощью XAMPP, и этот URL-адрес определен в .env. Я попытался сделать 2, и домашняя страница доступна с 127.0.0.1:8000, но когда я запускаю php artisan dusk, я get [Symfony\Component\Process\Exception\RuntimeException] TTY mode is not supported on Windows platform. Это была ошибка, которую я видел ранее, но думал, что решил ее, когда у меня заработали PhpStorm и Dusk. - person Larisa; 23.12.2017

если вы тестируете с помощью phpstrom, то вы установили путь к phpunit ...... в настройках/языках и фреймворках/php/тестовых фреймворках и используете путь автозагрузчика композитора, а затем выберите путь вашего проекта laravel в сумерках с файлом autoload.php ..... установить файл vendor/autoload.php в пути к скрипту...

person Jignesh Joisar    schedule 23.12.2017