Comment passer les propriétés -D System lors des tests sur Eclipse?


94

Je développe sur Eclipse sous Windows et le code est déployé sur Unix. Je récupère les valeurs de propriété système en utilisant System.getProperty ("key") ... Comment puis-je transmettre cela dans Eclipse pour ne pas avoir à modifier le code et cela fonctionne sur Eclipse pour le débogage?

Aucune suggestion?

Réponses:


134

Exécuter -> Exécuter les configurations, sélectionner le projet, deuxième onglet: «Arguments». La case du haut est pour votre programme, la case du bas est pour les arguments VM, par exemple -Dkey=value.


1
où est-ce si vous essayez d'exécuter une application Android?
user678392

pourquoi dois-je utiliser «D» comme préfixe?
Manticore

28
Si vous êtes aussi épais que moi - les arguments -D vont dans la case du bas pour les arguments VM , pas dans la case du haut pour les arguments de votre programme. / soupir
ruffin

2
La case supérieure est pour le String[] argspassé à la mainméthode.
jaco0646

7
Existe-t-il un moyen de définir cela par défaut, de sorte que vous n'ayez pas à le saisir manuellement à plusieurs reprises pour de nombreux tests?
Stewart

44

Vous pouvez utiliser java System.properties, pour les utiliser depuis eclipse, vous pouvez:

  1. Ajoutez -Dlabel="label_value"les arguments VM du test Run Configurationcomme ceci:

eclipse_vm_config

  1. Ensuite, lancez le test:

    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. Enfin, il devrait réussir le test et afficher ceci dans la console:

    label_value

13

Vous pouvez ajouter des arguments de ligne de commande à votre configuration d'exécution. Modifiez simplement la configuration d'exécution et ajoutez -Dmyprop = valeur (ou autre) à la boîte d'arguments VM.


4
Si vous vouliez dire «boîte d'arguments du programme» lorsque vous avez dit «boîte d'arguments de ligne de commande» sous l'onglet Arguments - ne fonctionne pas! Doit être entré dans "VM Arguments Box" comme mentionné par Bombe ci-dessus.
Devang Kamdar

4

exécuter la configuration -> arguments -> arguments vm

(peut également être placé dans la configuration de débogage sous Configuration de débogage-> Arguments-> Arguments VM)


1

Cela fonctionnera pour junit. pour TestNG, utilisez la commande suivante

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

0

Oui c'est comme ça:

Faites un clic droit sur votre programme, sélectionnez exécuter -> exécuter la configuration puis sur l'argument vm

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

Ensuite, vous pouvez postuler et fermer.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.