2015-11-05 4 views
7

Ich versuche, einige Tests für eine Anwendung schreiben. Ich habe den Server auf MAMP auf dev.myappnamehere.com eingerichtet.Wie setze ich Laravel-Test auf Site-Name anstelle von localhost

Wenn ich einen Test durchführen (aus der Basis Laracasts Integrated) es scheitert, weil es für die Route

http://localhost/p/profile 

Aber was es gehen muss, ist

http://dev.myappnamehere/p/profile 

suchen Wie kann ich ändere das so, dass es nicht standardmäßig nach dem localhost sucht und stattdessen zum richtigen Pfad geht?

Ich habe versucht, dies im Test zu ändern, kam aber nirgendwohin und konnte keine Antwort durch googlen finden.

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

} 
+2

Veröffentlichen Sie Ihren PHP-Testcode? –

+0

Haben Sie 'config.url' in' config/app.php' auf 'http: // dev.myappnamehere' gesetzt? – Tim

+0

Eigentlich habe ich es gerade gelöst. In LaravelTestCase.php gibt es eine BaseUrl, sobald ich geändert habe, dass der Test an der richtigen Stelle sah –

Antwort

6

Also kurz nachdem ich gefragt habe, stolperte ich über die Antwort. In

LaravelTestCase.php 

gibt es eine Funktion

baseUrl() 

genannt, die die URL es aussieht setzt. Sobald ich das geändert habe, sah es an der richtigen Stelle aus. Diese Datei war Teil der laracast Tests, die ich in geladen.

-3

Die unten statt

$this->visit('http://dev.myappnamehere') 
4

Für Laravel 5, Im tests Verzeichnis sollte eine Datei TestCase.php aufgerufen werden. In dieser Datei befindet sich eine Eigenschaft $baseUrl. Aktualisieren Sie den Wert auf Ihre gewünschte URL. Zum Beispiel ändern

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

zu

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

Ich versuchte dies, aber es machte keinen Unterschied. – Brett

2

Von Laravel 5.4 die $baseUrl Methode scheint nicht mehr

auch zu arbeiten und versuchen, die URL zu setzen dinamically mit \Config:set('app.url', 'http://dev.myappnamehere') funktioniert auch nicht , da es scheint, dass Laravel die Root-URL zwischenspeichert

Eine Möglichkeit zum Festlegen einer benutzerdefinierten Root-URL ist:

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

Vielen Dank, Ihre Lösungen haben mein Problem gelöst – rslhdyt

Verwandte Themen