Как установить тест laravel для перехода к имени сайта вместо localhost
Я пытаюсь написать несколько тестов для приложения. У меня есть сервер, настроенный на MAMP, на dev.myappnamehere.com.
Когда я запускаю тест (основанный на Laracasts Integrated), он терпит неудачу, потому что он ищет маршрут
http://localhost/p/profile
Но что ему нужно сделать, это
http://dev.myappnamehere/p/profile
Как я могу изменить это, чтобы он не искал по умолчанию локальный хост и вместо этого перешел на правильный путь?
Я попытался изменить это в тесте, но ничего не получил, и я не смог найти ответ через googling.
<?php
use Laracasts\Integrated\Extensions\Laravel as IntegrationTest;
use Laracests\TestDummy\Factory as TestDummy;
class ExampleTest extends TestCase {
/**
* A basic functional test example.
*
* @return void
*/
public function testBasicExample()
{
$this->visit('/')
->see('Login')
->type('[email protected]', 'email')
->type('password', 'password')
->press('Login')
->seePageIs('/p/profile');
}
}
Ответы
Ответ 1
Так вскоре после того, как я спросил, я наткнулся на ответ. В
LaravelTestCase.php
существует функция, называемая
baseUrl()
который задает искомый URL. Как только я изменил это, он выглядел в правильном месте. Этот файл был частью теста laracast, который я загрузил.
Ответ 2
Из Laravel 5.4 метод $baseUrl
, похоже, больше не работает
Кроме того, попытка установить URL-адрес динамически с помощью \Config:set('app.url', 'http://dev.myappnamehere')
тоже не работает, так как кажется, что Laravel кэширует корневой URL
Способ установки настраиваемого корневого URL-адреса:
\URL::forceRootUrl('http://dev.myappnamehere');
Ответ 3
Для Laravel 5,
В каталоге tests
должен быть файл с именем TestCase.php
. В этом файле есть свойство $baseUrl
. Обновите значение до нужного URL-адреса. Например, измените
protected $baseUrl = 'http://localhost';
к
protected $baseUrl = 'http://dev.myappnamehere';
Ответ 4
Измените APP_URL в вашем файле .env с localhost на нужный URL.
Пример:
APP_URL =http://myproject.test
Ответ 5
Ниже ниже
$this->visit('http://dev.myappnamehere')