2016-11-29 3 views
0

In meiner .env Datei eines Laravel 5.1 project i die APP_ENV auf lokale gesetzt haben, aber wenn ich den Test ausführen vom Terminal der mitPHPUnit zwingende Variable in .env

vendor/bin/phpunit 

die Debug und sterben auf

dd(env(APP_ENV)); 

gibt mir "testen".

ich nicht haben eine gute Forschung auf diesem, versucht die folgenden Möglichkeiten verwenden -

  • versucht, die APP_ENV = local Pipelining Anbieter/bin zu setzen/phpunit die cli bilden.
  • Versuch env Variable in der phpunit.xml Datei hinzufügen <env name="APP_ENV" value="local" override="true"> (dosent scheint allerdings außer Kraft zu setzen)
  • Hinzufügen einer .env.testing Datei und Einstellung des APP_ENV = local
  • in der testCase.php Datei, in der die Anwendung $app->loadEnvironmentFrom('.env.testing'); autoloads

keine der oben genannten Methoden gibt mir das erwartete Ergebnis nicht jedes Mal wenn ich den Test geben APP_ENV als „testen“ ausgeführt werden.

Nicht in der Lage zu verfolgen, woher phpunit diese Variable setzt. Pls helfen aus!

+0

Normalerweise möchten Sie nicht, dass das env lokal ist, wenn Sie _testing_ mit phpunit durchführen. Sie wollen in der Lage sein, zwischen Testen und lokal zu unterscheiden, so können Sie Mock-Klassen für Dinge wie DB-Aufrufe usw. verwenden. –

+0

Der Punkt ist, dass ich einen Integrationsserver verwende, der den Test mit phpunit ausführt, und die DB-Konfiguration ist dort anders, Aus diesem Grund muss ich die Umgebungsvariable verwenden, um in der lokalen Entwicklungsmaschine und der Integrationsserverumgebung anders zu sein. Aber ich weiß nicht, wie es irgendwie alles übersteuert und setzt die APP_ENV auf "testen" immer –

Antwort

-1

In Hersteller/Laravel/Framework/src/Illuminate/Foundation/Testing/TestCase.php Suche nach Putenv ('APP_ENV = testen'); Versuchen Sie, dies auf lokal zu ändern. Dies sollte für Sie arbeiten, obwohl es nicht ratsam ist.

+0

stören die zugrunde liegende Architektur ist nicht eine gute Sache zu tun. Vielmehr denke ich, dass ich versuche, das Merkmal, das für jede Instanz in das env geschrieben wird, außer Kraft zu setzen. Wie auch immer, danke für die Eingabe –