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?

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.


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

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.


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)


1

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

-ea -Dmykey="value" -Dmykey2="value2"

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.