Ich versuche, eine Umgebungsvariable von meinem Gradle-Build festzulegen. Ich bin auf MacOS X (El Capitan). Der Befehl ist "Grapple Test".Legen Sie eine Umgebungsvariable aus einem Gradle-Build
Ich versuche, dies in meinem build.gradle:
task setenv(type: Exec) {
commandLine "export", "SOME_TEST_VAR=aaa"
}
test.dependsOn setenv
und die Erstellung fehl:
Ausführung für Aufgabe fehlgeschlagen ': myproject: setenv'.
ist ein Problem aufgetreten 'Befehl 'Prozess starten Export''
ich dies auch versucht:
test.doFirst {
ProcessBuilder pb1 = new ProcessBuilder("export SOME_TEST_VAR=some test value")
pb1.start();
}
Der Build erfolgreich ist. Allerdings, wenn ich die Umgebungsvariable in meinem JUnit-Test überprüft Sie es nicht:
assertTrue(System.getenv().containsKey("SOME_TEST_VAR"));
Gibt es eine Möglichkeit, eine Umgebungsvariable von einem Gradle einzustellen (in der build.gradle Datei) bauen?
Update:
ich es in Isolation getestet haben: die Werte noch übergeben bekommen und meine Testaufgabe erhält alles, sei es ein systemProperty, Umgebungsvariablen oder jvmArgs.
Also, es ist nichts falsch mit Gradle selbst hier.
Das Problem entsteht, wenn ich es auf dem realen Projekt versuche. Es verwendet Spring für die Abhängigkeitsinjektion. Ich mag mich irren, aber es sieht so aus, als ob das Spring-Framework diese Werte irgendwo löscht.
Dieses Teilprojekt wird gerade eingefroren und ich kann meine Schätzung jetzt nicht im Detail überprüfen.
Another failed Experiment: 'test { systemProperty 'SOME_TEST_VAR', 'aaa' Umwelt 'SOME_TEST_VAR', 'aaa' }' und im Test: 'boolean gut = System.getenv(). ContainsKey (" SOME_TEST_VAR ") || System.getProperties(). ContainsKey ("SOME_TEST_VAR"); assertTrue (gut); ' – user3791111
Ich kann hier keine Zeilenumbrüche machen, selbst nachdem ich die Hilfe gelesen habe. Entschuldige, ich vermute nur, wo ich sie machen wollte. – user3791111
Sie sollten Ihre Frage bearbeiten, wenn Sie mehr Informationen zur Verfügung stellen möchten. –