Wie übergebe ich die -D-Systemeigenschaften beim Testen auf Eclipse?

93

Ich entwickle unter Eclipse unter Windows und Code wird unter Unix bereitgestellt. Ich rufe die Systemeigenschaftswerte mit System.getProperty ("Schlüssel") ab ... Wie übergebe ich dies in Eclipse, damit ich den Code nicht ändern muss und er in Eclipse zum Debuggen funktioniert?

Irgendwelche Vorschläge?

Devang Kamdar
quelle

Antworten:

133

Ausführen -> Konfigurationen ausführen, Projekt auswählen, zweite Registerkarte: "Argumente". Das obere Feld ist für Ihr Programm, das untere Feld ist für VM-Argumente, z -Dkey=value.

Bombe
quelle
1
Wo ist das, wenn Sie versuchen, eine Android-Anwendung auszuführen?
user678392
Warum muss ich 'D' als Präfix verwenden?
Mantikor
28
Wenn Sie so dick sind wie ich - -D-Argumente werden im unteren Feld für VM-Argumente und nicht im oberen Feld für die Argumente Ihres Programms angezeigt. / Seufzer
Ruffin
2
Das obere Feld ist für die String[] argsan die mainMethode übergeben.
jaco0646
7
Gibt es eine Möglichkeit, dies standardmäßig so einzustellen, dass Sie dies für viele Tests nicht wiederholt manuell eingeben müssen?
Stewart
44

Sie können Java verwenden System.properties, um sie von Eclipse aus zu verwenden:

  1. Fügen Sie -Dlabel="label_value"die VM-Argumente des Tests Run Configurationwie folgt hinzu:

eclipse_vm_config

  1. Führen Sie dann den Test aus:

    import org.junit.Test;
    import static org.junit.Assert.assertEquals;
    
    public class Main {
        @Test
        public void test(){
            System.out.println(System.getProperty("label"));
            assertEquals("label_value", System.getProperty("label"));
        }
    }
  2. Schließlich sollte es den Test bestehen und diesen in der Konsole ausgeben:

    label_value
Madx
quelle
13

Sie können Ihrer Ausführungskonfiguration Befehlszeilenargumente hinzufügen. Bearbeiten Sie einfach die Ausführungskonfiguration und fügen Sie -Dmyprop = value (oder was auch immer) zur VM Arguments Box hinzu.

izb
quelle
4
Wenn Sie "Programmargumentfeld" gemeint haben, als Sie "Befehlszeilenargumentfeld" auf der Registerkarte "Argumente" sagten - Funktioniert nicht! Muss in "VM Arguments Box" eingegeben werden, wie oben von Bombe erwähnt.
Devang Kamdar
4

Konfiguration ausführen -> Argumente -> VM-Argumente

(kann auch in die Debug-Konfiguration unter Debug-Konfiguration-> Argumente-> VM-Argumente eingefügt werden)

harry.huang
quelle
1

Dies wird für junit funktionieren. Verwenden Sie für TestNG den folgenden Befehl

-ea -Dmykey="value" -Dmykey2="value2"
Aniruddha Ghanekar
quelle
0

Ja das ist der Weg:

Klicken Sie mit der rechten Maustaste auf Ihr Programm, wählen Sie Ausführen -> Konfiguration ausführen und dann das Argument vm

-Denv=EnvironmentName -Dcucumber.options="--tags @ifThereisAnyTag"

Dann können Sie sich bewerben und schließen.

NiteshJain007
quelle