Laravel Dusk - конфигурация класса не существует

недавно обновил проект с 5.3 до 5.4, и все выглядело хорошо.

Сегодня я начал внедрять Dusk, но при запуске примера теста возникла проблема.

☁  footy-finance [5.4] ⚡ php artisan dusk
PHPUnit 6.0.0 by Sebastian Bergmann and contributors.

E                                                                   1 / 1 (100%)

Time: 162 ms, Memory: 6.00MB

There was 1 error:

1) Tests\Browser\ExampleTest::testBasicExample
ReflectionException: Class config does not exist

/Users/owen/Sites/footy-finance/vendor/laravel/framework/src/Illuminate/Container/Container.php:681
/Users/owen/Sites/footy-finance/vendor/laravel/framework/src/Illuminate/Container/Container.php:565
/Users/owen/Sites/footy-finance/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:105
/Users/owen/Sites/footy-finance/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:263
/Users/owen/Sites/footy-finance/vendor/laravel/dusk/src/TestCase.php:203
/Users/owen/Sites/footy-finance/vendor/laravel/dusk/src/TestCase.php:40

Я просмотрел строку 40 TestCase.php и ее

public function baseUrl()
{
    return config('app.url');
}

Так что, похоже, что-то связано с глобальным config помощником. У кого-нибудь есть идеи?

я бегу

  • PHP 7.0.14
  • Laravel / Framework 5.4.8
  • Laravel / Dusk 1.0.5

Полный список composer.lock можно увидеть https://gist.github.com/OwenMelbz/c05172b33e3b3c05172b33e3b3e3b3e3b3e5

Скрестив пальцы, у вас есть идеи!

Ваше здоровье :)


person Owen    schedule 03.02.2017    source источник
comment
Может быть, хотите прокомментировать, почему голосование против?   -  person Owen    schedule 03.02.2017


Ответы (7)


У меня была эта ошибка в журнале

Class config does not exist

проблема со мной заключалась в том, что в файле .env я установил конфигурационную переменную следующим образом:

APP_NAME=Application Name

обратите внимание на пространство. Когда я изменил его на это:

APP_NAME="Application Name" 

проблема решена

person Petar Vasilev    schedule 17.04.2017
comment
Спасибо @PetarVasilev ... Я применил все возможные решения, но кроме этого ничего не помогло. Кстати, у меня он был на моем виртуальном хостинге, когда я настраивал: clear с помощью Artisan :: call ('config: clear'). - person Mohal; 01.02.2018

Проблема связана с файлом .env Имя_приложения

в исходном файле это написано так >>> APP_NAME = Application Name

Сделайте это так: APP_NAME = "Application Name"

person kibet H    schedule 20.11.2017

В моем случае это решение работает:

1) Удалите все содержимое папки bootstrap/cache
2) Выполните команду composer dump

person Abdel Rahman Kamhawy    schedule 16.07.2020

Для всех, у кого была эта проблема.

Я предпочел стабильный набор в файле композитора, в котором установлен PHPUnit 6.

Он был «сделан стабильным сегодня» - таким образом, он был установлен во время обновления композитора.

Переход на PHPUnit 5 устраняет проблему - поэтому было неподходящее время начинать его сегодня.

person Owen    schedule 03.02.2017

Я просто столкнулся с той же проблемой, в моем случае .env был чистым, без развернутых пустых пространств.

Это сообщение об ошибке также может появиться при написании / отладке тестового примера с использованием метода setup() в этом тесте, когда вы забываете вызвать parent::setup() в качестве первого оператора в этой функции.

protected $stuf;

function setup() {
    parent::setup();

    $this->stuf = 'stuf';
}

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

person Arnaud Bouchot    schedule 02.09.2019

У меня это было сегодня в приложении Lumen. После некоторого исследования и экспериментов я обнаружил, что это произошло из-за того, что в PHPStorm он добавлял параметр --no-configuration в команду phpunit, потому что я не настроил настройку PHPUnit для проекта в среде IDE.

Я исправил это, щелкнув «Выполнить> Изменить конфигурации», а затем в разделе «По умолчанию> PHPUnit» нажмите маленькую кнопку справа от «Использовать альтернативный файл конфигурации»: и установите в поле «Default configuration file:» полный путь к phpunit.xml вашего проекта.

Надеюсь это поможет!

person simonhamp    schedule 26.10.2017

У меня тоже была эта проблема. Для меня это было вызвано вызовом функции config() внутри метода dataProvider. DataProvider вызывается до того, как метод createApplication() инициализирует приложение и заполняет контейнер DI. Следовательно, config() не работает, потому что вызов app('config') во вспомогательной функции не может разрешить класс config из контейнера.

person Jim OHalloran    schedule 19.02.2019