2016-06-30 9 views
1

Angenommen, Sie haben eine Datenquelle in einer Eigenschaftendatei angegeben und möchten diese in CI überschreiben. Wenn ich etwas tun:Wie kann ich eine Eigenschaft in einem Integrationstest über die Befehlszeile in einem Großprojekt überschreiben?

gradle -DdataSource.user=fred clean integrationTest 

... wird dies zum Laufe JVM den Tests sichtbar oder wird dies nur zu Gradle gehen? Was ist der richtige Weg, dies zu tun? Ich schreibe gerade einen Test, um das herauszufinden, aber jemand anders kann den Cheddar haben, wenn die Antwort zuerst hier erscheint.

Antwort

0

Nein, wenn Sie nur so vorgehen, wird diese Variable in Ihren Tests nicht verfügbar. Sie haben Ihre Testaufgaben so konfiguriert, dass sie diese Eigenschaft in Tests auffüllen.

Diese einmal

auf diese Weise für alle Testaufgaben getan werden könnte
tasks.withType(Test) { systemProperty 'datasource.user', System.getProperty('datasource.user', 'defaultisername') } 

Oder wenn Sie eine Reihe von Variablen zu füllen haben, dann sie alle einmal passieren, wie so

test { 
    options { 
     systemProperties(System.getProperties()) 
    } 
} 
Verwandte Themen