Как настроить тест laravel для перехода на имя сайта вместо localhost

Я пытаюсь написать несколько тестов для приложения. У меня есть сервер, настроенный на MAMP и идущий на dev.myappnamehere.com.

Когда я запускаю тест (на основе Laracasts Integrated), он не проходит, потому что он ищет маршрут

 http://localhost/p/profile

Но то, что нужно идти, это

 http://dev.myappnamehere/p/profile

Как я могу изменить это, чтобы он не по умолчанию искал localhost и вместо этого шел по правильному пути?

Я попытался изменить это в тесте, но ничего не получилось, и я не смог найти ответ через поиск в Google.

 <?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');
}

}

10

Решение

Вскоре после того, как я спросил, я наткнулся на ответ. В

 LaravelTestCase.php

есть функция под названием

  baseUrl()

который устанавливает URL, который ищет. Однажды я изменил, что выглядело в правильном месте. Этот файл был частью теста laracast, который я загрузил.

6

Другие решения

Для Laravel 5,
в tests каталог должен быть файл с именем TestCase.php, В этом файле есть свойство $baseUrl, Обновите значение до нужного вам URL. Например изменить

protected $baseUrl = 'http://localhost';

в

protected $baseUrl = 'http://dev.myappnamehere';
6

Из Laravel 5.4 $baseUrl Кажется, метод больше не работает

Кроме того, пытаясь установить URL динамически с \Config:set('app.url', 'http://dev.myappnamehere') тоже не работает, так как кажется, что Laravel кеширует корневой URL

Способ установить пользовательский корневой URL-адрес:

\URL::forceRootUrl('http://dev.myappnamehere');
5

Ниже вместо

$this->visit('http://dev.myappnamehere')
-3
По вопросам рекламы [email protected]