Тесты PHPunit и Artisan Dusk оба используют APP_URL
из .env файла.
Но есть что-то странное, может быть, из-за моей настройки, но я не знаю, это безумие.
У меня есть Xampp, мой проект включен localhost/forum/
Когда у меня есть
APP_URL=http://localhost
Мои юнит-тесты в порядке.
например
$response = $this->get('sekcja/sadsadsadsadas');
$response->assertStatus(200);
Все хорошо.
Как Laravel знает, что это http://localhost
но тесты на http://localhost/forum/
потому что есть этот проект и смотрит на http://localhost/forum/sekcja/sadsadsadsadas
Но…
Сумерки видят это неправильно.
Сумерки загружают меня localhost, где можно только приветствовать страницу XAMPP.
Не моя страница проекта на localhost/forum/
Затем я изменяю в ENV на APP_URL=http://localhost/forum/
И работает хорошо, сумерки хороши …
Но тогда вы знаете что?
Мои тесты PHPunit не хороши, они больше не работают.
Они не могут найти это $this->get('sekcja/sadsadsadsadas');
больше.
Итак, мой вопрос
Что здесь происходит? В документации, которую я прочитал для сумерек, я должен установить это, как я установил, но их мой тест PHPunit не работает. Зачем? если и phpunit, и dusk test используют одну и ту же переменную, почему они хотят иметь разные значения для нее? Это глупо.
Вы можете создать отдельный файл .env специально для заката.
Как указано в документах:
При запуске тестов Dusk создаст резервную копию вашего файла .env и переименует ваш
Сумерки среды для .env. Как только тесты завершены, ваш .env
файл будет восстановлен.
Это должно помочь вам решить вашу проблему.
Других решений пока нет …