2008-09-23 17 views
19

Nuestro código Java (no el código de prueba) lee archivos del directorio actual, lo que significa que el directorio de trabajo debe configurarse correctamente cada vez que ejecutamos el código.¿Cómo se predetermina el directorio de trabajo para las configuraciones de inicio de JUnit en Eclipse?

Al iniciar una prueba JUnit desde Eclipse, se crea automáticamente una configuración de inicio. El problema es que el directorio de trabajo en esa configuración de inicio siempre es por defecto el directorio raíz del proyecto, que siempre está mal, la prueba falla, tengo que abrir el diálogo de configuración de inicio, cambiar el directorio de trabajo y reiniciar la prueba. Esto es muy molesto Lo mismo sucede cuando ejecuto un único método de prueba.

ya he considerado estos:

  • Cambiar el directorio actual del código de prueba - no es posible por el diseño.
  • Al abrir un archivo, pase un parámetro de directorio principal: demasiado difícil, ya que esto afectaría a muchos lugares.
  • Utilice Copie la configuración de inicio de sesión función de Eclipse para crear nuevas configuraciones de inicio de las existentes que ya tienen un conjunto de directorios de trabajo correcto. Esto realmente no tiene sentido aquí, ya que me gustaría lanzar una prueba o un método de prueba rápidamente, simplemente invocando "ejecutar esta prueba/método como prueba JUnit".

En general, parece que es responsabilidad de Eclipse, no del código.

¿Hay una manera de establecer el directorio de trabajo por defecto para todos los futuros , recién creado configuraciones de lanzamiento JUnit?

Respuesta

9

Por lo que yo sé, no hay forma de cambiar el directorio de trabajo predeterminado para futuras configuraciones de lanzamiento de JUnit en Eclipse 3.4. Este problema también ha sido reported as a bug en la base de datos de errores de Eclipse.

Sin embargo, es posible en IDEA. Está el botón Editar valores predeterminados para configurar por separado todos los tipos de valores predeterminados para cada tipo de configuración de inicio.

+0

Podría ser posible que una unidad más trabajara en esto también. He solicitado una solicitud de función para eso aquí - https://sourceforge.net/tracker/?group_id=156007&atid=798059. – studgeek

11

Ésta es una respuesta subjetiva:

Creo que está haciendo sus pruebas equivocadas, que no se debe cargar los archivos de la JUnit utilizando rutas relativas o totales, pero en su lugar, ellos tienen como recursos en el proyecto (agréguelos a la ruta de compilación) y cárguelos como recursos en las pruebas JUnit. De esta forma, si algo cambia en el sistema de archivos, alguien usa un sistema de archivos o IDE diferente pero aún los tiene en la ruta de compilación (como carpetas de origen), no tendrá problemas.

estoy seguro si esto es lo que quieres decir, pero si realmente desea cambiarla ir a las opciones de configuración Ejecutar -> Su JUnit -> pestaña Argumentos, en la parte inferior (Eclipse 3.4) que se ve directorio de trabajo, haga clic 'otro' y cambiarlo desde allí.

+0

¿Qué pasa si quiere establecer el CWD como 'target/my-test-loc' pero' target' aún no existe? – dwjohnston

1

no he encontrado una posibilidad de hacer esto, pero lo que puede hacer es utilizar:.

getClass() getResourceAsStream (nombre de fichero);

getClass(). GetClassLoader(). GetResourceAsStream (filename);

Este método localiza un recurso en el classpath. El primero es relativo a la ubicación de la clase, el segundo es relativo a cualquier classpath "entrada de raíz". Por ejemplo, puede agregar el directorio raíz del proyecto al classpath.

Esto no funciona, sin embargo, si también desea escribir en un archivo.

1

Si sus pruebas dependen del directorio de trabajo actual, creo que es responsabilidad de sus pruebas configurar correctamente ese directorio de trabajo, y configurar sus clases para probarlas para apuntar ese directorio.

Si tiene una superclase para la mayoría de sus pruebas, escriba una constante dentro de ella. O bien: si tiene una superclase para la mayoría de sus pruebas, escriba un método de configuración @Before. O bien: si no tiene una superclase para la mayoría de sus pruebas, escriba una constante en alguna clase de la base de código de prueba.

2

Con Eclipse 3 puede establecer su directorio de trabajo. Vaya a la configuración de ejecución/depuración -> pestaña Argumentos. En el directorio de trabajo, seleccione "otro" e ingrese la raíz de su prueba

Cuestiones relacionadas