Laravel 5: Verwenden Sie eine andere Datenbank zum Testen und lokal

9

Wie ändert man die Datenbank für die Entwicklung und das Testen auf dem lokalen System, ohne jedes Mal die Datei .env zu bearbeiten?

Ich habe es deshalb als sehr ungünstig empfunden TDD zu praktizieren.

Ist es für eine Laravel -Anwendung möglich, zwischen normaler Entwicklung und Tests zu unterscheiden, so dass sie die geeignete Datenbank auswählen kann?

    
James Okpe George 05.02.2016, 15:02
quelle

5 Antworten

10

Erstellen Sie eine Testdatenbankkonfiguration in Laravel

Bearbeiten Sie die Datei config\database.php und fügen Sie ein testing -array in das Array connections hinzu:

%Vor%

Fügen Sie dann die notwendigen Variablen zu Ihrer .env -Datei hinzu.

PHPUnit Konfiguration bearbeiten

Öffnen Sie Ihre phpunit.xml -Datei und fügen Sie folgendes in Ihrem <php> -Tag hinzu:

<env name="DB_CONNECTION" value="testing"/>

Nun wird PHPUnit mit den Tests für die Datenbank ausgeführt, die Sie im testing -Array definiert haben.

    
Tijmen 05.02.2016, 16:15
quelle
6

Für Laravel 5.5 ist das Erstellen einer Testumgebungsdatei namens .env.testing der richtige Weg. Hier können Sie Ihre Testumgebung definieren, einschließlich der Datenbank, die Sie zum Testen verwenden möchten ...

%Vor%

Dann führe diesen Befehl aus ...

%Vor%

Dadurch wird der Cache auf die Parameter der .env.testing-Datei konfiguriert.

Hier ist ein Link zur Dokumentation.

    
Jed Lynch 04.11.2017 03:08
quelle
1

Wenn Ihre Testdatenbank dieselbe Konfiguration verwendet, aber nur der Name ist anders, können Sie den ausgewählten Datenbanknamen nur ändern, indem Sie

hinzufügen %Vor%

an die Datei phpunit.xml im <php> -Knoten

    
vivanov 12.04.2016 11:40
quelle
0

In Laravel 5 müssen Sie eine Datei .env auf Ihrem lokalen Server und eine weitere in Ihrem Testserver haben.

%Vor%

Später können Sie envoy verwenden, um die Pflege dieser mehreren .env -Dateien zu automatisieren, da Sie sie wahrscheinlich auch für die Umgebungen staging und production benötigen.

    
user2094178 05.02.2016 20:02
quelle
0

Sie können für jede Art von Test eine andere .env-Datei verwenden. Sie können Ihre Tests / functional.suite.yml und tests / unit.suite.yml so ändern:

%Vor%

Und das:

%Vor%

Oder Sie können einfach Ihre phpunit.xml ändern und Umgebungsvariablen hinzufügen, wie es @Tijmen oben getan hat.

    
Pitchinnate 05.02.2016 21:10
quelle

Tags und Links