¿Cómo pasar las propiedades del sistema -D durante la prueba en Eclipse?

93

Estoy desarrollando en Eclipse en Windows y el código se implementa en Unix. Estoy obteniendo los valores de las propiedades del sistema usando System.getProperty ("clave") ... ¿Cómo paso esto en Eclipse para no tener que modificar el código y funciona en Eclipse para la depuración?

¿Alguna sugerencia?

Devang Kamdar
fuente

Respuestas:

133

Ejecutar -> Ejecutar configuraciones, seleccionar proyecto, segunda pestaña: "Argumentos". El cuadro superior es para su programa, el cuadro inferior es para argumentos de VM, por ejemplo -Dkey=value.

Bombe
fuente
1
¿Dónde está esto si está intentando ejecutar una aplicación de Android?
user678392
¿Por qué tengo que usar 'D' como prefijo?
Manticore
28
Si eres tan grueso como yo, los argumentos -D van en el cuadro inferior para los argumentos de VM , no en el cuadro superior para los argumentos de tu programa. / suspiro
ruffin
2
El cuadro superior es para String[] argspasar al mainmétodo.
jaco0646
7
¿Hay alguna forma de configurar esto para que suceda de forma predeterminada, de modo que no tenga que ingresar manualmente esto repetidamente para muchas pruebas?
Stewart
44

Puede usar java System.properties, para usarlos desde eclipse podría:

  1. Agregue -Dlabel="label_value"los argumentos de la máquina virtual de la prueba de Run Configurationesta manera:

eclipse_vm_config

  1. Luego ejecuta la prueba:

    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. Finalmente, debería pasar la prueba y mostrar esto en la consola:

    label_value
madx
fuente
13

Puede agregar argumentos de línea de comando a su configuración de ejecución. Simplemente edite la configuración de ejecución y agregue -Dmyprop = value (o lo que sea) al cuadro de argumentos de VM.

izb
fuente
4
Si quiso decir "cuadro de argumentos del programa" cuando dijo "cuadro de argumentos de línea de comandos" en la pestaña Argumentos, ¡no funciona! Debe ingresarse en el "Cuadro de argumentos de VM" como lo mencionó Bombe anteriormente.
Devang Kamdar
4

ejecutar configuración -> argumentos -> argumentos vm

(también se puede colocar en la configuración de depuración en Configuración de depuración-> Argumentos-> Argumentos de VM)

harry.huang
fuente
1

Esto funcionará para junit. para TestNG use el siguiente comando

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

Sí, este es el camino:

Haga clic derecho en su programa, seleccione ejecutar -> ejecutar configuración y luego en el argumento vm

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

Entonces puedes aplicar y cerrar.

NiteshJain007
fuente