Können Rails-Unit-Tests in einer anderen Umgebung als Test ausgeführt werden?

9

Wir haben ein großes Multi-Entwickler-Projekt unter Rails, in dem wir Tests für beide Modelle und Controller verwenden. Im Moment müssen die Entwickler die DB-Parameter für die "Test" -Umgebung vor dem Ausführen von Tests auf ihre lokalen Entwicklungsumgebungen einstellen. Ich frage mich, ob es eine Möglichkeit gibt, diese Tests in einer anderen Umgebung als "Test" auszuführen?

Zum Beispiel haben wir in database.yml:

%Vor%

Ich kann in den Unterlagen nichts finden, aber vielleicht schaue ich an die falsche Stelle. Irgendwelche Ideen?

Danke!

    
futureal 18.05.2010, 21:31
quelle

2 Antworten

1

Im Moment funktioniert das immer noch nicht. Ich habe ein Problem eingereicht: Ссылка .

Ich werde diese Antwort mit Updates bearbeiten

    
frankpinto 03.09.2015 00:31
quelle
0

Es muss lediglich die Umgebung explizit angegeben werden, wenn Sie die Tests ausführen. Sie brauchen nur ein paar Vorbereitungen im Voraus.

Sagen Sie, Ihre neue Umgebung wird "testjohn" heißen (vermutlich für einen Entwickler namens John). Dann:

1- Kopieren Sie config / environments / test.rb nach config / environments / testjohn.rb

2- Fügen Sie die entsprechende DB-Zeilengruppe zu config / database.yml hinzu (kopieren Sie sie aus der Testzeilengruppe, benennen Sie sie um und ändern Sie dann vermutlich den Datenbanknamen, das Passwort und andere Daten). Mein (eher vereinfachendes) Beispiel verwendet dies:

%Vor%

3- Führen Sie Ihre Tests wie folgt aus:

%Vor%

Übrigens, da RAILS_ENV nur eine Umgebungsvariable ist, haben Sie vielleicht ein Skript, das es vorher setzt, oder sogar jeden Entwickler, der seine eigene RAILS_ENV-Variable in seiner .profile oder einer anderen Datei konfiguriert. Auf diese Weise führen sie einfach rake test: units aus und testen automatisch in ihrer personalisierten Umgebung.

    
Roadmaster 18.05.2010 22:31
quelle