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?
Bearbeiten Sie die Datei config\database.php
und fügen Sie ein testing
-array in das Array connections
hinzu:
Fügen Sie dann die notwendigen Variablen zu Ihrer .env
-Datei hinzu.
Ö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.
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.
In Laravel 5 müssen Sie eine Datei .env
auf Ihrem lokalen Server und eine weitere in Ihrem Testserver haben.
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.
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.